From ddd81bcc0be9c81ba253096a22d2da72dc9f9172 Mon Sep 17 00:00:00 2001 From: Jeremy Kothe Date: Tue, 13 Oct 2026 04:54:38 +1100 Subject: [PATCH] Conditional kappa 0.001620246754858718: improved owner map for the PR604 cold-ended witness --- research/complex-571-cold14-j1/LICENSE | 201 + research/complex-571-cold14-j1/MANIFEST.json | 43 + research/complex-571-cold14-j1/NOTICE.md | 27 + .../PROOF-COMMUTING-PREFIX.md | 91 + research/complex-571-cold14-j1/README.md | 155 + .../complex-571-cold14-j1/code/assemble.py | 213 + .../code/assembly_controls.py | 251 + .../code/audit_allcold.py | 232 + .../code/bind_providers_portable.py | 66 + .../code/build_cold_end.py | 125 + .../code/build_gate_moves.py | 61 + .../complex-571-cold14-j1/code/build_hpe.py | 123 + .../code/cold_end_controls.py | 86 + .../code/emit_allcold.py | 144 + .../code/generated_identity.py | 62 + .../code/generated_identity_controls.py | 227 + .../code/hpe_adapters_local.py | 116 + .../code/hpe_audit_and_transport.py | 301 + .../code/hpe_audit_local.py | 171 + .../code/hpe_controls_atc.py | 119 + .../code/hpe_emit_local.py | 163 + .../code/invoice_allcold.py | 323 + .../code/phase_timing_controls.py | 36 + .../complex-571-cold14-j1/code/witness.py | 38 + .../complex-571-cold14-j1/data/OWNERS.json.gz | Bin 0 -> 463539 bytes research/complex-571-cold14-j1/data/PLAN.json | 43333 ++++++++++++++++ research/complex-571-cold14-j1/data/SPEC.json | 2867 + .../data/recipes/atm3-step0-promote.json | 1 + .../recipes/atm3-step1-greedy_kernels.json | 561 + .../recipes/atm3-step2-frame_coalesce.json | 173 + .../atm3-step3-gate_move_coalesce.json | 85 + .../recipes/atm3-step4-hyperplane_end.json | 649 + .../data/recipes/atm3-step5-cold_end.json.gz | Bin 0 -> 32701 bytes .../data/recipes/ck-step0-greedy_kernels.json | 550 + .../data/recipes/ck-step1-frame_coalesce.json | 173 + .../recipes/ck-step2-gate_move_coalesce.json | 85 + .../data/recipes/ck-step3-hyperplane_end.json | 649 + .../data/recipes/ck-step4-cold_end.json.gz | Bin 0 -> 32702 bytes .../recipes/jp8-step4-hyperplane_end.json | 649 + .../data/recipes/jp8-step5-cold_end.json.gz | Bin 0 -> 30748 bytes research/complex-571-cold14-j1/verify.py | 283 + research/complex-571-cold14-j1/verify.sh | 14 + 42 files changed, 53446 insertions(+) create mode 100644 research/complex-571-cold14-j1/LICENSE create mode 100644 research/complex-571-cold14-j1/MANIFEST.json create mode 100644 research/complex-571-cold14-j1/NOTICE.md create mode 100644 research/complex-571-cold14-j1/PROOF-COMMUTING-PREFIX.md create mode 100644 research/complex-571-cold14-j1/README.md create mode 100644 research/complex-571-cold14-j1/code/assemble.py create mode 100644 research/complex-571-cold14-j1/code/assembly_controls.py create mode 100644 research/complex-571-cold14-j1/code/audit_allcold.py create mode 100644 research/complex-571-cold14-j1/code/bind_providers_portable.py create mode 100644 research/complex-571-cold14-j1/code/build_cold_end.py create mode 100644 research/complex-571-cold14-j1/code/build_gate_moves.py create mode 100644 research/complex-571-cold14-j1/code/build_hpe.py create mode 100644 research/complex-571-cold14-j1/code/cold_end_controls.py create mode 100644 research/complex-571-cold14-j1/code/emit_allcold.py create mode 100644 research/complex-571-cold14-j1/code/generated_identity.py create mode 100644 research/complex-571-cold14-j1/code/generated_identity_controls.py create mode 100644 research/complex-571-cold14-j1/code/hpe_adapters_local.py create mode 100644 research/complex-571-cold14-j1/code/hpe_audit_and_transport.py create mode 100644 research/complex-571-cold14-j1/code/hpe_audit_local.py create mode 100644 research/complex-571-cold14-j1/code/hpe_controls_atc.py create mode 100644 research/complex-571-cold14-j1/code/hpe_emit_local.py create mode 100644 research/complex-571-cold14-j1/code/invoice_allcold.py create mode 100644 research/complex-571-cold14-j1/code/phase_timing_controls.py create mode 100644 research/complex-571-cold14-j1/code/witness.py create mode 100644 research/complex-571-cold14-j1/data/OWNERS.json.gz create mode 100644 research/complex-571-cold14-j1/data/PLAN.json create mode 100644 research/complex-571-cold14-j1/data/SPEC.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step0-promote.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step1-greedy_kernels.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step2-frame_coalesce.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step3-gate_move_coalesce.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step4-hyperplane_end.json create mode 100644 research/complex-571-cold14-j1/data/recipes/atm3-step5-cold_end.json.gz create mode 100644 research/complex-571-cold14-j1/data/recipes/ck-step0-greedy_kernels.json create mode 100644 research/complex-571-cold14-j1/data/recipes/ck-step1-frame_coalesce.json create mode 100644 research/complex-571-cold14-j1/data/recipes/ck-step2-gate_move_coalesce.json create mode 100644 research/complex-571-cold14-j1/data/recipes/ck-step3-hyperplane_end.json create mode 100644 research/complex-571-cold14-j1/data/recipes/ck-step4-cold_end.json.gz create mode 100644 research/complex-571-cold14-j1/data/recipes/jp8-step4-hyperplane_end.json create mode 100644 research/complex-571-cold14-j1/data/recipes/jp8-step5-cold_end.json.gz create mode 100644 research/complex-571-cold14-j1/verify.py create mode 100644 research/complex-571-cold14-j1/verify.sh diff --git a/research/complex-571-cold14-j1/LICENSE b/research/complex-571-cold14-j1/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/complex-571-cold14-j1/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/complex-571-cold14-j1/MANIFEST.json b/research/complex-571-cold14-j1/MANIFEST.json new file mode 100644 index 0000000000..ca726908c6 --- /dev/null +++ b/research/complex-571-cold14-j1/MANIFEST.json @@ -0,0 +1,43 @@ +{ + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE.md": "b0ad4922ceb50c4476fcccf5900b2f38d5a0f120c189fac4499824ffd6bc5013", + "PROOF-COMMUTING-PREFIX.md": "59899b2a1a76d88275e57f983c0aea391dc2c7f1d2d66c33b92429be0a1cf5e1", + "README.md": "c9cb70044759f334705deb10be930bafa1337dd2d62b789a585058d7934eeadb", + "code/assemble.py": "7d3b340817ff0e2b9054286c24af622500d31c3b175caec14dacd71e5a3e5414", + "code/assembly_controls.py": "7ec40d7a223b3525ef672b2d491979f11d9be913b90c9fe5ae54160ae91538a2", + "code/audit_allcold.py": "e92859025b6e853a8060f5ec63146f8b40ea01978b52b3c1920e2e3a750a7c71", + "code/bind_providers_portable.py": "ff9c025f628dcf16b6ba281d288bd80aa418ee9685ab90b8266049fbd1b01c93", + "code/build_cold_end.py": "39bde5d87e84c683a8ab83a66fe103f31a63b1007d9320029c73b8f68cfbab74", + "code/build_gate_moves.py": "08bf1c2652307aeefbab089fdaf02f82e2c396ca23a1eb68e294a67e74c44252", + "code/build_hpe.py": "ba2001695d8c7547a82260c3b016e01dac686e95a61757ca124eb9879078ea8e", + "code/cold_end_controls.py": "e4947d8639dfb7eda67be52b095f10a9eb3937b24dc9e7a2b810cf29f20adb06", + "code/emit_allcold.py": "5b4a6fffbdff16e27f87683274470a0a21ae224ff55f34b9839f451f2930d517", + "code/generated_identity.py": "c8af22719c0f3097a991a3f6ccac8f090afd2faba554745733d9ea88f2c25708", + "code/generated_identity_controls.py": "5ea88b559f0e8f29c6a3c814d6abcd2007abcff97d6bd2acced3fafda074375d", + "code/hpe_adapters_local.py": "eb0b5c6c7161e18dc22168da3211448d321586edd15bcfb4b4741174d36993cf", + "code/hpe_audit_and_transport.py": "4aa2e230bec9fd5c46937b10d3611f572cf2e5048600f3f42b2cadd27883aa4b", + "code/hpe_audit_local.py": "6bd9a1e279c9c9e4f3767d9f82e537b559292906feb2ddab02f380fb6523a810", + "code/hpe_controls_atc.py": "63aa3909b5bfd3bf270c313bebb5c46e7789c67a8f2439f568bc4b2b4a35d17b", + "code/hpe_emit_local.py": "7e4a6fbc38c8228157b6311457d1496bf460291393043932d2c365f004f77805", + "code/invoice_allcold.py": "308800f513c73dfb1aacd42e44092b52f5b00e9db45de4fb18d0653c3e97e027", + "code/phase_timing_controls.py": "1692ccee3da4b1781408d126ee4999f3e31a505cd83c64823a404033da3a6339", + "code/witness.py": "73161e25b354ee2acdfdc1abe0c925290d1e6eb9dfcf2b309f610cb90eaebac4", + "data/OWNERS.json.gz": "ea89982f18cb1efda976303cc76cc5cb9fd40463872474540944b5071da7af33", + "data/PLAN.json": "3b53aa968ca382d2ee43b32a8aeee5a4c5864b316e59ac16443672f0d337b61b", + "data/SPEC.json": "5fa652c3a8029be00709f7b368a19f1c84917a116a6ea18f7ace6717c208ac65", + "data/recipes/atm3-step0-promote.json": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "data/recipes/atm3-step1-greedy_kernels.json": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "data/recipes/atm3-step2-frame_coalesce.json": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "data/recipes/atm3-step3-gate_move_coalesce.json": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "data/recipes/atm3-step4-hyperplane_end.json": "aaf94d63a3756211f08d73ebe30bcba5554bf543b77311294aaff3ab3bfb5d13", + "data/recipes/atm3-step5-cold_end.json.gz": "a1669e97de185a9eb054f95dcf54f0c99b11fd51a71fb4b7d8b161fa2ad8a8b0", + "data/recipes/ck-step0-greedy_kernels.json": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "data/recipes/ck-step1-frame_coalesce.json": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "data/recipes/ck-step2-gate_move_coalesce.json": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "data/recipes/ck-step3-hyperplane_end.json": "e771ec08d638071283afed235bf4d35550b38bebe648d2a0377a430e96327e15", + "data/recipes/ck-step4-cold_end.json.gz": "0190c405f59859d1c4750557c14e2dd39a39b75411b320d5b9c280a654608671", + "data/recipes/jp8-step4-hyperplane_end.json": "7e3d021c7498b3a65345d74d008af5aa87249ec1dc082914ea0beb17908f8f81", + "data/recipes/jp8-step5-cold_end.json.gz": "56f5be104c6a943115ffd845c0967b552870fc5da96e74aecc15dea9a3c8d77a", + "verify.py": "1d3aca7d1ce35fd5c55189641e8f14478b5540e3e6ac81f13572ca109d982eb4", + "verify.sh": "10aa6102c8269d5bc010575e408fd2b1e70d6bb18db4c78f35d50b3c8ac8a8ba" +} diff --git a/research/complex-571-cold14-j1/NOTICE.md b/research/complex-571-cold14-j1/NOTICE.md new file mode 100644 index 0000000000..4e5f111816 --- /dev/null +++ b/research/complex-571-cold14-j1/NOTICE.md @@ -0,0 +1,27 @@ +# Attribution and scope + +Four verified provider types are offered to every call: PR571's prefix word with twelve multi-cut cold kernels (PR568's unchanged constructor), the same word with forty width-five entrance promotions (PR569's unchanged frame constructor) before those kernels, PR575's plain joint-prefix provider, and PR568's eight-cold provider. A window MILP with an exact per-pattern model chooses the dispatch and a literal owner map. PR583's six source-bound kernel frame coalescences (its unchanged constructor and negative controls) are applied to every PR571-prefix provider word (ck and atm3), followed by two further coalescences that each first move one addition past two commuting additions (package code/build_gate_moves.py, extending PR583's constructor); a final hyperplane_end step (package code/build_hpe.py) then runs 46 single-gate cleanups h -= p right after part B at the dim-8 join U of their registers, so 46 width-8 entering helpers per call end at U with width 7; each such gate commutes with every earlier cleanup gate on its registers (for 8 of them the partner's one earlier gate x -= p only reads p), and the reordered program is replayed exactly. A window MILP (exact windows, RINS around an LP vertex) gives the dispatch ck 45 / atm3 21 / jp8 6 and the literal owner map. + +Pinned external sources (unchanged; `verify.py` checks their manifests and every file it uses): +- PR568 (`research/complex-multicold`, commit `71c99ac935a33bb7b59a1b4a7af8725a939b0b90`). +- PR571 (`research/structural-gain`, commit `b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3`). +- PR569 (`research/larger-gain`, commit `897213a855b7fb8a1b8b0e552a2f5c42e6c1b326`). +- PR575 (`research/complex-joint-prefix`, commit `eac6f7e378ab622dac50a2fd4b7ef6eab014de44`). +- PR583 (`research/kernel-frame-coalescing`, commit `89be768f0157f5a3d8e4db69cf1748768605eac9`). + +Provider construction is described as typed steps in `data/SPEC.json` (`build`); `verify.py` runs only allowlisted step types with their paired omission audits and checks every input and output content hash. `code/` holds the spec-driven global admission scripts adapted from PR571's `frontier-composition/global-code/` (OpenAI Codex assisted, Apache-2.0): every expected value is read from `data/SPEC.json` and compared only after independent recomputation. `code/generated_identity.py` and `code/generated_identity_controls.py`, and the decompressed-content artifact identities in the bind, audit, invoice, assembly and phase-timing scripts, are taken unchanged from PR586 by chafreaky (`research/promoted-kernel-coalescing`, commit `4846fee5b06af770e9b3a10c36200f673d656725`, OpenAI Codex assisted, Apache-2.0), including its proof-content and reference/metadata mutation controls; the normalization of descriptive width metadata after frame changes follows the same PR. + +The owner map was nominated by a HiGHS window MILP (adapted from PR569's `global/nominate_width7.py`) with lazy cross-time Hall cuts; it is not an admission dependency. + +Prepared by Claude Code (Anthropic) research agents. Apache-2.0 applies; LICENSE is included. All notices, licenses, source pins and AI disclosures of the pinned sources and their ancestry are retained in those packages and are not replaced by this notice. All inherited conditional assumptions remain conditional. + +**This package (complex-571-cold14, DreamingOfClouds).** It starts from PR601 (jeremykothe2, `research/complex-571-hpem46`, commit `529ab7dcb59d5ea7a5798e9e06cf5b3aee8a1550`). Everything above is kept unchanged except the following: +- every provider chain (ck, atm3, jp8) gains the typed step `cold_end` (`code/build_cold_end.py`, `code/cold_end_controls.py`; recipes `data/recipes/*-cold_end.json.gz`); +- the generalised native chain and the global admission scripts accept cold helpers that end below FULL (with `0:U` wrappers), a refactored exact cleanup, and check the wrapper order; +- `data/PLAN.json` / `data/OWNERS.json.gz` (dispatch and literal owner map) come from a relocate/swap/ejection-chain/provider-flip annealing search started from PR601's map (not an admission dependency); +- `data/SPEC.json` holds the expected values, recorded by a discovery run and then checked by a strict run. + +The cold-end construction (a row-plus-column cone condition for low-frame ends, a rank-0 dirt-spread premix and multi-gate lower-frame cleanup) builds on PR591 / PR592 / PR593 / PR601 (jeremykothe2) and our PR599 (Lean: multi-gate and cold hyperplane-end tails). DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. Build on this at your own risk. + + +**This package (complex-571-cold14-j1, jeremykothe2).** It is PR604's `complex-571-cold14` (DreamingOfClouds, commit `af8c23b`) with only the literal owner map, plan windows/profile and expected values changed, found by an ejection-chain polish of PR604's map. All construction, code, controls and proofs are PR604's and earlier contributors', unchanged. diff --git a/research/complex-571-cold14-j1/PROOF-COMMUTING-PREFIX.md b/research/complex-571-cold14-j1/PROOF-COMMUTING-PREFIX.md new file mode 100644 index 0000000000..f3ab78dba0 --- /dev/null +++ b/research/complex-571-cold14-j1/PROOF-COMMUTING-PREFIX.md @@ -0,0 +1,91 @@ +# Hyperplane ends past a commuting cleanup prefix (46 helpers per call) + +Status: for independent review. Code: `scratch/MultiHPEScout/pipe/` (a copy of `scratch/Pipeline`; only +`code/build_hpe.py` and `code/hpe_controls_atc.py` differ). Lean: PR #593 (`research/hyperplane-end-lean`, Tail.lean / +Main.lean / Labels.lean) and PR #599 (Multi.lean), archived at `scratch/MultiHPEScout/research/hyperplane-end-lean`. + +## 0. The change + +`build_hpe.py` (#596) admitted an early cleanup gate `g = cleanup[i] = h -= p` only when `g` was the **first** cleanup +gate on both `h` and `p`. The relaxed rule admits `g` when it **commutes with every earlier cleanup gate on its registers** +(`commute()` in build_hpe.py: neither gate writes a register the other touches, or both are additions into one target +and neither reads the other's target). All other conditions are unchanged: `h` is an entering helper with exactly one +cleanup gate, `U` = join of the last A/B frames of `h` and `p` (dim 8), early gates share no register. + +On #596's ck, atm3 and jp8 words this admits 8 more helpers per word (38 → 46): `h ∈ {496, 497, 520, 521, 544, 545, +568, 569}`. In each case the partner `p` (299, 33, 331, 105, 363, 41, 395, 97) has exactly one earlier cleanup gate, +`x -= p` (x = 283, 9, 315, 65, 347, 1, 379, 73; cleanup 440–447), which only **reads** `p`. `h` has no earlier cleanup +gate. E is dim 1 ((24) or (30)), the last frames of h / p have dim 7 / 5 and U has dim 8. + +Per helper: width 8 → 7; paid `{1:+2, 2:−1, 3:+1, 4:−1}` (h 7→9 becomes 7→8; p 5→9 becomes 5→8→9). Rank mass −1 with +hosted width −1, so total mass and the 2560 deficit are unchanged. The constructor's profile is reproduced by an +independent build of coldk-hpe with the same rule (`coldk-multi.exe info`). + +Multi-gate tails and cold E = ⊥ helpers (#599) admit nothing further on these words; see `CENSUS.md`. + +## 1. Why #593's hypotheses still hold + +#593's theorems are about the word **as executed**, `a ++ tail ++ b ++ [post]`. Nothing in them refers to the original +cleanup order: the order matters only through the scalar hypothesis `hS` (unit helper row, zero column), which the +tools check on the reordered program. + +1. **Labels** — `hpe_labels` (Tail.lean:44; equally `hpe_labels_multi`, Multi.lean:195, as the one-gate instance via + `tail_eq_mtail`). Hypotheses: + * `ha`: `a` = precondition + compensation + A + cut + B is the inherited part, unchanged. + * `tail h p Ah Ap U q` is well labelled by `tail_labels` (Tail.lean:30): h and p climb to U, the gate runs at U (G0). + * `hb`: `b` = the final climbs + the remaining FULL cleanup. The skipped gate `x -= p` now runs in `b` after `p` has + climbed U → FULL in the final phase, so both operands are at FULL (G0). `b` is well labelled exactly as for the 38 + (the partner of each of the 38 likewise continues U → FULL). + * `hmv`: no event of `b` moves `h`. True because `h` has exactly one cleanup gate (constructor assert; audit assert + `cleanup on non-FULL end`, hpe_audit_and_transport.py:216). + The skipped gate touches `p` and `x`, never `h`, so the relaxation does not affect `hmv`. +2. **Scalars** — `hS` and the endpoint (E). `hpe_audit_and_transport.py:116-124` replays `precondition + compensation + + A + cut + B + tail + rest` exactly (forward and inverse-transpose, all 728 columns) and asserts the inherited scalar + identity. Why it passes: as matrices, `t += a·s` is `I + a·E_ts`, and + `(I + a E_ts)(I + b E_uv) = I + a E_ts + b E_uv + ab·[s = u]·E_tv`. For `x -= p` (t = x, s = p) and `h -= p` + (u = h, v = p): `s = p ≠ h = u` and `v = p ≠ x = t`, so both products equal `I − E_xp − E_hp`; the gates commute and the + reordered program is the same linear map as the original. A skipped gate that **writes** `p` (`p += c·y`: t = p = v) + or touches `h` fails this and is refused by the constructor; any such move that reached the audit is rejected by the + replay (control below). +3. **(N)** — the new helpers use (E, U) pairs `((24), U₂₄)` and `((30), U₃₀)`. The wrapper check + (`hpe_adapters_local.py`, `WRAPPER-CHECKS.json`) checks T_U T_E⁻¹ = L (C_[7] ⊗ I) R exactly with phase for **every** + (E, U) pair of the emitted word; #593's `factor_of_exact` then gives (F), and `hpe_word` (Main.lean:86) gives the + endpoint `χ⁻¹ (C_[7] ⊗ I₂) χ`. `code/check_hpe_pairs.py` (#593 §4) re-checks the shape on the emitted local run. +4. **Accounting** — unchanged rules: width = |final| − |E| at the emit/audit/invoice sites, mass neutrality as in + `HostingShapeScout/PROOF-HYPERPLANE-END.md` §2 (the partner pays last → U → FULL, h pays last → U). + +No verifier rule changes: the audit, emitter, adapters, invoice and global stage already accept any exact reordering. +Only the constructor's admissibility rule (a sufficient condition for the replay to pass) is widened. + +## 2. Negative controls (`code/hpe_controls_atc.py`, run by verify.py's hyperplane_end step) + +Inherited raw-word controls (8), all rejected; the first is the audit-level one for this change: an early gate that does +not commute with its skipped prefix (a gate whose source was written by an earlier cleanup gate) is rejected by the +exact replay. + +New controls (13; PrefixReviewer fixes applied). Every constructor control must fail with a **pinned** assertion message +(`NONCOMMUTE` = "cleanup gate does not commute with the skipped cleanup gates on its registers", `ONEGATE` = "helper must +have exactly this one cleanup gate"); a different failure aborts the control run. Helpers are paired with their early +gate through the gate's target `cleanup[i][1]` (checked against `helper_final`), not through dict order. +* Synthetic, gate inserted at the head of the cleanup (skipped by the first early gate `h -= p`): + positive `x -= p` (only reads p) accepted; `p -= x` → NONCOMMUTE; `p *= −1` → NONCOMMUTE; + an extra gate reading `h` → ONEGATE; an extra gate adding into `h` → ONEGATE (these two exercise the one-gate rule, + not the commutation check). +* Real helpers: for each helper admitted only by the commutation rule (496, 497, 520, 521, 544, 545, 568, 569 on ck), + its actual skipped gate `x -= p` (cleanup 447 … 440) is flipped in place to `p -= x` → NONCOMMUTE (8 controls). The + unflipped word's own changes are re-built (positive). +* Raw word (audit): `local_profile['1'] −= 8` (the 8 new partners' U → FULL climbs not charged) → rejected by the + audit's paid-profile assert. + +Result on `w_ck`: `PASS 21 HPE raw-word mutations rejected` (9 raw-word + 12 constructor). + +## 3. Evidence from the strict build (`prop_m46/build`, pipe/propose.py --until build, dev reuse of baseline558 only) + +* `{ck,atm3,jp8}-step*-hyperplane_end-construction.log`: `PASS 46 hyperplane-ended helpers` each. +* `{ck,atm3,jp8}-step*-hyperplane_end-controls.log`: `PASS 12 HPE raw-word mutations rejected` each (8 inherited + 4 + constructor; the positive reader case built). +* `{ck,atm3,jp8}-local/WRAPPER-CHECKS.json`: `PASS_RESIDUAL_WRAPPERS_ARE_EXACT`; plus the local native checks + (all-columns-native-frames = exact replay of the reordered program, phase edges, reflected ledgers, independent local + controls) that the build runs on every provider. +* #593's independent instance check `code/check_hpe_pairs.py RUN --mutants` on each local: PASS, 46 helpers, 3 distinct + (E, U) pairs (24 / 12 / 10 helpers; #596 had 24 / 8 / 6 — the same three pairs), 6/6 mutants rejected. diff --git a/research/complex-571-cold14-j1/README.md b/research/complex-571-cold14-j1/README.md new file mode 100644 index 0000000000..6631848b84 --- /dev/null +++ b/research/complex-571-cold14-j1/README.md @@ -0,0 +1,155 @@ +# complex-571-cold14-j1: conditional κ 0.001620246754858718 + +This package is PR604's `complex-571-cold14` (DreamingOfClouds) with an improved literal owner map: an ejection-chain (depth 2) polish of PR604's map at the same dispatch (ck ×44, atm3 ×22, jp8 ×6). Only `data/OWNERS.json.gz`, `data/PLAN.json` (profile/windows) and `data/SPEC.json` (expected values) differ; the construction, code and controls are PR604's, byte for byte. The rest of this README is PR604's, with paths updated. + +**Build on this at your own risk.** DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. This package awaits independent review. + +## Result + +κ = **0.001620147045734211** (conservative model 0.001620147042858282). That is **+0.368% over PR601** (0.001614202339036103) on dispatch ck ×44, atm3 ×22, jp8 ×6. The value comes from `ASSEMBLY.json` of the strict `verify.py` run on this package's literal owner map. The paid profile is {1:185869, 2:32471, 3:23609, 4:14128, 5:5040, 6:2016, 7:6, 8:581, 16:15, 24:1, 32:76, 48:2039} (live 7168, deficit 2560). + +The complex side binds: + +| quantity | value | +|---|---| +| native complex lower bound | 0.001622776181770995425298 | +| bit supplier value (PR543) | 0.0016538 (`bit_lower` 0.001653826988146798944268) | +| κ with the bit cap | 0.001620147045734211 | +| κ without the bit cap | 0.001620147045734211 | + +The bit value is above the complex bound, so it does not bind, and κ is the same with or without the cap. + +## What changes relative to PR601 + +PR601 (jeremykothe2) dispatches three provider words: **ck**, **atm3** and **jp8**. In each word, 46 entering helpers per call end at a hyperplane. The mechanism comes from PR591, PR592 and PR601. The Lean side is Lemma A with an arbitrary terminal frame (PR593) and multi-gate tails (PR599). + +This package appends one typed build step, `cold_end`, to each of the three chains, after `hyperplane_end`. In every call, 14 **cold** factory-scratch helpers end at a **4-dimensional frame U_b** instead of FULL, so their residual width drops from 9 to 4. These helpers are `S b.10`, one per factory block b: registers 234, 250, …, 442. The step has three parts. + +1. **Premix.** 142 rank-0 gates at frame `[]` sit at the head of section A. For each block b, the premix swaps the dirt of `S b.0` and `S b.10`. It then fans the candidate's initial value out into `S b.1 … S b.7` with ±1 coefficients. The premix runs after the entry adapters and paid wrappers, so every gate on a cold-ended helper follows its pre-wrapper R_{0,U}^-1. The compensation reads no cold-ended helper. +2. **Lower-frame cleanup.** For each candidate h, four multi-gate tail gates run right after B at frame U_b: + - `h += −½·P_a` + - `h += P_b` + - `P_c += h` + - `P_d += h` + + Here P_a … P_d are data ports whose end-of-B frames lie in U_b. After these gates, h's row and column of the state are unit vectors. The 46 inherited hyperplane-end gates follow unchanged. +3. **Exact FULL remainder.** A dyadic Gauss–Jordan refactorisation of the rest of the inverse replaces the literal reversed-inverse cleanup. It touches no helper that ends below FULL. + +**Why the premix makes this possible.** A helper h can end at a frame U only if two things hold at the end of B, under every monotone common-frame cleanup: +- the row of h in the inverse state map is supported on registers whose frames lie in U; +- the column of h (every register carrying h's initial dirt) is supported on registers whose frames lie in U. + +The premix spreads each candidate's initial dirt over `S b.0 … S b.7`. That collapses its dirt column to three low-frame registers, which is what makes the dim-4 frame reachable. + +Effect per call and per provider: +- the paid local profile changes by {1:+28, 5:+14, 6:−28}; +- 14 helpers go from width 9 to width 4. + +The dispatch and the literal owner map are re-solved for the new widths (`data/PLAN.json`, `data/OWNERS.json.gz`). They come from an annealing search started from PR601's map, using relocate, swap, ejection-chain, bin-evacuation and provider-flip moves. Every inherited window, family and capacity constraint is kept. + +The approach borrows from the uncomputation literature: Bennett 1989; Gidney 2015 (borrowed dirty ancillas); Häner–Roetteler–Svore 2017. + +## Why the cold ends are legitimate + +**Labels and realisation.** PR599's `hpe_labels_multi` / `hpe_word_multi` (Lean) cover: +- any number of tail gates per helper, as target or partner; +- interleaved helpers; +- any terminal frame; +- an unrestricted entrance, so the cold case E = ⊥ is included. + +`exact_cold` reduces (N) for (⊥, U) to a monomial factorisation of T_U, which is how `canonical_frame` defines T_U. + +**(N) for every (0, U_b) pair.** This is checked exactly here. `hpe_adapters_local.py` verifies L^-1 T_U R^-1 = C_[4] ⊗ I, global phase included, for all 14 dim-4 pairs. It rejects these wrapper mutants: +- identity pre or post wrapper; +- no wrappers; +- FULL decode; +- width 9; +- wrong U; +- wrong phase. + +PR599's `cold_hyperplane_width` lemma is the dim-8 case. Here the width |U| − |E| = 4 − 0 is the |final| − |start| rule that PR591's verifier already applies at every global site. + +**The refactored cleanup is not trusted.** `hpe_audit_and_transport.py` accepts a non-literal cleanup only when the word carries `refactored_cleanup`. Such a cleanup must: +- touch only non-target registers; +- use only dyadic additions and signed binary scales; +- make the arbitrary-dirt endpoint replay of the full reordered program exact in both orientations. + +The transport also checks the row and column cone conditions above for every helper that ends below FULL. + +**Wrapper order.** Two independent checks enforce it: +- The transport rejects any zero-frame precondition or compensation gate that touches a cold-ended helper. +- The event-level replay (`hpe_audit_local.py`) requires every scalar on a wrapped helper to lie between that helper's pre and post residual adapters. A negative control that hoists a premix gate in front of the pre-wrapper must be rejected. + +## Verifier changes (inert for words without cold ends) + +- `code/hpe_audit_and_transport.py`: + - cold helpers may end at a proper subframe U (here dim 4) with `0:U` wrappers; + - the row/column cone pre-check; + - the refactored-cleanup switch; + - the zero-frame wrapper-order assertion. +- `code/hpe_emit_local.py`, `hpe_audit_local.py`, `hpe_adapters_local.py`: + - `0:U` wrappers for cold low-frame ends; + - the event-level wrapper-order check; + - 7 event-level and 7–8 recipe-level cold mutants. +- `code/audit_allcold.py`, `invoice_allcold.py`, `assemble.py`: a cold helper may end below FULL with `0:U` wrappers, and these count as wrappers. +- New step `cold_end`: + - `code/build_cold_end.py` splices the recipe data and recomputes the profile and widths from the frame chains; + - `code/cold_end_controls.py` holds 14 raw-word mutants that must be rejected, including a premix moved into the precondition. +- `code/witness.py` adds `WITNESS_RECORD`, used for discovery bookkeeping only. + +## Future optimization (results and open headroom) + +All LP figures below are first-order bounds. They come from the aggregate hosting LP (the whole-owner model on PR601's windows, objective Σ r·ln(73/r)), calibrated against exact moment-engine prices. On PR601's own dispatch and widths, the LP lies within 0.005% of PR601's literal map. + +| quantity | value | +|---|---| +| LP ceiling, fixed dispatch (PR601's ck 45 / atm3 21 / jp8 6, all cold) | ≈ +0.49% | +| LP ceiling, free dispatch over {ck, atm3, jp8} cold | ≈ +0.71% | +| this package's literal map | +0.368% | +| remaining owner-map headroom on the fixed dispatch | ≈ 0.12 pt | + +- **Free dispatch is jp8-heavy.** The LP puts about 70 calls on jp8 and about 2 on atm3. The LP's idle remainder is pure rank-48 idle children, whereas the literal map still leaves some rank-16 and rank-32 idle children. +- **What limits jp8.** The time windows do not limit jp8. Time-refinability does: within each owner group, each port may host at most one helper per call. The aggregate optimum ignores this, and the exact per-port refinement of it is infeasible. Literal maps for jp8-heavy dispatches found so far are worse than PR601's dispatch. +- **Closing the gap.** An exact, edge-colourable owner model is the remaining owner-side lever: per-time Hall conditions, or a pattern-restricted model warm-started from this map. +- **End dimension (first-order).** Raising a unit's end frame from dim 4 to dim d needs the last tail gate at that frame, which lifts one partner. This adds 2ψ(d−4) + ψ(9−d) − ψ(5) to the local cost per unit, where ψ(r) = r·ln(73/r). That is +6.8, +10.6, +13.0 and +14.1 for d = 5…8. The remaining hosting headroom is about 1–2 per unit, so d = 4 is the best end dimension for these units. +- **Necessary condition, for any cleanup factorisation.** A helper h can end at a frame U only if, at the end of B, the supports of its row in the inverse state map and of its dirt column both lie in Q_U, the registers whose end-of-B frames lie in U. The transport checks this condition for every low-frame end. Choosing which units satisfy it, through the premix, is the supply question. This package uses 14 units per word. Their optimality per word is not certified here. + +## Verification + +Fetch the pinned sources exactly as for PR601, then run: + +```sh +research/complex-571-cold14-j1/verify.sh /tmp/complex-571-cold14-j1 .. +# kappa 0.001620147045734211 +``` + +`verify.py` uses only the standard library and requires assertions. It runs these stages: + +1. It checks the MANIFEST and every source, PLAN, OWNERS and recipe pin. +2. It replays PR558. +3. It rebuilds the three provider words through their typed chains. That is 17 steps, each with pinned input and output content hashes and paired controls. +4. It localizes each word through the generalised native chain: + - exact scalar replay and the cone pre-check; + - both reflected ledgers; + - the independent local replay with its mutants; + - exact wrappers; + - all phase edges. +5. It runs binding and the physical owner audit with its controller mutants. +6. It runs a fresh finite invoice and both exact moment engines. +7. It runs the assembly controls, the phase-timing controls and the generated-identity controls. + +The result is conditional on the inherited assumptions listed in NOTICE.md. + +## Credits + +- **jeremykothe2**: + - PR601, PR600, PR596, PR592 and PR591: hyperplane-ended helpers, the HPE verifier, and the packages and owner maps this one starts from; + - PR593: Lean Lemma A with an arbitrary terminal frame. +- **icekylinx**: PR531 and PR535 (entrance and kernel machinery). +- **DreamingOfClouds**: + - PR509 and PR516 (the Lemma A / Lemma G Lean line); + - PR599 (multi-gate and cold hyperplane-end Lean); + - PR484. +- The pinned PR568, PR569, PR571, PR575 and PR583 packages and their authors, as listed in NOTICE.md. + +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. diff --git a/research/complex-571-cold14-j1/code/assemble.py b/research/complex-571-cold14-j1/code/assemble.py new file mode 100644 index 0000000000..7a6bcd73f9 --- /dev/null +++ b/research/complex-571-cold14-j1/code/assemble.py @@ -0,0 +1,213 @@ +"""Hardened 63 width-seven (#571 prefix word) and 9 plain eight-cold (#568 E8) provider assembly with the native exact-complex moment. + +Prepared with OpenAI Codex assistance. The rational engines and outer +constraints are retained from PR547/PR548 and their preserved ancestry. +The bit operator is the cited unchanged PR543 supplier. The complex owner +and invoice inputs must be freshly emitted by the packaged physical replay. +All conservative admission guards and conservative moment/outer witnesses run +before the PR559 native-complex correction. The bit surcharge is retained. +""" +from pathlib import Path +from fractions import Fraction as Q +from decimal import Decimal, localcontext +import argparse,json,hashlib,importlib.util,os,sys +from collections import Counter +assert __debug__, 'Assertions required' +P=Path(sys.argv[1] if __name__=='__main__' else os.environ['GAIN_PR564_SOURCE']).resolve() +read=lambda p:json.loads(p.read_text()) +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +hash_ok=lambda x:isinstance(x,str) and len(x)==64 and all(t in '0123456789abcdef'for t in x) +digest=lambda x:hashlib.sha256(json.dumps(x,separators=(',',':')).encode()).hexdigest() +def load(n): + s=importlib.util.spec_from_file_location(n,P/'engines'/(n+'.py'));m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +M,B,A=[load(n)for n in ('moment','base_two_moment','outer')] +def dec(x): + with localcontext()as ctx:ctx.prec=70;return str(Decimal(x.numerator)/Decimal(x.denominator)) +from witness import DISPATCH,CALL_ORDER,COUNTS,PIDS,X,DISCOVER,pin + + +def assemble(owner,invoice,owner_sha,invoice_sha): + # These are admission receipts, not optional collections of successful rows. + # Require both orientations and every finite check before pricing anything. + assert owner['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert invoice['status']=='PASS_INDEPENDENT_MIXED_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE' + assert all(hash_ok(x)for x in (owner_sha,invoice_sha,owner['template_sha256'],owner['controller_audit_sha256'],invoice['parent_template_sha256'])) + checks={'local_primitive_bound','logical','router','literal','mass','precision','tape','row','halving'} + assert set(invoice['strict_checks'])==checks + assert all(invoice['strict_checks'][name] is True for name in checks) + assert set(invoice['providers'])==set(PIDS) + assert invoice['provider_counts']==COUNTS + assert owner['all_live_owners_per_call_distinct'] is True + assert owner['owners_per_call']==728 and owner['actual_helper_owner_charts']==owner['hosted_residuals']==pin('expected.hosted_residuals',owner['hosted_residuals']) + pin('expected.rank_mass',owner['rank_mass']) + pin('expected.actual_73column_sigmas',owner['actual_73column_sigmas']);pin('expected.cross_replica_helper_roles',owner['cross_replica_helper_roles']) + pin('expected.idle_remainders',owner['explicit_idle_remainder_children']) + assert invoice['complete_invocation_sweeps']==invoice['bridge_sweeps']==72 + assert invoice['live']==owner['live'] and invoice['physical']==owner['physical'] + assert invoice['helpers']==504 and invoice['centres']==8 + assert invoice['physical_stock_identity']==dict(data_and_owner_families=7168,local_helpers=504,private_centres=8,coefficient_work=2) + assert sum(invoice['physical_stock_identity'].values())==invoice['physical'] + assert invoice['controller_audit_sha256']==owner['controller_audit_sha256'] + for pid,p in invoice['providers'].items(): + assert set(p['local'])=={'forward','backward'} + assert p['helpers']==504 and p['centres']==8 and p['n']==728 and p['v']==112 and p['h']==9 + K='providers.'+pid+'.';pin(K+'entering',p['entering_helpers']);pin(K+'entrance',p['entrance_rank']) + pin(K+'inventory',p['width_inventory']) + assert all(type(w) is int and 0=0 for n in idle.values()) + idle=+idle;assert sum(idle.values())==owner['explicit_idle_remainder_children'] + pin('expected.idle_remainder_profile',{str(r):n for r,n in sorted(idle.items())}) + paid.update(idle) + assert dict(paid)=={int(r):n for r,n in owner['paid_profile'].items()} + assert invoice['compiler']==64*74**3 + assert invoice['local_adapters']==max(p['local_adapters']for p in invoice['providers'].values()) + assert invoice['local_primitive_bound']==max(p['local_primitive_bound']for p in invoice['providers'].values()) + # Recount the retained dedicated-bank envelope independently. Its geometry + # stays fixed, while every local primitive and wrapper comes from the actual + # selected provider/orientation sums above. + parent_live,parent_physical,parent_idle=11704,12218,16128 + assert owner['source_idle_children_charged']==parent_idle + bridges,shifts=2*112*72,4*112*8;moves=2*shifts + nonlocal_items=(4*112*8*9+2*112*8*9+2*72*504+parent_idle+9*504+bridges+shifts+moves+parent_live+parent_physical+invoice['wrapper_elementary_factors_charged']) + outside=8*nonlocal_items+64*73 + pervertex=(invoice['selected_real_component_primitives']+bridges+shifts+moves+parent_live+(72*invoice['local_adapters']+outside)*invoice['compiler']+64*parent_physical) + rebased=pervertex+65*(invoice['physical']-parent_physical)+(invoice['live']-parent_live) + assert invoice['unhosted_pervertex']==pervertex and invoice['hosted_rebased_pervertex']==rebased + used=max(pervertex,rebased) + prior=invoice['retained_prior_overcharge'] + if prior is not None: + assert hash_ok(prior['sha256']) and type(prior['previous_pervertex_allowance']) is int and prior['previous_pervertex_allowance']>0 + assert prior['added_complete_new_pervertex']==pervertex + assert prior['policy']=='Retain old allowance and add entire fresh mixed recount.' + used=max(used,prior['previous_pervertex_allowance']+pervertex) + assert invoice['conservative_pervertex_used']==used + finite=invoice['finite'] + assert 02*48*48) + assert actual_checks==invoice['strict_checks'] and all(actual_checks.values()) + bit_path=P/'inputs/PR543-EXPECTED.json';bit_data=bit_path.read_bytes() + assert hashlib.sha1(b'blob '+str(len(bit_data)).encode()+b'\0'+bit_data).hexdigest()=='b61d859826246e0c3dabbe096e57ad7015eadfd5' + bit=json.loads(bit_data)['nine'] + c=Q(bit['bit_lower']) + H={int(r):n for r,n in owner['paid_profile'].items()};pin('expected.global_profile',owner['paid_profile']) + # Claimed lower endpoints come from the spec; discovery derives them with the same certified moment engine. + # Either way they are verified below (accepted at b, rejected at b+1e-24). + if DISCOVER:b=Q(M.certify(H,73,owner['live'],False)['lower']);conservative_b=Q(M.certify(H,73,owner['live'],True)['lower']) + else:b=Q(X['complex_lower']);conservative_b=Q(X['conservative_complex_lower']) + assert owner['template_sha256']==invoice['template_sha256'] and owner_sha==invoice['owner_audit_sha256'] + pin('expected.live',owner['live']);pin('expected.physical',owner['physical']);assert owner['deficit']==2560 + assert owner['banked_residuals']==0 + def check_moment(side,h,m,W,lower,deficit,bad): + assert m*W-sum(r*n for r,n in h.items())==deficit and m*m>2*max(h)**2 + rows=[] + for z,accept in [(lower,True),(lower+Q(1,10**24),False)]: + l,u=M.moment(h,m,W,z,bad);ll,uu=B.moment(m,W,list(h.items()),z) + if bad: + fl,fu=B.moment(m,W,[(1,32*m*m*sum(h.values()))],z);ll+=fl/10**16;uu+=fu/10**16 + assert (u<1 and uu<1)if accept else(l>1 and ll>1) + rows.append(dict(side=side,surcharge=bad,endpoint=str(z),accept=accept,mercator=[str(l-1),str(u-1)],base_two=[str(ll-1),str(uu-1)])) + return rows + bitH={int(r):n for r,n in bit['profile'].items()} + bit_moments=check_moment('bit',bitH,64,bit['bit']['live'],c,9984,True) + conservative_moments=check_moment('conservative_complex',H,73,owner['live'],conservative_b,2560,True) + assert bit['bit']['two_level_coefficient_bits']0 + ceil=lambda x:-(-x.numerator//x.denominator);cut=max(ceil(36/gap**2),ceil(2*(4+512)/gap));assert cut*gap**2>=36 and cut*gap>=2*(4+512) + cuts.append(dict(exponent=str(a),gap=str(gap),cutoff_log2=str(cut)));chain.append(a) + q=chain[-1]*(1-2*eta);margin=(1-eta)*q/(1+q);ticks=margin*10**18;k=Q((ticks.numerator-1)//ticks.denominator,10**18) + bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1},'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} + outer=A.assembly(chain[-1],bb,bridge,k,eta=eta,beta=beta);assert len(outer['strict_constraints'])==47 and all(v>0 for v in outer['strict_constraints'].values()) + controls=[] + for name,kk,ee,be in [('next_grid',k+Q(1,10**18),eta,beta),('zero_eta',k,Q(0),beta),('zero_beta',k,eta,Q(0)),('unit_beta',k,eta,Q(1))]: + try:A.assembly(chain[-1],bb,bridge,kk,eta=ee,beta=be) + except AssertionError:controls.append(name) + else:raise AssertionError(name) + return k,cuts,outer,controls + conservative_k,conservative_cuts,conservative_outer,conservative_controls=outer_witness(conservative_b) + pin('expected.conservative_kappa_decimal',dec(conservative_k)) + # Only after every conservative supplier/admission/outer check succeeds is + # the reviewed native exact-complex recurrence selected. Bit charge stays. + native_moments=check_moment('complex',H,73,owner['live'],b,2560,False) + k,cuts,outer,controls=outer_witness(b) + pin('expected.kappa_decimal',dec(k)) + assert M.moment(H,73,owner['live'],b,True)[0]>1 + assert M.moment(bitH,64,bit['bit']['live'],c+Q(1,10**24),False)[1]<1 + model_controls=['native_complex_endpoint_rejected_with_old_surcharge','omitting_bit_surcharge_would_fail_next_endpoint_rejection'] + moments=bit_moments+native_moments + input_hashes={'owner_audit':owner_sha,'fresh_invoice':invoice_sha,'inputs/PR543-EXPECTED.json':sha(bit_path)} + input_hashes.update({'engines/'+name+'.py':sha(P/'engines'/(name+'.py'))for name in ('moment','base_two_moment','outer')}) + return dict(status='PASS_FRESH_MIXED_048_ALLCOLD_NATIVE_EXACT_ASSEMBLY',kappa=str(k),kappa_decimal=dec(k),complex_lower=str(b),complex_decimal=dec(b),bit_lower=str(c),bit_decimal=dec(c),binding='complex',gain_over_pinned569_percent=dec(100*(k/Q(X['gain_baseline_kappa'])-1)),complex_profile=H,provider_counts=invoice['provider_counts'],surcharge_model={'complex':False,'bit':True},conservative_complex_lower=str(conservative_b),conservative_complex_decimal=dec(conservative_b),conservative_kappa=str(conservative_k),conservative_kappa_decimal=dec(conservative_k),conservative_moments=conservative_moments,conservative_bootstrap=conservative_cuts,conservative_outer={n:str(v)for n,v in conservative_outer['strict_constraints'].items()},conservative_controls=conservative_controls,model_controls=model_controls,native_correction_gain=dec(k-conservative_k),template_sha256=owner['template_sha256'],input_sha256=input_hashes,bit_supplier=dict(pr=543,repository='eumemic/integer-mult-bounds',commit='2065fe4f72a914d907f1046603f5a36f17018535',path='research/e8-bit-r420/EXPECTED.json',git_blob_sha1='b61d859826246e0c3dabbe096e57ad7015eadfd5',replay_scope='Cited unchanged supplier; this assembly reprices its full profile and does not rebuild its bit circuit.'),moments=moments,bootstrap=cuts,outer={n:str(v)for n,v in outer['strict_constraints'].items()},controls=controls,scope='Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification.') +if __name__=='__main__': + import sys + package,C,out=map(Path,sys.argv[1:4]);assert package.resolve()==P and not out.exists() + owner_path=C/'audit/OWNERS-AND-PROFILE.json';invoice_path=C/'audit/PREFIX-AND-INVOICE.json' + owner,invoice=read(owner_path),read(invoice_path) + assert owner['template_sha256']==read(C/'hosted/HOSTED.json')['template_sha256'] + r=assemble(owner,invoice,sha(owner_path),sha(invoice_path));out.write_text(json.dumps(r,indent=2)+'\n');print(r['status'],r['kappa_decimal']) diff --git a/research/complex-571-cold14-j1/code/assembly_controls.py b/research/complex-571-cold14-j1/code/assembly_controls.py new file mode 100644 index 0000000000..fdc35bb4c9 --- /dev/null +++ b/research/complex-571-cold14-j1/code/assembly_controls.py @@ -0,0 +1,251 @@ +"""Independent admission controls for the N-provider native-complex assembly (per-provider controls). + +Prepared with OpenAI Codex assistance; Apache-2.0. Mutation receipts are +rebound to their new owner digest, so unrelated stale hashes cannot conceal +an incomplete width, provider, orientation, paid-profile or finite check. +The fresh physical replay remains a separate prerequisite. +""" +import argparse +import copy +import itertools +import math +import hashlib +import json +import os +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * + +assert __debug__, 'Assertions required' +P = Path(__file__).resolve().parent +sha = lambda p: hashlib.sha256(p.read_bytes()).hexdigest() +digest = lambda x: hashlib.sha256(json.dumps(x, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + + +def verify(owner_path, invoice_path, source_package): + os.environ['GAIN_PR564_SOURCE'] = str(source_package.resolve()) + from assemble import assemble + owner = json.loads(owner_path.read_text()) + invoice = json.loads(invoice_path.read_text()) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + + def empty_maps(o, i): + i['strict_checks'] = {} + i['providers'] = {} + + def understated_stock(o, i): + o['physical'] -= 1 + i['physical'] -= 1 + i['physical_stock_identity']['coefficient_work'] -= 1 + + def changed_profile(o, i): + o['paid_profile']['1'] += 2 + o['paid_profile']['2'] -= 1 + + def wrong_orientation(o, i): + c = next(c for c in i['selected_calls'] if c['stage'] == 0) + c['orientation'] = 'backward' + p = i['providers'][c['provider_id']] + z = p['local']['backward'] + c['program_sha256'] = p['program_hashes']['backward'] + for name in ('events', 'macros', 'real_component_primitives', + 'coefficient_work_primitive_count', 'pre_wrappers', 'post_wrappers'): + c[name] = z[name] + i['selected_real_component_primitives'] = sum(c['real_component_primitives'] for c in i['selected_calls']) + i['selected_coefficient_work_primitive_count'] = sum(c['coefficient_work_primitive_count'] for c in i['selected_calls']) + + def understated_prefix(o, i): + for p in i['providers'].values(): + for z in p['local'].values(): + z['prefix_bits'], z['prefix_l1'] = 1, '1' + i['global_prefix_bits'] = 1 + 37 + 72 + 72 + 4 + + def reordered_calls(o, i): + i['selected_calls'][0], i['selected_calls'][1] = i['selected_calls'][1], i['selected_calls'][0] + + def no_cold_wrappers(o, i): + for p in i['providers'].values(): + p['entering_helpers'] -= 4 + for z in p['local'].values():z['pre_wrappers'] = z['post_wrappers'] = p['entering_helpers'] + for c in i['selected_calls']: + c['entering_helpers'] = c['pre_wrappers'] = c['post_wrappers'] = i['providers'][c['provider_id']]['entering_helpers'] + i['wrapper_elementary_factors_charged'] = sum(2*c['pre_wrappers'] for c in i['selected_calls'])*i['factors_per_wrapper'] + + controls = [ + ('empty_certification_maps', empty_maps), + ('failed_invoice_status', lambda o, i: i.__setitem__('status', 'FAIL')), + ('nonboolean_precision_check', lambda o, i: i['strict_checks'].__setitem__('precision', 'true')), + ('wrong_owner_role_count', lambda o, i: o.__setitem__('actual_helper_owner_charts', o['actual_helper_owner_charts'] - 1)), + ('understated_physical_stock', understated_stock), + ('changed_profile_same_rank_mass', changed_profile), + ('insufficient_finite_C0', lambda o, i: i['finite'].__setitem__('required_C0_bits', 210001)), + ('missing_finite_check', lambda o, i: i['strict_checks'].pop('halving')), + ('wrong_reflected_orientation_selfconsistent_totals', wrong_orientation), + ('missing_selected_call', lambda o, i: i['selected_calls'].pop()), + ('wrong_selected_primitive_sum', lambda o, i: i.__setitem__('selected_real_component_primitives', i['selected_real_component_primitives'] - 1)), + ('wrong_selected_coefficient_work_sum', lambda o, i: i.__setitem__('selected_coefficient_work_primitive_count', i['selected_coefficient_work_primitive_count'] - 1)), + ('unpaid_wrapper_factors', lambda o, i: i.__setitem__('wrapper_elementary_factors_charged', i['wrapper_elementary_factors_charged'] - 144)), + ('wrong_global_compiler', lambda o, i: i.__setitem__('compiler', 1)), + ('wrong_global_adapter_maximum', lambda o, i: i.__setitem__('local_adapters', 1)), + ('understated_exact_prefix_and_global_sum', understated_prefix), + ('wrong_global_prefix_sum', lambda o, i: i.__setitem__('global_prefix_bits', 224)), + ('wrong_row_prefix_reserve', lambda o, i: i.__setitem__('row_prefix_extra', 0)), + ('wrong_parent_geometry_charge', lambda o, i: i.__setitem__('unhosted_pervertex', 1)), + ('wrong_rebased_geometry_charge', lambda o, i: i.__setitem__('hosted_rebased_pervertex', 1)), + ('wrong_complete_pervertex_envelope', lambda o, i: i.__setitem__('conservative_pervertex_used', 1)), + ('wrong_prior_added_complete_invoice', lambda o, i: i['retained_prior_overcharge'].__setitem__('added_complete_new_pervertex', 1)), + ('wrong_finite_router_bits', lambda o, i: i['finite'].__setitem__('router_bits', 1)), + ('wrong_finite_literal_bits', lambda o, i: i['finite'].__setitem__('literal_bits', 1)), + ('wrong_finite_physical_stock_bits', lambda o, i: i['finite'].__setitem__('physical_stock_bits', 1)), + ('wrong_finite_row_coefficient', lambda o, i: i['finite'].__setitem__('physical_row_coefficient', 1)), + ('reordered_complete_calls', reordered_calls), + ('understated_explicit_idle_remainders', lambda o, i: o.__setitem__('explicit_idle_remainder_children', o['explicit_idle_remainder_children']-1)), + ('understated_actual_chart_types', lambda o, i: o.__setitem__('actual_73column_sigmas', o['actual_73column_sigmas']-1)), + ('wrong_cross_replica_role_count', lambda o, i: o.__setitem__('cross_replica_helper_roles', o['cross_replica_helper_roles']-1)), + ('old_no_cold_wrapper_counts_selfconsistent', no_cold_wrappers), + ] + + def resync(i, c): + p = i['providers'][c['provider_id']] + c['program_sha256'] = p['program_hashes'][c['orientation']] + c['entering_helpers'], c['entrance_rank'] = p['entering_helpers'], p['entrance_rank'] + for name in ('events','macros','real_component_primitives','coefficient_work_primitive_count','pre_wrappers','post_wrappers'): + c[name] = p['local'][c['orientation']][name] + + # Every provider gets the full per-provider control set, substituting a partner provider where needed. + for P in PIDS: + Qp = partner(P) + widths = invoice['providers'][P]['widths'] + + def forged_program_hash(o, i, P=P): + i['providers'][P]['program_hashes']['forward'] = '0' * 64 + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = '0' * 64 + + def wrong_selected_call(o, i, P=P): + c = next(c for c in i['selected_calls'] if c['provider_id'] == P) + d = next(d for d in i['selected_calls'] if d['provider_id'] != P and (d['stage'] - c['stage']) % 2 == 0) + c['stage'], d['stage'], c['replica'], d['replica'] = d['stage'], c['stage'], d['replica'], c['replica'] + + def stale_program(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['program_hashes'] = copy.deepcopy(i['providers'][Qp]['program_hashes']) + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = p['program_hashes'][c['orientation']] + + def stale_profile(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['paid_profile'] = copy.deepcopy(i['providers'][Qp]['paid_profile']) + p['children'] = sum(p['paid_profile'].values()) + + def moved(o, i, P=P): + a = next(c for c in i['selected_calls'] if c['provider_id'] == P) + b = next(c for c in i['selected_calls'] if c['provider_id'] != P and c['orientation'] == a['orientation']) + a['provider_id'], b['provider_id'] = b['provider_id'], a['provider_id'] + resync(i, a); resync(i, b) + + def compensating(o, i, P=P, Qp=Qp): + # Two dishonest profiles that cancel exactly in the dispatch-weighted aggregate. + g = math.gcd(COUNTS[P], COUNTS[Qp]); dp, dq = COUNTS[Qp] // g, COUNTS[P] // g + p, q = i['providers'][P], i['providers'][Qp] + p['paid_profile']['1'] += dp; q['paid_profile']['1'] -= dq + p['children'] += dp; q['children'] -= dq + + def forged_recipe(o, i, P=P): + name = 'CLIFFORD-RECIPES.json' + i['providers'][P]['artifacts'][name] = '0'*64 + o['source_artifacts']['providers/'+P+'/'+name] = '0'*64 + + def forged_phase(o, i, P=P): + i['providers'][P]['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] = '0'*64 + o['provider_phase_semantic_sha256'][P] = i['provider_phase_semantic_sha256'][P] = '0'*64 + + controls += [ + (P + ':missing_provider', lambda o, i, P=P: i['providers'].pop(P)), + (P + ':missing_backward_orientation', lambda o, i, P=P: i['providers'][P]['local'].pop('backward')), + (P + ':unpaid_scalar_primitive', lambda o, i, P=P: i['providers'][P]['local']['forward'].__setitem__('real_component_primitives', i['providers'][P]['local']['forward']['real_component_primitives'] - 1)), + (P + ':wrong_local_artifact_binding', lambda o, i, P=P: i['providers'][P]['artifacts'].__setitem__('LOCAL-PROGRAMS.json.gz', '0' * 64)), + (P + ':false_dirty_restoration', lambda o, i, P=P: i['providers'][P]['local']['backward'].__setitem__('all_dirty_helper_columns_restored', False)), + (P + ':wrong_declared_provider_count', lambda o, i, P=P: i['provider_counts'].__setitem__(P, i['provider_counts'][P] + 1)), + (P + ':wrong_local_compiler', lambda o, i, P=P: i['providers'][P].__setitem__('compiler', 1)), + (P + ':wrong_local_adapter_charge', lambda o, i, P=P: i['providers'][P].__setitem__('local_adapters', 1)), + (P + ':wrong_local_primitive_bound', lambda o, i, P=P: i['providers'][P].__setitem__('local_primitive_bound', 1)), + (P + ':forged_provider_and_call_program_hash', forged_program_hash), + (P + ':provider_at_wrong_call', wrong_selected_call), + (P + ':stale_partner_program_consistent_call_hashes', stale_program), + (P + ':stale_partner_profile_consistent_child_total', stale_profile), + (P + ':relocated_against_partner_same_counts', moved), + (P + ':compensating_false_profiles_with_' + Qp, compensating), + (P + ':synchronized_forged_source_recipe_hash', forged_recipe), + (P + ':synchronized_forged_phase_review_semantics', forged_phase), + ] + # Width order and inventory: swap the first helper of every pair of distinct widths (same inventory), + # and shift one unit between them (same total). + first = {} + for h, w in enumerate(widths): + first.setdefault(w, h) + for wa, wb in itertools.combinations(sorted(first), 2): + def swap(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a], w[b] = w[b], w[a] + def shift(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a] += 1; w[b] -= 1 + controls.append((P + ':width_order_swap_%d_%d' % (wa, wb), swap)) + controls.append((P + ':width_inventory_shift_%d_%d' % (wa, wb), shift)) + for h in (270, 282, 294, 306): + def cold_swap(o, i, P=P, h=h): + w = i['providers'][P]['widths']; j = w.index(9); w[h], w[j] = w[j], w[h] + controls.append((P + ':cold_helper_width_swap_%d' % h, cold_swap)) + rejected = [] + accepted = [] + for name, mutate in controls: + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + mutate(o, i) + oh = digest(o) + i['owner_audit_sha256'] = oh + try: + assemble(o, i, oh, digest(i)) + except (AssertionError, KeyError): + rejected.append(name) + else: + # Discovery has no pinned values to reject spec-only mutations; the strict run must reject every control. + if not DISCOVER: + raise AssertionError('Invalid admission receipt accepted: ' + name) + accepted.append(name) + try: + assemble(owner, invoice, '0' * 64, sha(invoice_path)) + except AssertionError: + rejected.append('wrong_owner_receipt_hash') + else: + raise AssertionError('Wrong owner digest accepted') + pin('expected.assembly_controls_rejected', len(rejected)) + assert baseline['controls'] == ['next_grid', 'zero_eta', 'zero_beta', 'unit_beta'] + assert baseline['conservative_controls'] == baseline['controls'] + assert baseline['surcharge_model'] == {'complex': False, 'bit': True} + assert len(baseline['model_controls']) == 2 + return dict( + status='PASS_EXACT_MIXED_048_ALLCOLD_NATIVE_ASSEMBLY_ADMISSION_NEGATIVE_CONTROLS', + valid_receipt_kappa=baseline['kappa'], + input_sha256=baseline['input_sha256'], + assembler_sha256=sha(Path(__file__).resolve().parent / 'assemble.py'), + rejected_controls=rejected, + discovery_accepted_controls=accepted, + exact_outer_controls=baseline['controls'], + conservative_outer_controls=baseline['conservative_controls'], + recurrence_model_controls=baseline['model_controls'], + scope='Complete receipt schema; ordered widths and both reflected providers; exact program, work and paid-profile binding; independently recounted compiler, conservative envelope and finite inequalities. Does not replace fresh physical replay.', + ) + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--source-package', type=Path, required=True) + ap.add_argument('--owner', type=Path, required=True) + ap.add_argument('--invoice', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + assert not a.out.exists() + result = verify(a.owner, a.invoice, a.source_package) + a.out.write_text(json.dumps(result, indent=2) + '\n') + print(result['status'], len(result['rejected_controls'])) diff --git a/research/complex-571-cold14-j1/code/audit_allcold.py b/research/complex-571-cold14-j1/code/audit_allcold.py new file mode 100644 index 0000000000..48c47a467f --- /dev/null +++ b/research/complex-571-cold14-j1/code/audit_allcold.py @@ -0,0 +1,232 @@ +"""OpenAI Codex independent serialized ASYNCHRONOUS controller/spectator audit. +Imports no emitter, optimizer, expander, edge-coloring, or source hosting code. +CLI: BASE HOSTED REPORT [--mutation-controls] +Each provider is independently read from BASE/providers, never from a baseline width histogram. +OpenAI Codex two-provider width-seven extension; retains all inherited independent controller checks. +The exact 63 width-seven and 9 plain calls are frozen below. +""" +import sys,json,gzip,hashlib,copy +assert __debug__, 'Assertions must remain enabled' +from pathlib import Path +from collections import Counter,defaultdict +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +BASE,OUT,REPORT=map(lambda p:Path(p).resolve(),sys.argv[1:4]);read=lambda p:json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +parent=read(BASE/'split-centres/GLOBAL-TEMPLATE.json.gz') +ph=read(BASE/'work/complex-nine-native/DATA-PHASES.json') +ct=read(OUT/'GLOBAL-TEMPLATE.json.gz');summary=read(OUT/'HOSTED.json') +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +provider_ids=PIDS +providers={};registry={};phase_semantic_hashes={};artifact_semantic_hashes={} +required_artifacts={'work/complex-nine-native/DATA-PHASES.json'} +provider_files=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json') +for pid in provider_ids: + p=BASE/'providers'/pid + c=read(p/'CANONICAL-WORD.json.gz');checks=read(p/'LOCAL-CHECKS.json') + programs=read(p/'LOCAL-PROGRAMS.json.gz');replay=read(p/'INDEPENDENT-LOCAL-REPLAY.json') + phase=read(p/'CLIFFORD-REVIEW.json');adapters=read(p/'RESIDUAL-ADAPTERS.json')['recipes'] + widths=[len(c['frames'][c['final'][2*c['v']+h]])-len(c['frames'][c['start'][2*c['v']+h]])for h in range(c['R'])] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in (270,282,294,306));pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + canonical_sha=sha(p/'CANONICAL-WORD.json.gz');programs_sha=sha(p/'LOCAL-PROGRAMS.json.gz') + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==canonical_sha and replay['local_programs_sha256']==programs_sha + assert replay['v']==c['v'] and replay['helpers']==c['R'] + assert set(programs)==set(checks)==set(replay['local'])==set(replay['paid_profiles'])=={'forward','backward'} + for orientation,events in programs.items(): + ck=checks[orientation];rr=replay['local'][orientation] + assert hashlib.sha256(json.dumps(events,sort_keys=True,separators=(',',':')).encode()).hexdigest()==ck['sha256'] + assert ck['events']==len(events) and ck['all_columns']==2*c['v']+c['R'] + assert ck['private_centers_cleared'] and ck['private_coefficient_stream_cleared_after_each_macro'] + assert rr['all_exact_columns']==2*c['v']+c['R'] and rr['private_work_erased'] + literal=Counter(e[-1]for e in events if e[0]in('climb','center')) + assert dict(literal)=={int(r):n for r,n in ck['paid_profile'].items()}=={int(r):n for r,n in c['local_profile'].items()} + assert ck['paid_profile']==replay['paid_profiles'][orientation] + assert phase['canonical_word_sha256']==canonical_sha and phase['recipe_sha256']==sha(p/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] + artifact_semantic_hashes[pid]=artifact_identities(p) + pin('providers.%s.artifact_semantic_sha256'%pid,artifact_semantic_hashes[pid]) + phase_semantic_hashes[pid]=artifact_semantic_hashes[pid]['CLIFFORD-REVIEW.json'] + for h,w in enumerate(widths): + assert 0>i)&1==0);a=q^(1<>i&1 else 0)for i in order]+[1<2*max(paid)**2 + return dict(profile=dict(sorted(paid.items())),mass=mass,hosted=HOSTED,entering=entering,cross_replica=cross,sigma_digest=digest.hexdigest(),sigmas=sigmas,idle_remainders=len(wanted),busy_family_checks=len(roles),invocations=72) + +r=audit(ct);raw=gzip.decompress((OUT/'GLOBAL-TEMPLATE.json.gz').read_bytes());assert hashlib.sha256(raw).hexdigest()==summary['template_sha256'];assert r['profile']=={int(k):v for k,v in summary['global_profile'].items()};assert r['sigmas']==read(OUT/'ACTUAL-SIGMAS.json.gz');assert r['sigma_digest']==summary['sigma_stream_sha256'] +assert all(hashlib.sha256((BASE/name).read_bytes()).hexdigest()==value for name,value in summary['source_artifacts'].items()) +controls=[] +def reject(name,mut): + if '--mutation-controls' not in sys.argv[4:]:return + q=copy.deepcopy(ct);mut(q) + try:audit(q) + except(AssertionError,KeyError,IndexError,ValueError,TypeError):controls.append(name) + else:raise AssertionError('ACCEPTED '+name) +enter=lambda q:next(o for c in q['calls']for o in c['owners'][(2*V):]if o[1][0]==4) +reject('alias two whole owners',lambda q:q['calls'][0]['owners'].__setitem__((2*V+1),q['calls'][0]['owners'][(2*V)])) +reject('helper on active data family',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,q['calls'][0]['owners'][0][0])) +reject('owner in private namespace',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,DATA)) +reject('wrong residual width',lambda q:enter(q)[1].__setitem__(3,enter(q)[1][3]-1)) +reject('wrong spectator coordinate',lambda q:enter(q)[1][4].__setitem__(0,72)) +reject('omit idle remainder',lambda q:q['idle_children'].pop()) +reject('understate physical reserve',lambda q:q.__setitem__('physical',PHYSICAL-1)) +# Per-provider substitution controls: every provider is swapped against a partner provider. +for P in provider_ids: + Qp=partner(P) + at_p=lambda q,P=P:next(c for c in q['calls']if c['provider_id']==P) + diff=[h for h in range(R)if providers[P]['widths'][h]!=providers[Qp]['widths'][h]] + narrow=next(h for h in range(R)if providers[P]['widths'][h]<9) + reject(P+': wrong provider at its invocation',lambda q,P=P,Qp=Qp,at_p=at_p:at_p(q).__setitem__('provider_id',Qp)) + reject(P+': stale per-call local program hash',lambda q,Qp=Qp,at_p=at_p:at_p(q).__setitem__('local_program_sha256',registry[Qp]['local_program_checks'][at_p(q)['orientation']]['sha256'])) + reject(P+': stale serialized provider program',lambda q,P=P,Qp=Qp:q['local_providers'][P].__setitem__('local_programs',registry[Qp]['local_programs'])) + reject(P+': unbound residual adapter hash',lambda q,P=P:q['local_providers'][P].__setitem__('residual_adapter_sha256','0'*64)) + if diff:reject(P+': partner width in provider width registry',lambda q,P=P,Qp=Qp,h=diff[0]:q['local_providers'][P]['widths'].__setitem__(h,providers[Qp]['widths'][h])) + reject(P+': wrong per-call residual width',lambda q,at_p=at_p,h=narrow:at_p(q)['owners'][2*V+h][1].__setitem__(3,at_p(q)['owners'][2*V+h][1][3]-1)) + reject(P+': wrong sweep provider',lambda q,P=P,Qp=Qp:next(e for e in q['execution_schedule']if e['kind']=='local_cover_sweep'and DISPATCH[e['stage'],e['replica']]==P).__setitem__('provider_id',Qp)) + reject(P+': entering helper width silently restored to nine',lambda q,P=P,h=narrow:q['local_providers'][P]['widths'].__setitem__(h,9)) +report=dict(status='PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS',template_sha256=summary['template_sha256'],complex_template_sha256=summary['template_sha256'],complex_live=DATA,complex_profile=r['profile'],complex_hosted_residuals=HOSTED,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,entering_helper_roles=r['entering'],cross_replica_helper_roles=r['cross_replica'],one_owner_per_complete_invocation=True,helper_busy_family_window_checks=r['busy_family_checks'],complete_invocations=r['invocations'],actual_orthogonal_73column_maps=len(r['sigmas']),actual_sigma_stream_sha256=r['sigma_digest'],all_actual_residual_and_spectator_charts=True,idle_remainders=r['idle_remainders'],mutations_rejected=controls,mutation_controls_run='--mutation-controls' in sys.argv[4:],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,widths_by_provider={pid:dict(sorted(Counter(providers[pid]['widths']).items()))for pid in provider_ids},provider_counts=dict(Counter(c['provider_id']for c in ct['calls'])),all_provider_program_phase_and_wrapper_bindings=True,scope='Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses per-invocation local providers bound by exact scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations.') +REPORT.parent.mkdir(parents=True,exist_ok=True) +REPORT.write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report,indent=2)) + +owners=dict(status='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE',template_sha256=summary['template_sha256'],paid_profile=r['profile'],live=DATA,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,hosted_residuals=HOSTED,banked_residuals=0,all_live_owners_per_call_distinct=True,owners_per_call=N,actual_helper_owner_charts=HOSTED,actual_73column_sigmas=len(r['sigmas']),cross_replica_helper_roles=r['cross_replica'],explicit_idle_remainder_children=r['idle_remainders'],source_idle_children_charged=sum(x['replicas']for x in parent['idle_children']),source_artifacts=summary['source_artifacts'],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,controller_audit_sha256=hashlib.sha256(REPORT.read_bytes()).hexdigest()) +(REPORT.parent/'OWNERS-AND-PROFILE.json').write_text(json.dumps(owners,indent=2)+'\n') + +# Literal residual frames are a compact export of the already checked offsets, +# not another global replay. Every row names its actual inherited axes. +frames=[] +for z in ct['idle_children']: + axes=list(map(int,ph['recipes'][z['port']]['idle_children'][z['child']]['orthogonal_axes'])) + tail=axes[z['pending_offset']:] + assert len(tail)==z['rank'] + frames.append(dict(z,orthogonal_axes=tail)) +frame_raw=json.dumps(frames,sort_keys=True,separators=(',',':')).encode() +portable=bytearray(gzip.compress(frame_raw,mtime=0));portable[9]=255 +(OUT/'IDLE-REMAINDER-FRAMES.json.gz').write_bytes(bytes(portable)) +frame_receipt=dict(status='PASS_LITERAL_IDLE_REMAINDER_FRAMES',template_sha256=summary['template_sha256'], + uncompressed_frames_sha256=hashlib.sha256(frame_raw).hexdigest(),children=len(frames), + rank_profile=dict(sorted(Counter(z['rank']for z in frames).items())), + source_data_phase_sha256=hashlib.sha256((BASE/'work/complex-nine-native/DATA-PHASES.json').read_bytes()).hexdigest(), + scope='Actual orthogonal axes after the independently checked whole-owner prefix in each inherited pending child.') +(REPORT.parent/'IDLE-REMAINDER-FRAMES.json').write_text(json.dumps(frame_receipt,indent=2)+'\n') + diff --git a/research/complex-571-cold14-j1/code/bind_providers_portable.py b/research/complex-571-cold14-j1/code/bind_providers_portable.py new file mode 100644 index 0000000000..d859aeba0a --- /dev/null +++ b/research/complex-571-cold14-j1/code/bind_providers_portable.py @@ -0,0 +1,66 @@ +"""Bind freshly verified plain and width-seven four-cold providers to the frozen literal owner plan. +Prepared with OpenAI Codex assistance; Apache-2.0. All byte-stable native +files are pinned to the plan. Only validated phase-receipt timing/serialization +and directory fields are rebound; no dispatch, width or owner choice changes. +""" +import argparse,copy,gzip,hashlib,json,shutil +from collections import Counter +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +assert __debug__, 'Assertions required' +ap=argparse.ArgumentParser(description=__doc__) +for name in ('baseline','plan','out'):ap.add_argument('--'+name,type=Path,required=True) +ap.add_argument('--provider',action='append',required=True,help='PID=DIR');a=ap.parse_args();assert not a.out.exists();a.out.mkdir(parents=True) +def read(p):return json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +base=a.out/'base';shutil.copytree(a.baseline/'complex-global/base',base) +ap2=dict(x.split('=',1)for x in a.provider);dirs={k:Path(v)for k,v in ap2.items()};assert set(dirs)==set(PIDS) +for pid,src in dirs.items():shutil.copytree(src,base/'providers'/pid) +pin('data.plan_sha256',sha(a.plan)) +plan=read(a.plan);original=copy.deepcopy(plan);sources={} +assert set(plan['provider_registry'])==set(dirs) +assert {(c['stage'],c['replica']):c['provider']for c in plan['provider_calls']}==DISPATCH,'PLAN dispatch differs from spec dispatch' +stable=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json') +for pid,desc in plan['provider_registry'].items(): + d=base/'providers'/pid + word,program,checks,native,phase=[read(d/name)for name in('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json')] + assert (word['v'],word['h'],word['R'],len(word['centers']))==(112,9,504,8) + assert word['ports']==desc['ports'] and word['centers']==desc['centers'] + widths=[len(word['frames'][word['final'][r]])-len(word['frames'][word['start'][r]])for r in range(224,728)] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in (270,282,294,306)) + assert widths==desc['widths'];pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + assert native['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + pin('providers.%s.native_negative_controls'%pid,len(native['negative_controls_rejected'])) + assert native['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and native['local_programs_sha256']==sha(d/'LOCAL-PROGRAMS.json.gz') + assert phase['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' + assert phase['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and phase['recipe_sha256']==sha(d/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] is True and phase['endpoint_adapters']==224 + pin('providers.%s.phase_edges'%pid,phase['directed_edges']) + assert set(program)==set(checks)=={'forward','backward'} + expected={int(r):n for r,n in checks['forward']['paid_profile'].items()};pin('providers.%s.expected_profile'%pid,checks['forward']['paid_profile']) + for orientation,events in program.items(): + profile=Counter() + for e in events: + if e[0]=='climb':profile[e[5]]+=1 + elif e[0]=='center':profile[e[4]]+=1 + assert dict(profile)==expected=={int(r):n for r,n in checks[orientation]['paid_profile'].items()}=={int(r):n for r,n in native['paid_profiles'][orientation].items()} + assert hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest()==checks[orientation]['sha256'] + identities=artifact_identities(d) + pin('providers.%s.artifact_semantic_sha256'%pid,identities) + assert identities==desc['artifact_semantic_sha256'] + for name in ('LOCAL-CHECKS.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json'): + assert sha(d/name)==desc['artifact_sha256'][name],(pid,name,'changed non-reference artifact') + for c in plan['provider_calls']: + if c['provider']==pid: + assert c['orientation']==('forward'if c['stage']%2==0 else'backward') + assert c['local_program_sha256']==checks[c['orientation']]['sha256'] + desc['directory']='providers/'+pid + desc['artifact_sha256']={name:sha(d/name)for name in desc['artifact_sha256']} + sources[pid]=dict(artifact_sha256=desc['artifact_sha256'],canonical_content_sha256=hashlib.sha256(json.dumps(word,sort_keys=True,separators=(',',':')).encode()).hexdigest(),all_phase_edges=phase['directed_edges']) +plan['runtime_source_plan_sha256']=sha(a.plan) +(a.out/'PLAN.json').write_text(json.dumps(plan,indent=2)+'\n') +receipt=dict(status='PASS_FROZEN_048_ALLCOLD_DISPATCH_FRESH_PROVIDER_BINDING',source_plan_sha256=sha(a.plan),runtime_plan_sha256=sha(a.out/'PLAN.json'),providers=sources,only_rebound_fields=['provider_registry.directory','provider_registry.artifact_sha256','runtime_source_plan_sha256']) +(a.out/'BINDING.json').write_text(json.dumps(receipt,indent=2)+'\n') +print(receipt['status']) diff --git a/research/complex-571-cold14-j1/code/build_cold_end.py b/research/complex-571-cold14-j1/code/build_cold_end.py new file mode 100644 index 0000000000..ad0464a954 --- /dev/null +++ b/research/complex-571-cold14-j1/code/build_cold_end.py @@ -0,0 +1,125 @@ +"""Cold low-frame-ended helpers with a refactored exact cleanup: constructor. Apache-2.0. +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. + +usage: build_cold_end.py --input FULL-WORD.json.gz --recipe RECIPE.json.gz --out DIR + +The input is a hyperplane-ended (HPE) provider word. RECIPE (all data, no code): + premix rank-0 gates on helpers at their start frame (frame [] for cold helpers, E for entering ones); they become the + head of section A, i.e. they run after the entry + adapters and paid wrappers, so every gate on a cold-ended helper follows its wrapper R_{0,U}^-1; + cleanup the complete new cleanup gate list (an exact refactorisation of the inverse, not the literal one); + early_cleanup [[cleanup index, frame], ...]: gates run right after B at the given frame (the multi-gate tail); + cold_ends {helper: frame}: cold helpers (no entrance) that end at that frame instead of FULL; + entering_ends optional {helper: frame}: further entering helpers ending below FULL under the same refactored cleanup; + refactored_cleanup descriptive metadata copied into the word (it also switches the transport audit from the literal + cleanup assertion to exact replay of the refactored one); + output_content_sha256. +The constructor only splices. It checks the recipe's shape (premix on cold helpers at frame [], cold ends on cold +helpers, every inherited hyperplane-end gate and terminal frame kept) and recomputes the paid local profile and the +descriptive width inventory from the actual frame chains. Exactness of the scalar program, all frame chains, the cone +pre-check, the wrapper order and the profile are re-checked independently by hpe_audit_and_transport.py; the paired +raw-word mutation audit is cold_end_controls.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return tuple(p[k] for k in sorted(p, reverse=True)) + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def chain_profile(w): + """Paid climbs of the A, B, tail and final chains (centre descents are unchanged by this step and not counted).""" + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [() for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = span([p]) + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = span(f) + prof = Counter() + + def climb(r, F): + assert span(list(cur[r]) + list(F)) == F, ('nonmonotone', r) + if len(F) > len(cur[r]): prof[len(F) - len(cur[r])] += 1 + cur[r] = F + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): climb(r, span(e[-1])) + for i, f in w.get('early_cleanup', []): + for r in regs(w['cleanup'][i]): climb(r, span(f)) + full = span([1 << i for i in range(9)]) + final = {int(r): span(f) for r, f in w.get('helper_final', {}).items()} + for r in range(n): + if v <= r < 2*v: continue # targets end at their port level; unchanged by this step (same A/B chains) + climb(r, final.get(r, full)) + return prof, cur + + +def apply(w, r): + assert 'helper_final' in w and 'early_cleanup' in w and 'refactored_cleanup' not in w, 'input must be an HPE word' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + entering = set(map(int, w['start_extra'])) + cold = {x for x in range(2*v, n) if x not in entering} + start = lambda x: span(w['start_extra'].get(str(x), [])) + for e in r['premix']: # rank 0: every register is a helper still at its start frame (cold: [], entering: E) = the gate frame + assert e[0] in ('add', 'scale') and all(2*v <= x < n and start(x) == span(e[-1]) for x in regs(e)), ('premix gate not rank-0 on helpers at their start frame', e) + ends = {int(h): f for h, f in r['cold_ends'].items()} + assert ends and all(h in cold and str(h) not in w['helper_final'] for h in ends), 'cold ends must be new cold helpers' + eends = {int(h): f for h, f in r.get('entering_ends', {}).items()} # optional: further ENTERING helpers ending below FULL + assert all(h in entering and str(h) not in w['helper_final'] for h in eends), 'entering ends must be new entering helpers' + assert all(len(span(f)) < 9 for f in list(ends.values()) + list(eends.values())) + new_early = [(i, f) for i, f in r['early_cleanup']] + kept = {(json.dumps(r['cleanup'][i][:-1]), json.dumps(f)) for i, f in new_early} + for i, f in w['early_cleanup']: # every inherited hyperplane-end gate stays in the tail at its frame + assert (json.dumps(w['cleanup'][i][:-1]), json.dumps(f)) in kept, ('inherited HPE gate missing', i) + old_prof, _ = chain_profile(w) + out = dict(w) + out['A'] = [list(e) for e in r['premix']] + w['A'] + out['cleanup'] = r['cleanup'] + out['early_cleanup'] = [[i, f] for i, f in new_early] + out['helper_final'] = dict(w['helper_final'], **{str(h): f for h, f in sorted({**ends, **eends}.items())}) + out['refactored_cleanup'] = r['refactored_cleanup'] + new_prof, cur = chain_profile(out) + assert all(cur[h] == span(f) for h, f in {**ends, **eends}.items()), 'end frame is not the last frame of the helper' + lp = Counter({int(k): c for k, c in w['report']['local_profile'].items()}) + lp.subtract(old_prof); lp.update(new_prof) + assert min(lp.values()) >= 0 + rep = dict(w['report']) + rep['local_profile'] = {str(k): c for k, c in sorted(lp.items()) if c} + rep['local_rank_mass'] = sum(k*c for k, c in lp.items()) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for h, f in ends.items(): inv[9] -= 1; inv[len(span(f))] += 1 # cold: width = |U| - 0 + for h, f in eends.items(): # entering: width = |U| - |E| + e = len(span(w['start_extra'][str(h)])); inv[9 - e] -= 1; inv[len(span(f)) - e] += 1 + assert min(inv.values()) >= 0 + rep['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + out['report'] = rep + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + rd = lambda p: json.loads(gzip.decompress(p.read_bytes()) if p.suffix == '.gz' else p.read_bytes()) + w, r = rd(a.input), rd(a.recipe) + w = apply(w, r) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'COLD-END-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_COLD_LOW_FRAME_ENDS_SPLICED', + cold_ended_helpers=sorted(int(x) for x in r['cold_ends']), terminal_dims=sorted(Counter(len(span(f)) for f in r['cold_ends'].values()).items()), + premix_gates=len(r['premix']), early_cleanup_gates=len(r['early_cleanup']), cleanup_gates=len(r['cleanup']), + local_profile=w['report']['local_profile'], width_inventory=w['report']['width_inventory']), indent=1) + '\n', newline='\n') + print('PASS', len(r['cold_ends']), 'cold low-frame-ended helpers;', len(r['premix']), 'premix gates;', len(r['cleanup']), 'cleanup gates') diff --git a/research/complex-571-cold14-j1/code/build_gate_moves.py b/research/complex-571-cold14-j1/code/build_gate_moves.py new file mode 100644 index 0000000000..03114099c6 --- /dev/null +++ b/research/complex-571-cold14-j1/code/build_gate_moves.py @@ -0,0 +1,61 @@ +"""Move commuting gates, then apply source-bound frame coalescences; the scalar map stays identical. +Extends PR583's build_frames.py (chafreaky, OpenAI Codex assisted, Apache-2.0) with commuting gate moves found by +Claude Code research agents. Apache-2.0. + +Recipe: input_content_sha256, before/after profiles, moves [{section, from, to}] (applied in order; every gate the +moved gate passes must commute with it), and changes [{section, index, before, after}] (indices after the moves; +each change only raises the gate frame and must save exactly {1:-2, 2:+1}). The cleanup section is rebuilt with the +inherited rule (the input word must already satisfy it), and the helper responses must be unchanged. +""" +from pathlib import Path +import argparse,copy,gzip,hashlib,json,sys +from collections import Counter +assert __debug__,'Assertions required' +ap=argparse.ArgumentParser();ap.add_argument('--input',type=Path,required=True);ap.add_argument('--recipe',type=Path,required=True);ap.add_argument('--gk-dir',type=Path,required=True);ap.add_argument('--out',type=Path,required=True);a=ap.parse_args();assert not a.out.exists() +sys.path.insert(0,str(a.gk_dir));import gk_word as G,gk_common as C +G.V=C.V=112;G.DATA=C.DATA=7168 +raw=json.loads(gzip.decompress(a.input.read_bytes()));recipe=json.loads(a.recipe.read_text());enc=lambda x:json.dumps(x,sort_keys=True,separators=(',',':')).encode();sha=lambda x:hashlib.sha256(x).hexdigest() +assert sha(enc(raw))==recipe['input_content_sha256'];before=G.profile(raw);assert dict(before)=={int(r):n for r,n in recipe['before'].items()} +def regs(e):return(e[1],e[2])if e[0]=='add'else(e[1],) +def commute(x,y): + """Two additions commute unless one writes the other's source; any other pair must touch disjoint registers.""" + if x[0]=='add'and y[0]=='add':return x[1]!=y[2]and y[1]!=x[2] + return not set(regs(x))&set(regs(y)) +cleanup=lambda w:[G.inverse(e,G.FULL)for e in reversed(w['A']+w['B'])if not 112<=e[1]<224] +assert raw['cleanup']==cleanup(raw),'input cleanup is not the inherited inverse rule' +w=copy.deepcopy(raw);moved=[] +for m in recipe['moves']: + L=w[m['section']];i,j=m['from'],m['to'];assert i!=j and 0<=ii else range(j,i);assert all(commute(L[i],L[k])for k in passed),'noncommuting move %s'%m + L.insert(j,L.pop(i));moved.append(dict(m,passed=len(passed))) +w['cleanup']=cleanup(w);responses=G.responses(w);assert responses==G.responses(raw),'scalar responses changed by the moves' +assert G.profile(w)==before,'moves alone changed the profile';trace=[] +for change in recipe['changes']: + part,i=change['section'],change['index'];assert w[part][i]==change['before'];assert change['before'][:-1]==change['after'][:-1] + w[part][i]=change['after'];after=G.profile(w);delta={r:after[r]-before[r]for r in set(after)|set(before)if after[r]!=before[r]};assert delta=={1:-2,2:1};trace.append(dict(section=part,index=i,delta=delta));before=after +w['cleanup']=cleanup(w) +assert dict(G.profile(w))=={int(r):n for r,n in recipe['after'].items()} +for key in raw: + if key not in ('A','B','cleanup','report'):assert w[key]==raw[key] +for part in ('A','B'):assert sorted(map(enc,(e[:-1]for e in w[part])))==sorted(map(enc,(e[:-1]for e in raw[part]))) +assert G.widths_of(w)==G.widths_of(raw);responses=G.responses(w);assert responses==G.responses(raw) +assert all(not responses[int(r)-224]for r in w['start_extra']) +# Fresh negative controls: every omitted coalescence loses the new profile, every full-space frame replacement violates +# a chain/cut bound, and every move reverted before its coalescence is rejected. +rejected=[] +for c in recipe['changes']: + z=copy.deepcopy(w);z[c['section']][c['index']]=c['before'];assert G.profile(z)!=G.profile(w);rejected.append('omission-%s-%d'%(c['section'],c['index'])) + z=copy.deepcopy(w);z[c['section']][c['index']][-1]=list(G.FULL) + try:G.profile(z) + except AssertionError:rejected.append('overpromotion-%s-%d'%(c['section'],c['index'])) + else:raise AssertionError('Invalid frame accepted') +for m in reversed(recipe['moves']): + z=copy.deepcopy(w);L=z[m['section']];L.insert(m['from'],L.pop(m['to'])) + try:ok=G.profile(z)==G.profile(w) + except AssertionError:ok=False + assert not ok,'unmoved coalescence accepted';rejected.append('unmoved-%s-%d'%(m['section'],m['from'])) +w['report'].update(local_profile=dict(G.profile(w)),local_rank_mass=sum(r*n for r,n in G.profile(w).items()),status='GATE_MOVE_FRAME_COALESCENCES_PENDING_NATIVE_PHASE_ADMISSION', + # descriptive inventory fields recomputed from the actual widths (as PR586's adapted PR583 constructor does) + width_inventory={str(k):v for k,v in sorted(Counter(G.widths_of(w)).items())},entering_helpers=sum(v<9 for v in G.widths_of(w)),entrance_rank=sum(9-v for v in G.widths_of(w))) +a.out.mkdir(parents=True);(a.out/'FULL-WORD.json.gz').write_bytes(G.dump(w));receipt=dict(status='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES',input_content_sha256=sha(enc(raw)),output_content_sha256=sha(enc(w)),profile_before=recipe['before'],profile_after=recipe['after'],moves=moved,changes=trace,negative_controls_rejected=rejected,all_scalar_responses_unchanged=True,all_entering_helper_responses_zero=True,helper_widths_unchanged=True,cleanup_rebuilt_by_inherited_rule=True,scope='Construction, commutation, frame/profile and scalar response checks only; native, phase and global admission are separate.') +(a.out/'FRAME-CONSTRUCTION.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n');print(json.dumps(receipt,indent=2)) diff --git a/research/complex-571-cold14-j1/code/build_hpe.py b/research/complex-571-cold14-j1/code/build_hpe.py new file mode 100644 index 0000000000..830906acf2 --- /dev/null +++ b/research/complex-571-cold14-j1/code/build_hpe.py @@ -0,0 +1,123 @@ +"""Hyperplane-ended helpers (HPE) constructor. Apache-2.0. Prepared with Claude Code assistance. + +usage: build_hpe.py --input FULL-WORD.json.gz --recipe RECIPE.json --out DIR + +RECIPE: {"changes": [{"helper": h, "cleanup_index": i, "frame": [raw vectors]}, ...], "output_content_sha256": hex}. +Each change must be an admissible early-cleanup move: + * h is an entering helper (start_extra) touched by exactly one cleanup gate, cleanup[i]; + * cleanup[i] commutes with every earlier cleanup gate on its registers (commute(): neither writes a register the + other touches, or both add into one target without reading each other's target), so it commutes with the whole + skipped cleanup prefix; in practice the skipped gates only read the partner (x -= p); + * frame == join of the registers' last A/B frames and has dimension < 9. +The output word gets early_cleanup [[i, U]], helper_final {h: U} and the exact paid profile (only the two registers' +final chains change: h ends at U instead of FULL; the partner climbs through U). Exactness of the reordered program, +the frame chains and the profile are re-checked independently by hpe_audit_and_transport.py; the paired control audit +is controls_hpe_atc.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return [p[k] for k in sorted(p, reverse=True)] + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def commute(a, b): + """Sufficient syntactic commutation of two scalar gates (t += q*s, t *= q): neither writes a register the other + touches, or both are additions into the same target with neither reading the other's target.""" + ra, rb = set(regs(a)), set(regs(b)) + if a[1] not in rb and b[1] not in ra: return True + return a[0] == 'add' and b[0] == 'add' and a[1] == b[1] and a[2] != b[1] and b[2] != a[1] + + +def last_frames(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [[] for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = [p] + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = list(f) + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): cur[r] = list(e[-1]) + return cur + + +def apply(w, changes): + assert 'early_cleanup' not in w and 'helper_final' not in w, 'input already has hyperplane-ended helpers' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + lp = Counter({int(r): c for r, c in w['report']['local_profile'].items()}) + seen = set() + for z in changes: + h, i, U = z['helper'], z['cleanup_index'], z['frame'] + assert 2*v <= h < n and str(h) in w['start_extra'], ('not an entering helper', h) + assert count[h] == 1 and first[h] == i, ('helper must have exactly this one cleanup gate', h) + e = w['cleanup'][i]; rs = regs(e) + assert all(commute(w['cleanup'][j], e) for r in rs for j in on[r] if j < i), ('cleanup gate does not commute with the skipped cleanup gates on its registers', i) + assert not seen & set(rs), 'registers shared between changes'; seen |= set(rs) + assert span([x for r in rs for x in cur[r]]) == U and len(U) < 9, ('frame is not the join of the last frames', h) + for r in rs: # old: last -> FULL; new: last -> U (-> FULL for the partner) + d0 = 9 - len(span(cur[r])) + if d0: lp[d0] -= 1 + d1 = len(U) - len(span(cur[r])) + if d1: lp[d1] += 1 + if r != h and len(U) < 9: lp[9 - len(U)] += 1 + w['early_cleanup'] = [[z['cleanup_index'], z['frame']] for z in changes] + w['helper_final'] = {str(z['helper']): z['frame'] for z in changes} + w['report']['local_profile'] = {str(r): c for r, c in sorted(lp.items()) if c} + w['report']['local_rank_mass'] = sum(r*c for r, c in lp.items()) + if 'width_inventory' in w['report']: # descriptive metadata: one width-w helper becomes width w-(9-dim U) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for z in changes: + e = len(w['start_extra'][str(z['helper'])]); inv[9 - e] -= 1; inv[len(z['frame']) - e] += 1 + assert min(inv.values()) >= 0 + w['report']['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + assert min(lp.values()) >= 0 + return w + + +def candidates(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + out = [] + for h in range(2*v, n): + if count[h] != 1 or str(h) not in w.get('start_extra', {}): continue + i = first[h]; rs = regs(w['cleanup'][i]) + if not all(commute(w['cleanup'][j], w['cleanup'][i]) for r in rs for j in on[r] if j < i): continue + U = span([x for r in rs for x in cur[r]]) + if len(U) < 9: out.append(dict(helper=h, cleanup_index=i, frame=U)) + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path) + ap.add_argument('--out', type=Path); ap.add_argument('--nominate', type=Path, help='write a recipe with every candidate') + a = ap.parse_args() + w = json.loads(gzip.decompress(a.input.read_bytes())) + if a.nominate: + a.nominate.write_text(json.dumps(dict(changes=candidates(w), output_content_sha256=''), indent=1) + '\n', newline='\n') + raise SystemExit(0) + r = json.loads(a.recipe.read_bytes()) + w = apply(w, r['changes']) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'HPE-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_HYPERPLANE_ENDED_HELPERS', helpers=[z['helper'] for z in r['changes']], + local_profile=w['report']['local_profile']), indent=1) + '\n', newline='\n') + print('PASS', len(r['changes']), 'hyperplane-ended helpers') diff --git a/research/complex-571-cold14-j1/code/cold_end_controls.py b/research/complex-571-cold14-j1/code/cold_end_controls.py new file mode 100644 index 0000000000..07d023938c --- /dev/null +++ b/research/complex-571-cold14-j1/code/cold_end_controls.py @@ -0,0 +1,86 @@ +"""cold_end_controls.py COLD-END-WORD.json.gz ROUTING OUTDIR : raw-word negative controls for the cold low-frame ends and the +refactored cleanup accepted by hpe_audit_and_transport.py. Every mutation MUST be rejected (AssertionError); the +unmutated word MUST pass. Apache-2.0. DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code.""" +import copy, gzip, json, shutil, sys, tempfile +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import hpe_audit_and_transport as atc + +src, routing, outdir = Path(sys.argv[1]), Path(sys.argv[2]), Path(sys.argv[3]) +word = json.load(gzip.open(src)) +v, R = word['report']['v'], word['report']['R']; n = 2*v + R +regs = lambda e: [e[1]] + ([e[2]] if e[0] == 'add' else []) +meta = word['refactored_cleanup'] +cold = [int(h) for h in meta['cold_low_frame_ended_helpers']] +npre = meta['premix_gates']; nlow = meta['lower_frame_gates'] +early = word['early_cleanup']; eidx = {i for i, _ in early} +rest = [i for i in range(len(word['cleanup'])) if i not in eidx] + + +def trial(w): + tmp = Path(tempfile.mkdtemp()) + p = tmp/'w.json.gz'; p.write_bytes(gzip.compress(json.dumps(w).encode(), mtime=0)) + try: + atc.run(p, routing, tmp/'out') + return True + except AssertionError: + return False + finally: + shutil.rmtree(tmp, ignore_errors=True) + + +assert trial(word), 'unmutated cold-end word must pass' +results = [] + + +def reject(name, mut): + w = copy.deepcopy(word); mut(w) + assert not trial(w), 'cold-end mutation accepted: ' + name + results.append(name); print('rejected', name, flush=True) + + +h0 = cold[0] +i0, U0 = next((i, f) for i, f in early if h0 in regs(word['cleanup'][i])) +r0 = rest[len(rest)//2] + + +def premix_to_precondition(w): # premix before the wrappers; compensation then reads the cold ends + w['precondition'] = w['precondition'] + w['A'][:npre]; w['A'] = w['A'][npre:] + + +def lower_gate_into_full(w): # a lower-frame gate on a cold-ended helper executed in the FULL remainder instead + w['early_cleanup'] = [x for x in w['early_cleanup'] if x[0] != i0] + + +def drop_cleanup_gate(w, i): + w['cleanup'].pop(i) + w['early_cleanup'] = [[j - (j > i), f] for j, f in w['early_cleanup']] + + +def other_frame(w): # a different frame of the same dimension as the cold end (another cold helper's) + f = next(w['helper_final'][str(h)] for h in cold if w['helper_final'][str(h)] != w['helper_final'][str(h0)]) + w['helper_final'][str(h0)] = f + + +def extra_cold_end(w): # declare a premixed partner of h0 cold-ended at h0's frame: fails the row/column cone + p = next(r for e in w['A'][:npre] for r in regs(e) if r != h0 and h0 in regs(e)) + w['helper_final'][str(p)] = w['helper_final'][str(h0)] + + +reject('premix placed in the zero-frame precondition (before the cold wrappers)', premix_to_precondition) +reject('one premix gate dropped', lambda w: w['A'].pop(npre - 1)) +reject('one lower-frame cleanup gate dropped', lambda w: drop_cleanup_gate(w, i0)) +reject('one FULL-remainder gate dropped', lambda w: drop_cleanup_gate(w, r0)) +reject('lower-frame gate coefficient changed', lambda w: w['cleanup'][i0].__setitem__(3, w['cleanup'][i0][3] * 2)) +reject('lower-frame gate moved into the FULL remainder (touches a cold-ended helper at FULL)', lower_gate_into_full) +reject('lower-frame gate frame below its registers\' frames', lambda w: next(x for x in w['early_cleanup'] if x[0] == i0).__setitem__(1, U0[:-1])) +reject('cold end at another dim-4 frame', other_frame) +reject('cold end dropped (helper climbs to FULL but nothing cleans it there)', lambda w: w['helper_final'].pop(str(h0))) +reject('extra cold end on a premixed partner (row/column cone)', extra_cold_end) +reject('refactored-cleanup marker removed (literal-inverse rule applies)', lambda w: w.pop('refactored_cleanup')) +reject('remainder gate retargeted to a target register', lambda w: w['cleanup'][r0].__setitem__(1, v + 3)) +reject('non-dyadic remainder coefficient', lambda w: w['cleanup'][r0].__setitem__(4 if w['cleanup'][r0][0] == 'add' else 3, 3 * w['cleanup'][r0][4 if w['cleanup'][r0][0] == 'add' else 3])) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('5', w['report']['local_profile']['5'] - 1)) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'COLD-END-CONTROLS.json').write_text(json.dumps(dict(status='PASS_COLD_END_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'cold-end raw-word mutations rejected') diff --git a/research/complex-571-cold14-j1/code/emit_allcold.py b/research/complex-571-cold14-j1/code/emit_allcold.py new file mode 100644 index 0000000000..574de85b52 --- /dev/null +++ b/research/complex-571-cold14-j1/code/emit_allcold.py @@ -0,0 +1,144 @@ +"""Two-provider width-seven whole-owner derivative, adapted with OpenAI Codex assistance. +Based on PR514 and its credited PR484/507 lineage. +CLI: --base VERIFIED_VARIANT --owners ASYNC-OWNERS.json.gz --plan ASYNC-PLAN.json --out OUT +No optimizer or unpublished word builder runs. The frozen map explicitly names +one whole helper per family per complete invocation, plus borrowed spectators. +""" +import sys,json,gzip,hashlib,copy,argparse +from pathlib import Path +from collections import Counter,defaultdict +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +parser=argparse.ArgumentParser(description=__doc__) +parser.add_argument('--base',type=Path,required=True);parser.add_argument('--owners',type=Path,required=True);parser.add_argument('--plan',type=Path,required=True);parser.add_argument('--out',type=Path,required=True) +a=parser.parse_args();BASE,MAP,PLAN,OUT=(p.resolve()for p in(a.base,a.owners,a.plan,a.out));assert not OUT.exists();OUT.mkdir(parents=True) +class OH: + @staticmethod + def idle_basis(q): + z=next(i for i in range(9)if not(q>>i)&1);u=q^(1<>i&1 else 0)for i in order]+[1<=0 and off+w<=rank[i] + assert z['time']==at[s,rep] and z['time'] in plan['windows'][f'{orp},{i}'][1] + B=OH.idle_basis(canon['ports'][port]);pending=list(map(int,ph['recipes'][port]['idle_children'][i]['orthogonal_axes']));assert len(pending)==rank[i] + occ=[B.index(v)for v in pending[off:off+w]];sp=OH.spectators(canon['ports'][port],pending,off,w)if w<9 else[] + order=occ+sp+[j for j in range(M)if j not in occ and j not in sp];assert len(order)==len(set(order))==M + sigma=[B[j]for j in order];sigmahash=hashlib.sha256(json.dumps(sigma,separators=(',',':')).encode()).hexdigest();sigmas[sigmahash]=sigma + route=[4,i,off,w,sp]if w<9 else[3,i,off];bycall[s,rep][h]=[f,route];entering+=w<9 + cells=set(range(off,off+w));assert not used[i,orp,port]&cells;used[i,orp,port]|=cells + digest.update(json.dumps([s,rep,h,f,sigmahash],separators=(',',':')).encode()+b'\n') +for c in t['calls']: + k=(c['stage'],c['replica']);assert set(bycall[k])==set(range(R)) + c['owners']=c['owners'][:(2*V)]+[bycall[k][h]for h in range(R)];assert len({f for f,r in c['owners']})==2*V+R and all(f2*max(paid)**2 + +assert all(c['local_program_sha256']==registry[c['provider_id']]['local_program_checks'][c['orientation']]['sha256']for c in t['calls']) +t['provider_dispatch']='For each indivisible local_cover_sweep, execute local_providers[call.provider_id].local_programs[call.orientation] with that provider residual adapters and Clifford recipes. The sweep provider_id must equal its call provider_id.' +raw=json.dumps(t,sort_keys=True,separators=(',',':')).encode();(OUT/'GLOBAL-TEMPLATE.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +res=dict(status='EMITTED_MIXED_PROVIDER_ASYNCHRONOUS_WHOLE_OWNER_COMPLEX_TEMPLATE', + template_sha256=hashlib.sha256(raw).hexdigest(), + parent_template_sha256=hashlib.sha256(gzip.decompress((BASE/'split-centres/GLOBAL-TEMPLATE.json.gz').read_bytes())).hexdigest(), + live=DATA,physical=physical,global_profile=dict(sorted(paid.items())), + rank_mass=sum(r*n for r,n in paid.items()),deficit=2560,maxchild=max(paid), + hosted_residuals=len(roles),banks_per_stage=[0]*9,entering_helper_roles=entering, + unique_actual_73column_sigmas=len(sigmas),sigma_stream_sha256=digest.hexdigest(), + cross_replica_helper_roles=sum(z['replica']!=z['owner_replica']for z in roles), + asynchronous_order_sha256=hashlib.sha256(json.dumps(call_order,separators=(',',':')).encode()).hexdigest(), + source_artifacts=source_artifacts,provider_counts=dict(Counter(c['provider_id']for c in t['calls'])), + scope='Two actual verified plain/width-seven providers dispatched per complete invocation; independent controller/spectator/normalization and complete finite invoice admission required.') +(OUT/'HOSTED.json').write_text(json.dumps(res,indent=2)+'\n');(OUT/'ACTUAL-SIGMAS.json.gz').write_bytes(gzip.compress(json.dumps(sigmas,separators=(',',':')).encode(),mtime=0));print(json.dumps(res,indent=2)) diff --git a/research/complex-571-cold14-j1/code/generated_identity.py b/research/complex-571-cold14-j1/code/generated_identity.py new file mode 100644 index 0000000000..74a9b60479 --- /dev/null +++ b/research/complex-571-cold14-j1/code/generated_identity.py @@ -0,0 +1,62 @@ +"""Proof-relevant identities for generated artifacts, independent of gzip streams. + +Immutable source archives retain their exact byte hashes. For freshly emitted +artifacts, gzip identity is the exact decompressed payload and JSON identity +retains every field. Only CLIFFORD-REVIEW's root timing field is excluded. +Literal receipt references are checked against actual files before replacing +the three gzip references (and the phase recipe reference) with content hashes. +Prepared with OpenAI Codex assistance; Apache-2.0. +""" +from pathlib import Path +import copy +import gzip +import hashlib +import json +import math + +if not __debug__: + raise RuntimeError('Assertions must remain enabled') + +FILES=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json') + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + +def json_identity(value): + return hashlib.sha256(json.dumps(value,sort_keys=True,separators=(',',':'),allow_nan=False).encode('utf-8')).hexdigest() + +def payload_identity(path): + return hashlib.sha256(gzip.decompress(Path(path).read_bytes())).hexdigest() + +def phase_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'CLIFFORD-REVIEW.json').read_bytes())if value is None else value) + assert value['canonical_word_sha256']==sha(directory/'CANONICAL-WORD.json.gz'),'stale phase canonical word reference' + assert value['recipe_sha256']==sha(directory/'CLIFFORD-RECIPES.json'),'stale phase recipe reference' + seconds=value.pop('seconds') + assert type(seconds)in(int,float) and math.isfinite(seconds) and seconds>=0,'invalid phase timing metadata' + value['canonical_word_sha256']=payload_identity(directory/'CANONICAL-WORD.json.gz') + value['recipe_sha256']=json_identity(json.loads((directory/'CLIFFORD-RECIPES.json').read_bytes())) + return value + +def native_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'INDEPENDENT-LOCAL-REPLAY.json').read_bytes())if value is None else value) + for field,name in [('canonical_word_sha256','CANONICAL-WORD.json.gz'),('local_programs_sha256','LOCAL-PROGRAMS.json.gz')]: + assert value[field]==sha(directory/name),'stale native artifact reference: '+field + value[field]=payload_identity(directory/name) + return value + +def artifact_identities(directory): + directory=Path(directory) + result={} + for name in FILES: + path=directory/name + if name.endswith('.gz'): + result[name]=payload_identity(path) + else: + value=phase_value(directory)if name=='CLIFFORD-REVIEW.json'else native_value(directory)if name=='INDEPENDENT-LOCAL-REPLAY.json'else json.loads(path.read_bytes()) + result[name]=json_identity(value) + return result diff --git a/research/complex-571-cold14-j1/code/generated_identity_controls.py b/research/complex-571-cold14-j1/code/generated_identity_controls.py new file mode 100644 index 0000000000..def4135cb3 --- /dev/null +++ b/research/complex-571-cold14-j1/code/generated_identity_controls.py @@ -0,0 +1,227 @@ +"""Actual gzip/receipt portability and consistently rebound semantic controls. + +Only scratch copies of generated provider files are changed. Each assembly +control recomputes raw artifact links, all seven portable identities and the +owner/invoice digests. This tests identity admission, not a replacement for the +full physical replay. Prepared with OpenAI Codex assistance; Apache-2.0. +""" +import argparse +import copy +import gzip +import hashlib +import json +import math +import shutil +import tempfile +from pathlib import Path + +import os +assert os.environ.get('GAIN_PR564_SOURCE'), 'Explicit engine source required' +from assemble import assemble +from witness import PROVIDERS +from generated_identity import FILES, artifact_identities, json_identity, sha + +if not __debug__: + raise RuntimeError('Assertions required; refusing optimized verification') + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def write_json(path, value): + # Nonfinite numbers are emitted only by deliberate invalid-timing controls. + path.write_text(json.dumps(value, indent=2)+'\n', encoding='utf-8', newline='\n') + + +def write_gzip(path, value): + payload = json.dumps(value, sort_keys=True, separators=(',', ':')).encode() + path.write_bytes(gzip.compress(payload, compresslevel=1, mtime=123456789)) + + +def refresh_links(directory): + """Rebind only the three actual gzip references and the phase recipe link.""" + native = read(directory/'INDEPENDENT-LOCAL-REPLAY.json') + native['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + native['local_programs_sha256'] = sha(directory/'LOCAL-PROGRAMS.json.gz') + write_json(directory/'INDEPENDENT-LOCAL-REPLAY.json', native) + phase = read(directory/'CLIFFORD-REVIEW.json') + phase['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + phase['recipe_sha256'] = sha(directory/'CLIFFORD-RECIPES.json') + write_json(directory/'CLIFFORD-REVIEW.json', phase) + + +def rebound(owner, invoice, pid, directory): + """Return complete consistent receipt links to the changed actual files.""" + identities = artifact_identities(directory) + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + p = i['providers'][pid] + for name in FILES: + raw = sha(directory/name) + p['artifacts'][name] = raw + o['source_artifacts']['providers/'+pid+'/'+name] = raw + p['semantic_artifact_sha256'] = identities + o['provider_artifact_semantic_sha256'][pid] = identities + phase = identities['CLIFFORD-REVIEW.json'] + o['provider_phase_semantic_sha256'][pid] = phase + i['provider_phase_semantic_sha256'][pid] = phase + owner_hash = json_identity(o) + i['owner_audit_sha256'] = owner_hash + return o, i, owner_hash, json_identity(i), identities + + +def run(base, audit, out, provider_root=None): + assert not out.exists() + out.parent.mkdir(parents=True, exist_ok=True) + source = provider_root or base/'providers' + owner_path, invoice_path = audit/'OWNERS-AND-PROFILE.json', audit/'PREFIX-AND-INVOICE.json' + owner, invoice = read(owner_path), read(invoice_path) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + accepted, rejected, references, source_identities = [], [], [], {} + raw_changed = {} + with tempfile.TemporaryDirectory(prefix='generated-identity-controls-', dir=out.parent) as td: + scratch = Path(td) + for pid in sorted(PROVIDERS): + original = source/pid + ids = artifact_identities(original) + assert ids == PROVIDERS[pid]['artifact_semantic_sha256'] + source_identities[pid] = dict(raw={name:sha(original/name) for name in FILES}, semantic=ids) + # The optional provider-root can use another Python/zlib environment. + o, i, oh, ih, _ = rebound(owner, invoice, pid, original) + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + + def fresh(tag): + directory = scratch/(pid+'-'+tag) + directory.mkdir() + for name in FILES: + shutil.copyfile(original/name, directory/name) + return directory + + def reject_semantics(tag, mutate, changed_file): + directory = fresh(tag) + mutate(directory) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids[changed_file] != ids[changed_file], (tag, 'mutation disappeared from identity') + try: + assemble(o, i, oh, ih) + except AssertionError: + rejected.append(dict(provider=pid, case=tag, changed_identity=changed_file, + all_raw_and_semantic_links_rebound=True)) + else: + raise AssertionError('semantic mutation accepted: '+tag) + + def json_mutation(name, change): + def mutate(directory): + value = read(directory/name) + change(value) + write_json(directory/name, value) + return mutate + + directory = fresh('recompression') + changed = [] + for name in ('CANONICAL-WORD.json.gz', 'LOCAL-PROGRAMS.json.gz'): + before = (directory/name).read_bytes() + payload = gzip.decompress(before) + after = gzip.compress(payload, compresslevel=1, mtime=123456789) + assert after != before and gzip.decompress(after) == payload + (directory/name).write_bytes(after) + changed.append(name) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids == ids + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + accepted.append(dict(provider=pid, case='recompressed_same_payloads', changed_raw_artifacts=changed, + all_seven_identities_unchanged=True, all_raw_links_rebound=True)) + raw_changed[pid] = {name:[sha(original/name),sha(directory/name)] for name in changed} + + # A stale literal link must fail before any normalization can hide it. + for tag, name, receipt, field in ( + ('stale_native_word_link','CANONICAL-WORD.json.gz','INDEPENDENT-LOCAL-REPLAY.json','canonical_word_sha256'), + ('stale_native_program_link','LOCAL-PROGRAMS.json.gz','INDEPENDENT-LOCAL-REPLAY.json','local_programs_sha256'), + ('stale_phase_word_link','CANONICAL-WORD.json.gz','CLIFFORD-REVIEW.json','canonical_word_sha256'), + ('stale_phase_recipe_link','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json','recipe_sha256')): + directory = fresh(tag) + value = read(directory/receipt) + value[field] = '0'*64 + write_json(directory/receipt, value) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid, case=tag, rejected_before_projection=True)) + else: + raise AssertionError('stale literal reference normalized away: '+tag) + + def change_scalar(directory): + programs = read(directory/'LOCAL-PROGRAMS.json.gz') + event = next(e for e in programs['forward'] if e[0]=='scalar' and e[1][0]=='add') + event[1][3] = -event[1][3] + write_gzip(directory/'LOCAL-PROGRAMS.json.gz', programs) + reject_semantics('changed_actual_scalar', change_scalar, 'LOCAL-PROGRAMS.json.gz') + + def change_frame(directory): + word = read(directory/'CANONICAL-WORD.json.gz') + old = word['start'][518] + replacement = next(j for j,f in enumerate(word['frames']) + if j != old and len(f) == len(word['frames'][old])) + word['start'][518] = replacement + write_gzip(directory/'CANONICAL-WORD.json.gz', word) + reject_semantics('changed_actual_start_frame_same_rank', change_frame, 'CANONICAL-WORD.json.gz') + reject_semantics('native_false_restoration', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['forward'].__setitem__('private_work_erased',False)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_wrong_column_count', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['backward'].__setitem__('all_exact_columns',727)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_changed_profile', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['paid_profiles']['forward'].__setitem__('1',x['paid_profiles']['forward']['1']+1)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('phase_false_global_equality', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('all_child_equalities_include_global_phase',False)), + 'CLIFFORD-REVIEW.json') + + # This event hash is proof data, even when its value equals a gzip hash. + def change_event_hash(directory): + value = read(directory/'LOCAL-CHECKS.json') + value['forward']['sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + write_json(directory/'LOCAL-CHECKS.json', value) + assert artifact_identities(directory)['LOCAL-CHECKS.json'] == json_identity(value) + reject_semantics('local_event_hash_is_not_a_container_reference', change_event_hash, 'LOCAL-CHECKS.json') + reject_semantics('unrelated_native_root_seconds_retained', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x.__setitem__('seconds',7)), 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('nested_phase_seconds_retained', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('additional_evidence',{'seconds':7})), 'CLIFFORD-REVIEW.json') + + for tag,value in [('negative',-1),('boolean',True),('string','1'),('nan',float('nan')), + ('infinity',float('inf'))]: + directory = fresh('invalid-timing-'+tag) + phase = read(directory/'CLIFFORD-REVIEW.json');phase['seconds'] = value + write_json(directory/'CLIFFORD-REVIEW.json', phase) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid,case='invalid_phase_seconds_'+tag, + rejected_before_projection=True)) + else: + raise AssertionError('invalid timing silently erased: '+tag) + n=len(PROVIDERS) + assert len(accepted)==n and len(rejected)==9*n and len(references)==9*n + assert {x['provider']for x in accepted}=={x['provider']for x in rejected}=={x['provider']for x in references}==set(PROVIDERS) + report=dict(status='PASS_GENERATED_ARTIFACT_RECOMPRESSION_AND_REBOUND_MUTATIONS', + kappa=baseline['kappa'], source_owner_sha256=sha(owner_path),source_invoice_sha256=sha(invoice_path), + source_providers=source_identities,recompression_changed_raw_hashes=raw_changed, + accepted=accepted,semantic_mutations_rejected=rejected,invalid_references_or_metadata_rejected=references, + counts=dict(recompression_accepted=n,semantic_rejected=9*n,reference_or_metadata_rejected=9*n), + scope='Actual copied gzip streams and receipt JSON are changed. All seven content identities, raw source links and owner/invoice digests are recomputed consistently before assembly. Only identical decompressed payloads are accepted; scalar, same-rank frame, native proof fields, global phase, event hashes and unrelated seconds remain pinned. Literal references and invalid phase timing are rejected before normalization. Full physical replay remains a separate prerequisite.') + write_json(out,report) + print(report['status'],report['counts']) + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + for name in ('base','audit','out'): + parser.add_argument('--'+name,type=Path,required=True) + parser.add_argument('--provider-root',type=Path) + args=parser.parse_args() + run(args.base,args.audit,args.out,args.provider_root) diff --git a/research/complex-571-cold14-j1/code/hpe_adapters_local.py b/research/complex-571-cold14-j1/code/hpe_adapters_local.py new file mode 100644 index 0000000000..8f77ccf02d --- /dev/null +++ b/research/complex-571-cold14-j1/code/hpe_adapters_local.py @@ -0,0 +1,116 @@ +"""Paid residual wrappers for entering helpers (Lemma A): generation and independent decoding. Apache-2.0. +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. The wrapper construction follows PR #458 +(chafreaky): a helper that starts at frame E and ends at FULL has the physical residual S_E = T_FULL T_E^-1 (apply T_E^-1 first); +S_E = L_E (C_[w] x I) R_E with R_E applied first; the wrappers R_E^-1 before the whole local invocation and L_E^-1 after its +full-frame cleanup turn the residual into the coordinate factor C_[w] x I and restore the other 9 - w coordinates identically. +usage: adapters_gk.py CANONICAL-WORD.json.gz RESIDUAL-ADAPTERS.json OUT-LEMMA-A.json +Writes the recipes (generation uses clifford_exact.lower_child) and then DECODES the serialized monomials with the primitive +constructors of clifford_exact (not lower_child) and checks, for every entrance frame, that L_E^-1 S_E R_E^-1 has exactly the +tableau and zero-state vector (global phase included) of fourier(9, range(w)); mutated recipes (wrong phase, swapped sides, wrong +translation, wrong width) must be rejected.""" +import copy, gzip, json, sys +from pathlib import Path +# Package-path adaptation only; the exact wrapper mathematics is unchanged. +import os +R = Path(os.environ['MULTICOLD_SOURCE']) / 'vendor/pr558/vendor/pr552/complex-global/vendor531' # HPE: the pinned vendor531 clifford_exact +sys.path.insert(0, str(R / 'vendor/clifford')) +from clifford_exact import canonical_frame, lower_child, fourier, diag, perm, xgate, Op, identity +n = 9; FULL = tuple(1 << i for i in range(n)) +def monomial_op(rec): + """decode a serialized monomial (matrix rows, quadratic rows, Z4 linear part, translation, phase)""" + out = diag(n, tuple(rec['quadratic_rows']), tuple(rec['linear_Z4'])).then(perm(n, tuple(rec['matrix_rows']))).then(xgate(n, rec['offset'])) + return out.then(Op(n, identity(n), [('phase', rec['phase'])])) +def S_of(U, END=FULL): + # HPE: a helper that starts at E=U and ends at END has residual T_END T_E^-1 (END = FULL is the inherited case) + return canonical_frame(n, tuple(U)).adjoint().then(canonical_frame(n, tuple(END))) +def wrapped_ok(U, rec, END=FULL): + """exactly: L^-1 S R^-1 = C_[w] x I (apply order: R^-1, S, L^-1), w = dim END - dim E""" + w = len(END) - len(U); S = S_of(U, END); Rm = monomial_op(rec['right']); Lm = monomial_op(rec['left']) + net = Rm.adjoint().then(S).then(Lm.adjoint()); target = fourier(n, range(w)) + return rec['rank'] == w and net.tab == target.tab and net.zero_state() == target.zero_state() +def _contains(a, b): + a = list(a) + for x in b: + for y in sorted(a, reverse=True): + if x >> (y.bit_length() - 1) & 1: x ^= y + if x: return False + return True +def main(): + c = json.load(gzip.open(sys.argv[1])); frames = c['frames']; v = c['v'] + starts = sorted({c['start'][r] for r in range(2 * v, len(c['start'])) if c['start'][r] != 0 and c['final'][r] == 1}) + # HPE: (entrance, terminal) pairs of helpers ending at a proper subspace; key 'E:U'. Inherited words have none. + ends = sorted({(c['start'][r], c['final'][r]) for r in range(2 * v, len(c['start'])) if c['final'][r] != 1}) + # COLD-HPE: e == 0 (a cold helper, entrance = bottom, T_0 = I) is allowed: the (0, U) recipe is keyed '0:U' + assert all(len(frames[u]) < n and _contains(frames[u], frames[e]) for e, u in ends) + cold_ends = [(e, u) for e, u in ends if e == 0] + recipes = {} + for f in starts: + U = frames[f]; rec, compiled = lower_child(S_of(U)) + recipes[str(f)] = dict(frame=f, vectors=list(U), entrance_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + for e, u in ends: + E, U = frames[e], frames[u]; rec, compiled = lower_child(S_of(E, U)) + recipes['%d:%d' % (e, u)] = dict(frame=e, terminal=u, vectors=list(E), terminal_vectors=list(U), entrance_rank=len(E), + terminal_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + Path(sys.argv[2]).write_text(json.dumps(dict(status='RESIDUAL_ADAPTER_RECIPES', recipes=recipes), sort_keys=True, separators=(',', ':')) + '\n') + # ---- independent decode of the serialized file + data = json.loads(Path(sys.argv[2]).read_text())['recipes'] + dot = lambda a, b: bin(a & b).count('1') & 1 + detail = [] + for f in starts: + rec = data[str(f)]; U = frames[f] + assert wrapped_ok(U, rec), ('wrapper product is not C_[w] x I', f) + detail.append(dict(frame=f, entrance_rank=len(U), residual_width=n - len(U), vectors=list(U), all_even_weight=all(bin(x).count('1') % 2 == 0 for x in U), + totally_isotropic=all(dot(a, b) == 0 for a in U for b in U))) + hdetail = [] + for e, u in ends: # HPE: independent decode, residual width = dim U - dim E + rec = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + assert wrapped_ok(E, rec, U), ('HPE wrapper product is not C_[w] x I', e, u) + hdetail.append(dict(frame=e, terminal=u, entrance_rank=len(E), terminal_rank=len(U), residual_width=len(U) - len(E))) + controls = [] + def reject(name, fn): + f = starts[0]; rec = copy.deepcopy(data[str(f)]); fn(rec) + if wrapped_ok(frames[f], rec): raise AssertionError('mutated wrapper accepted: ' + name) + controls.append(name) + reject('wrong global phase', lambda r: r['right'].__setitem__('phase', (r['right']['phase'] + 1) % 4)) + reject('wrong translation', lambda r: r['left'].__setitem__('offset', r['left']['offset'] ^ 1)) + reject('wrong quadratic form', lambda r: r['right'].__setitem__('quadratic_rows', [x ^ 2 if i == 0 else x for i, x in enumerate(r['right']['quadratic_rows'])]) if False else r['right']['linear_Z4'].__setitem__(0, (r['right']['linear_Z4'][0] + 2) % 4)) + reject('sides swapped', lambda r: (r.__setitem__('left', r['right']), r.__setitem__('right', r['left']))) + reject('wrong width', lambda r: r.__setitem__('rank', r['rank'] + 1)) + if ends: # HPE controls on the first (E, U) pair + e, u = next((p for p in ends if p[0] != 0), ends[0]); rec0 = data['%d:%d' % (e, u)] # COLD-HPE: an entering pair if any (= ends[0] without cold ends) + def hreject(name, ok): + if ok: raise AssertionError('HPE mutation accepted: ' + name) + controls.append(name) + hreject('hpe: U-wrapper decoded against a FULL ending', wrapped_ok(frames[e], rec0)) + hreject('hpe: width misreported as 9 - dim E', wrapped_ok(frames[e], dict(rec0, rank=n - len(frames[e])), frames[u])) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u]) and _contains(frames[f], frames[e])) + hreject('hpe: wrong terminal hyperplane', wrapped_ok(frames[e], rec0, frames[other])) + fe = next(((e2, u2) for e2, u2 in ends if str(e2) in data), None) + if fe: # an entrance shared with FULL-ended helpers: R_{E,FULL} must not serve as R_{E,U} + r2 = data['%d:%d' % fe] + hreject('hpe: pre wrapper resolved to the FULL recipe R_{E,FULL}', wrapped_ok(frames[fe[0]], dict(r2, right=data[str(fe[0])]['right']), frames[fe[1]])) + hreject('hpe: wrong global phase', wrapped_ok(frames[e], dict(rec0, left=dict(rec0['left'], phase=(rec0['left']['phase'] + 1) % 4)), frames[u])) + if cold_ends: # COLD-HPE controls on the first cold pair (0, U): factor_iff_pre says only R_{0,U} itself may precede + e, u = cold_ends[0]; recc = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + ID = dict(matrix_rows=[1 << i for i in range(n)], offset=0, quadratic_rows=[0] * n, linear_Z4=[0] * n, phase=0) + assert monomial_op(ID).tab == identity(n) # the control's wrapper really is the identity + def creject(name, ok): + if ok: raise AssertionError('cold HPE mutation accepted: ' + name) + controls.append(name) + creject('cold hpe: identity pre wrapper instead of R_{0,U}', wrapped_ok(E, dict(recc, right=ID), U)) + creject('cold hpe: identity post wrapper instead of L_{0,U}', wrapped_ok(E, dict(recc, left=ID), U)) + creject('cold hpe: no wrappers (cold FULL convention L = R = I)', wrapped_ok(E, dict(recc, left=ID, right=ID), U)) + creject('cold hpe: U-wrapper decoded against a FULL ending', wrapped_ok(E, recc)) + creject('cold hpe: width misreported as 9', wrapped_ok(E, dict(recc, rank=n), U)) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u])) + creject('cold hpe: wrong terminal hyperplane', wrapped_ok(E, recc, frames[other])) + creject('cold hpe: wrong global phase', wrapped_ok(E, dict(recc, right=dict(recc['right'], phase=(recc['right']['phase'] + 1) % 4)), U)) + ent = next((p for p in ends if p[0] != 0 and p[1] == u), None) + same = lambda x, y: monomial_op(x).tab == monomial_op(y).tab and monomial_op(x).zero_state() == monomial_op(y).zero_state() + if ent and not same(data['%d:%d' % ent]['right'], recc['right']): # an entering helper ending at the same U: its R_{E,U} must not serve as R_{0,U} + creject('cold hpe: pre wrapper resolved to an entering recipe R_{E,U}', wrapped_ok(E, dict(recc, right=data['%d:%d' % ent]['right']), U)) + res = dict(status='PASS_RESIDUAL_WRAPPERS_ARE_EXACT', frames=len(detail), **({'hyperplane_end_pairs': hdetail} if ends else {}), **({'cold_hyperplane_end_pairs': len(cold_ends)} if cold_ends else {}), wrappers_reject=controls, all_even_weight=all(d['all_even_weight'] for d in detail), + all_totally_isotropic=all(d['totally_isotropic'] for d in detail), detail=detail) + Path(sys.argv[3]).write_text(json.dumps(res, indent=1) + '\n') + print('Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for', len(detail), 'entrance frames, global phase included;', len(controls), 'wrapper mutations rejected; all-even-weight:', res['all_even_weight']) +if __name__ == '__main__': main() diff --git a/research/complex-571-cold14-j1/code/hpe_audit_and_transport.py b/research/complex-571-cold14-j1/code/hpe_audit_and_transport.py new file mode 100644 index 0000000000..c566f54b57 --- /dev/null +++ b/research/complex-571-cold14-j1/code/hpe_audit_and_transport.py @@ -0,0 +1,301 @@ +"""Rebuild arbitrary-dirt compensation and transport a changed local word. + +Prepared for icekylinx with GPT-6 Astra assistance. Apache-2.0. +Adapted from PR425/433 (icekylinx), PR484's audit_gk.py +(DreamingOfClouds), and Round19's 112-port transport. This auditor does not +import a constructor, a nominated compensation table, or a global price. +Only the changed scalar word and its actual frame chains are checked here. +""" +import argparse +import copy +import gzip +import hashlib +import json +import time +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def content_hash(path): + data = path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix == '.gz' else data).hexdigest() + + +def basis(vs): + pivots = {} + for x in vs: + for k in sorted(pivots, reverse=True): + if x >> k & 1: + x ^= pivots[k] + if x: + k = x.bit_length() - 1 + for j in pivots: + if pivots[j] >> k & 1: + pivots[j] ^= x + pivots[k] = x + return tuple(pivots[k] for k in sorted(pivots, reverse=True)) + + +def apply(e, rows): + if e[0] == 'scale': + _, target, a, b, *_ = e + q = Q(a, b) + assert q + rows[target] = {j: q*x for j, x in rows[target].items()} + else: + _, target, source, a, b, *_ = e + assert target != source + q = Q(a, b) + for j, x in list(rows[source].items()): + value = rows[target].get(j, Q(0)) + q*x + if value: + rows[target][j] = value + else: + rows[target].pop(j, None) + + +def inverse(e): + e = copy.deepcopy(e) + if e[0] == 'add': + e[3] *= -1 + else: + e[2], e[3] = e[3], e[2] + return e + + +def dual(e): + e = inverse(e) + if e[0] == 'add': + e[1], e[2] = e[2], e[1] + return e + + +def state_maps(prefix, n): + """P = exact state map of the prefix (precondition + compensation + A + cut + B), and P^-1 (rows as sparse dicts).""" + P = [{r: Q(1)} for r in range(n)] + for e in prefix: + apply(e, P) + Pinv = [{r: Q(1)} for r in range(n)] + for e in reversed(prefix): + apply(inverse(e), Pinv) + return P, Pinv + + +def cone_violations(P, Pinv, hpe, mapping, endB, final, frames): + """COLD-HPE / CONE PRE-CHECK. Necessary conditions for helper h (raw index) to end at U = final[h] under ANY + monotone common-frame cleanup of the end-of-B state P (frames only climb, every gate at a common frame): + row (J26-H dependency bound): every g in supp(row h of P^-1) has end-of-B frame <= U -- h is rebuilt from them; + column (dirt-column lemma): every g != h with P[g][h] != 0 has end-of-B frame <= U -- the column of P at h, + restricted to rows whose frame is not <= U, changes only by invertible row operations unless h is read at a + frame not <= U, so it can reach e_h only if it is already zero there. + Both are implied by the exact endpoint replay plus the frame checks below; here they fail FAST, with the reason.""" + inside = lambda a, b: basis(frames[a] + frames[b]) == frames[b] + viol = [] + for h in hpe: + U = final[mapping[h]] + viol += [('row', h, g) for g, x in sorted(Pinv[h].items()) if x and not inside(endB[mapping[g]], U)] + viol += [('column', h, g) for g in range(len(P)) if g != h and P[g].get(h) and not inside(endB[mapping[g]], U)] + return viol + + +def run(raw_path, routing_path, out): + start_time = time.monotonic() + word, routing = read(raw_path), read(routing_path) + v, h, helpers = word['report']['v'], word['report']['h'], word['report']['R'] + assert h == 9 and v == 112 and routing['v'] == v + n = 2*v + helpers + ident = lambda: [{r: Q(1)} for r in range(n)] + main = word['A'] + word['cut'] + word['B'] + assert all(not v <= e[2] < 2*v for e in word['A'] + word['B'] + if e[0] == 'add' and not v <= e[1] < 2*v) + matrix = ident() + for e in main: + apply(e, matrix) + dirty = [{} for _ in range(n)] + for r in range(v, 2*v): + dirty[r] = {j: x for j, x in matrix[r].items() if j >= 2*v} + for e in word['precondition']: + apply(e, dirty) + compensation = [['add', r, j, -q.numerator, q.denominator, []] + for r in range(v, 2*v) for j, q in sorted(dirty[r].items())] + entering = set(map(int, word.get('start_extra', {}))) + assert all(e[2] not in entering for e in compensation) + cleanup = [inverse(e) for e in reversed(word['A'] + word['B']) + if not v <= e[1] < 2*v] + if 'refactored_cleanup' in word: + # REFACTORED CLEANUP (cold low-frame ends): the cleanup is not the literal reversed inverse of A+B but another exact + # factorisation of the same inverse. Nothing about it is trusted: it may only touch non-target registers (T rows + # stay the compensated data accumulators), every gate is dyadic (checked below), and the arbitrary-dirt endpoint + # replay below must be exact in BOTH orientations for the full reordered program. Inherited words keep the literal + # assertion (the else branch), so their outputs are unchanged. + assert all(not v <= r < 2*v for e in word['cleanup'] for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'refactored cleanup touches a target' + assert all(e[0] in ('add', 'scale') for e in word['cleanup']) + cleanup = word['cleanup'] + else: + assert [e[:-1] for e in cleanup] == [e[:-1] for e in word['cleanup']] + # HPE: hyperplane-ended helpers. 'early_cleanup' = [[cleanup index, frame vectors], ...] are cleanup gates executed + # right after B (before the final climbs) at the given frame; 'helper_final' = {helper: frame vectors} replaces FULL as + # that helper's terminal frame. The scalar program is the reordered one and is replayed exactly below, so a move that + # does not commute with the skipped cleanup prefix is rejected by the arbitrary-dirt endpoint assertion. + early = [(int(i), f) for i, f in word.get('early_cleanup', [])] + helper_final = {int(r): f for r, f in word.get('helper_final', {}).items()} + early_idx = [i for i, _ in early] + assert len(set(early_idx)) == len(early_idx) and all(0 <= i < len(cleanup) for i in early_idx) + assert all(2*v <= r < n for r in helper_final) + # COLD-HPE: a COLD helper (not in start_extra, entrance frame 0 = bottom) may also end at a proper subspace U. + # It is the E = bottom instance of #593's theorems: its wrappers are the (0, U) recipes R_{0,U}, L_{0,U} (checked + # exactly by hpe_adapters_local), emitted as residual_adapter events like an entering helper's. + cold_hpe = sorted(r for r in helper_final if r not in entering) + # COLD-HPE wrapper order: R_{0,U}^-1 is emitted with the entry adapters, after the zero-frame precondition and + # compensation, so (exactly as for an entering helper, asserted above) nothing before it may touch a cold-ended helper. + assert all(r not in set(cold_hpe) for e in word['precondition'] + compensation for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'zero-frame precondition/compensation touches a cold hyperplane-ended helper before its wrapper' + tail =[word['cleanup'][i][:-1] + [f] for i, f in early] + rest = [e for i, e in enumerate(word['cleanup']) if i not in set(early_idx)] + program = word['precondition'] + compensation + main + tail + rest + for backward in (False, True): + actual = ident() + for e in program: + apply(dual(e) if backward else e, actual) + expected = ident() + for t in range(v): + expected[t if backward else v+t][v+t if backward else t] = Q(-1 if backward else 1) + assert actual == expected, ('arbitrary-dirt endpoint', backward) + # The native scalar compiler allows dyadic additions and signed binary scales. + for e in program: + q = Q(e[3], e[4]) if e[0] == 'add' else Q(e[2], e[3]) + assert q.denominator & (q.denominator-1) == 0 + if e[0] == 'scale': + a = abs(q.numerator) + assert a and a & (a-1) == 0 + + tau = lambda x: x ^ (43 if (x & 43).bit_count() % 2 else 0) + ports = routing['ports'] + assert len(set(ports)) == v and set(map(tau, word['ports'])) == set(ports) + mapping = {i: ports.index(tau(p)) for i, p in enumerate(word['ports'])} + mapping.update({v+i: v+mapping[i] for i in range(v)}) + mapping.update({r: r for r in range(2*v, n)}) + full = tuple(1 << i for i in range(h-1, -1, -1)) + frames, frame_ids = [(), full], {(): 0, full: 1} + + def fid(vectors): + frame = basis(vectors) + if frame not in frame_ids: + frame_ids[frame] = len(frames) + frames.append(frame) + return frame_ids[frame] + + def transform(e): + e = copy.deepcopy(e) + e[1] = mapping[e[1]] + if e[0] == 'add': + e[2] = mapping[e[2]] + if e[-1] is not None: + e[-1] = fid([tau(x) for x in e[-1]]) + return e + + canonical = {key: [transform(e) for e in word[key]] + for key in ('A', 'B', 'cut', 'cleanup', 'precondition')} + canonical['compensation'] = [transform(e) for e in compensation] + if tail: + canonical['tail'] = [transform(e) for e in tail] # HPE (absent for inherited words: identical output) + canonical['cleanup'] = [transform(e) for e in rest] # HPE (full cleanup minus the early gates) + canonical['start'] = [fid([p]) for p in ports] + [0]*(v+helpers) + for r, frame in word.get('start_extra', {}).items(): + assert 2*v <= int(r) < n + canonical['start'][int(r)] = fid([tau(x) for x in frame]) + canonical['final'] = ([1]*v + + [fid(x for x in range(1, 1 << h) if (x & p).bit_count() % 2 == 0) for p in ports] + + [1]*helpers) + for r, frame in helper_final.items(): # HPE + canonical['final'][r] = fid([tau(x) for x in frame]) + canonical.update(h=h, v=v, R=helpers, ports=ports, frames=frames, + centers=[mapping[r] for r in word['centers']], + center_frames=[fid(tau(x) for x in frame) for frame in word['center_frames']]) + levels = {mapping[v+int(t)]-v: fid(tau(x) for x in frame) + for t, frame in word.get('target_levels', {}).items()} + canonical['target_levels'] = {str(t): f for t, f in levels.items()} + current, paid, edges = canonical['start'].copy(), Counter(), set() + + def climb(r, f): + old = current[r] + assert basis(frames[old] + frames[f]) == frames[f], ('nonmonotone', r, old, f) + if old != f: + degree = len(frames[f]) - len(frames[old]) + assert degree > 0 + paid[degree] += 1 + edges.add((old, f)) + current[r] = f + + for part in ('A', 'B'): + if part == 'B': + assert all(current[r] == f for r, f in zip(canonical['centers'], canonical['center_frames'])) + assert all(current[v+t] == levels.get(t, 0) for t in range(v)) + for r, frame in zip(canonical['centers'], canonical['center_frames']): + served = {levels.get(e[1]-v, 0) for e in canonical['cut'] if e[2] == r} + old = frame + for f in sorted(served, key=lambda f: -len(frames[f])): + assert basis(frames[old] + frames[f]) == frames[old] + if old != f: + paid[len(frames[old])-len(frames[f])] += 1 + edges.add((old, f)) + edges.add((f, old)) + old = f + for e in canonical[part]: + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + if helper_final: # COLD-HPE / CONE PRE-CHECK at the end-of-B frames + P, Pinv = state_maps(word['precondition'] + compensation + main, n) + cone = cone_violations(P, Pinv, sorted(helper_final), mapping, current.copy(), canonical['final'], frames) + assert not cone, ('hpe cone pre-check (row / column)', cone[:8]) + for e in canonical.get('tail', []): # HPE: early cleanup gates at their common frame + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + for r, f in enumerate(canonical['final']): + climb(r, f) + # HPE: the remaining cleanup runs at FULL, so it may touch only registers whose terminal frame is FULL; a + # hyperplane-ended helper is touched by nothing after its tail gates. + for e in canonical['cleanup']: + assert all(canonical['final'][r] == 1 for r in [e[1]] + ([e[2]] if e[0] == 'add' else [])), ('cleanup on non-FULL end', e) + assert all(len(frames[canonical['final'][r]]) < h for r in helper_final) + assert dict(paid) == {int(r): count for r, count in word['report']['local_profile'].items()} + canonical['local_profile'] = dict(sorted(paid.items())) + canonical['edges'] = sorted(edges) + out.mkdir(parents=True, exist_ok=False) + payload = json.dumps(canonical, sort_keys=True, separators=(',', ':')).encode() + (out/'CANONICAL-WORD.json.gz').write_bytes(gzip.compress(payload, mtime=0)) + (out/'FULL-WORD.json.gz').write_bytes(gzip.compress(json.dumps(word, sort_keys=True, separators=(',', ':')).encode(), mtime=0)) + receipt = dict(status='PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES', + input_content_sha256=content_hash(raw_path), routing_content_sha256=content_hash(routing_path), + canonical_content_sha256=hashlib.sha256(payload).hexdigest(), + live_columns_each_orientation=n, helpers=helpers, + compensation_additions=len(compensation), scalar_operations=len(program), + center_rank_sum=sum(map(len, word['center_frames'])), + local_profile=dict(sorted(paid.items())), local_rank_mass=sum(r*z for r, z in paid.items()), + widths=[len(frames[canonical['final'][r]])-len(frames[canonical['start'][r]]) for r in range(2*v, n)], + frames=len(frames), directed_edges=len(edges), + tau=43, target_port_order_matches_baseline=True, + seconds=time.monotonic()-start_time, + scope='Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.') + if tail or helper_final: + receipt.update(hyperplane_ended_helpers=sorted(helper_final), early_cleanup_gates=len(tail)) + if cold_hpe: # COLD-HPE (absent for words without cold ends) + receipt.update(cold_hyperplane_ended_helpers=cold_hpe) + if 'refactored_cleanup' in word: # REFACTORED CLEANUP (absent for inherited words) + receipt.update(refactored_cleanup_gates=len(word['cleanup']), refactored_cleanup=word['refactored_cleanup']) + (out/'SCALAR-FRAME-AUDIT.json').write_text(json.dumps(receipt, indent=2)+'\n') + print(json.dumps({k: value for k, value in receipt.items() if k != 'widths'}, indent=2), flush=True) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--raw', type=Path, required=True) + parser.add_argument('--routing', type=Path, required=True) + parser.add_argument('--out', type=Path, required=True) + args = parser.parse_args() + run(args.raw, args.routing, args.out) diff --git a/research/complex-571-cold14-j1/code/hpe_audit_local.py b/research/complex-571-cold14-j1/code/hpe_audit_local.py new file mode 100644 index 0000000000..17bccb64fd --- /dev/null +++ b/research/complex-571-cold14-j1/code/hpe_audit_local.py @@ -0,0 +1,171 @@ +# Local-only extraction of the attributed PR514 / PR433 independent replay. +# Prepared for icekylinx with OpenAI Codex assistance. Apache-2.0. +# The complete local checker and its negative controls are retained verbatim. +# Global hosting is verified separately for the changed 112-port geometry. +import copy,gzip,hashlib,json,sys +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +OUT=Path(sys.argv[1]) +c=json.load(gzip.open(OUT/'CANONICAL-WORD.json.gz')) +ir={'local_programs':json.load(gzip.open(OUT/'LOCAL-PROGRAMS.json.gz'))} +v,R,h=c['v'],c['R'],c['h'];n=2*v+R;frames=c['frames'] +levels={int(t):f for t,f in c.get('target_levels',{}).items()} +entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] +plain={r for r in range(n) if r not in set(entering)} + +def contains(a,b): + for x in a: + for y in b: + if x>>(y.bit_length()-1)&1:x^=y + if x:return False + return True +hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: helpers whose terminal frame is a proper subspace U of FULL +assert all(len(frames[c['final'][r]])0 + hist[rank]+=1;cur[r]=b + elif tag=='center': + _,k,a,b,rank=event + assert phases[-1]=='centers' and private=={('C',k):a} + cf=c['center_frames'][k];cr=len(frames[cf]) + # GK: stepwise descent cf -> served levels -> lowest (forward), reversed ascent (backward); each step is a nested child + assert contains(frames[a],frames[b]) if back else contains(frames[b],frames[a]) + assert rank==abs(len(frames[a])-len(frames[b]))>0 + chain.setdefault(k,[]).append((a,b)) + private['C',k]=b;hist[rank]+=1;centers.append(k) + elif tag=='scalar': + _,e,f=event;op=e[0];target=tuple(e[1]);source=tuple(e[2]) if op in ('copy','add') else None + if target[0]=='C' and op=='clear': + assert private.get(target,f)==f + private.pop(target,None) + else: + for r in (target,source): + if r is None:continue + if r[0]=='L':assert cur[r[1]]==f and (r[1] not in wset or (r[1] in pre_seen and r[1] not in post_seen)),('common frame / wrapper order',r,cur[r[1]],f) + else: + if r==target and r not in private:private[r]=f + assert private[r]==f + if op=='clear':rows[target]={};norm[target]=Q(0) + elif op=='copy':rows[target]=dict(rows[source]);norm[target]=norm[source] + elif op=='scale': + q=Q(e[2],e[3]);a,b=abs(q.numerator),q.denominator + assert a&(a-1)==0 and b&(b-1)==0 + rows[target]={j:q*x for j,x in rows[target].items()};norm[target]*=abs(q) + else: + q=Q(e[3],e[4]);a,b=abs(q.numerator),q.denominator + assert source!=target and b&(b-1)==0 + # Independent symbolic replay of the cleared coefficient work. + w=0 + for bit in bin(a)[2:]:w=2*w+int(bit) + assert Q(w,b)*(1 if q>0 else -1)==q + prefix=max(prefix,Q(a)*norm[source]) + norm[target]=norm.get(target,Q(0))+abs(q)*norm[source] + row=rows.setdefault(target,{}) + for j,x in list(rows[source].items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + prefix=max(prefix,norm[target]) + else:raise AssertionError(tag) + assert phases==allowed and set(centers)==set(range(len(c['centers']))) and not private + assert sorted(r for k,r,_ in wrappers if k=='pre')==wrapped and sorted(r for k,r,_ in wrappers if k=='post')==wrapped # GK + for k,st in chain.items(): # GK: the steps of each centre chain link up and end at the centre frame + cf=c['center_frames'][k] + if back:assert st[-1][1]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + else:assert st[0][0]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + assert all(not row for reg,row in rows.items() if reg[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r i0])) +reject('early gate frame below its registers\' frames', lambda w: w['early_cleanup'][0].__setitem__(1, U0[:-1])) +reject('hyperplane end on a non-entering helper', lambda w: (w['start_extra'].pop(h0))) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-3)) +reject('profile without 8 partner U->FULL climb charges', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-8)) +reject('duplicate early gate', lambda w: w['early_cleanup'].append(list(w['early_cleanup'][0]))) + +# Constructor controls for build_hpe's commutation rule (an early gate h -= p may skip earlier cleanup gates on p only +# when they commute with it, i.e. only read p). base = the word without its hyperplane ends; a skipped gate that WRITES +# the partner (an addition into p or a scale of p) or touches h must make build_hpe.apply refuse the recipe, while a +# skipped gate that only reads p is accepted. +import build_hpe +base = copy.deepcopy(word); base.pop('early_cleanup'); base.pop('helper_final') +hf = {int(h) for h in word['helper_final']} +changes = [] +for i, U in word['early_cleanup']: # pair each early gate with its helper via the gate's target + h = cl[i][1] + assert h in hf and word['helper_final'][str(h)] == U + changes.append(dict(helper=h, cleanup_index=i, frame=U)) +z0 = changes[0]; g0 = cl[z0['cleanup_index']]; p0 = g0[2] +x0 = next(r for r in range(2*v, n) if r not in {z['helper'] for z in changes} | {cl[z['cleanup_index']][2] for z in changes}) +NONCOMMUTE = 'cleanup gate does not commute with the skipped cleanup gates on its registers' +ONEGATE = 'helper must have exactly this one cleanup gate' + + +def build_with(w): + return build_hpe.apply(w, changes) + + +def inserted(pre): + """base with gate `pre` inserted at cleanup position 0; the changes' indices shift by one""" + w = copy.deepcopy(base); w['cleanup'].insert(0, pre) + return w, [dict(z, cleanup_index=z['cleanup_index'] + 1) for z in changes] + + +def cfail(name, w, ch, expect): + """the constructor must refuse with the pinned message `expect`""" + try: + build_hpe.apply(w, ch) + except AssertionError as e: + assert expect in str(e), ('constructor control %r failed with the wrong message: %s' % (name, e)) + results.append('constructor: ' + name); print('rejected constructor:', name, '--', expect, flush=True); return + raise AssertionError('HPE constructor mutation accepted: ' + name) + + +build_hpe.apply(*inserted(['add', x0, p0, -1, 1, FULL])) # positive: a skipped gate that only reads the partner commutes +cfail('skipped cleanup gate adds into the partner', *inserted(['add', p0, x0, -1, 1, FULL]), NONCOMMUTE) +cfail('skipped cleanup gate scales the partner', *inserted(['scale', p0, -1, 1, FULL]), NONCOMMUTE) +cfail('extra cleanup gate reading the helper (one-gate rule)', *inserted(['add', x0, z0['helper'], -1, 1, FULL]), ONEGATE) +cfail('extra cleanup gate adding into the helper (one-gate rule)', *inserted(['add', z0['helper'], x0, -1, 1, FULL]), ONEGATE) +# Real helpers admitted only by the commutation rule: their partner has an earlier cleanup gate x -= p (reads p). +# Flipping that gate in place to p -= x (writes p) must be refused by the commutation assert. +first = {} +for i, e in enumerate(cl): + for r in regs(e): first.setdefault(r, i) +relaxed = [z for z in changes if any(first[r] < z['cleanup_index'] for r in regs(cl[z['cleanup_index']]))] +for z in relaxed: + i = z['cleanup_index']; p = cl[i][2] + j = next(j for j in range(i) if p in regs(cl[j])) + e = cl[j]; assert e[0] == 'add' and e[2] == p and e[1] != p, ('skipped gate on a relaxed helper is not a reader', j, e) + build_hpe.apply(copy.deepcopy(base), changes) # positive: the real word's own changes + w = copy.deepcopy(base); w['cleanup'][j] = ['add', p, e[1]] + e[3:] + cfail('real helper %d: skipped gate %d flipped from %d -= %d to %d -= %d' % (z['helper'], j, e[1], p, p, e[1]), w, changes, NONCOMMUTE) +print('relaxed helpers', [z['helper'] for z in relaxed], flush=True) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'HPE-ATC-CONTROLS.json').write_text(json.dumps(dict(status='PASS_HPE_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'HPE raw-word mutations rejected') diff --git a/research/complex-571-cold14-j1/code/hpe_emit_local.py b/research/complex-571-cold14-j1/code/hpe_emit_local.py new file mode 100644 index 0000000000..534fdc71f7 --- /dev/null +++ b/research/complex-571-cold14-j1/code/hpe_emit_local.py @@ -0,0 +1,163 @@ +# GK: modified copy of PR #433's complex_emit.py (icekylinx with Codex assistance; PR #425) by DreamingOfClouds with Claude Opus 5.5 +# (Anthropic), via Claude Code. Every change is marked "GK:". On a word without start_extra / target_levels the behaviour +# and every written file equal PR #433's (regression anchor in verify.py). +import sys as _sys, os as _os; _sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) +# Adapted from PR425 by icekylinx with Codex assistance. +"""Emit both local programs, integrate the fixed nine-stage geometry, and bill. + +The expanded scalar interface is justified in PROOF.txt. This script does not +claim a Lean proof or discharge the inherited all-size/analytic interfaces. +""" +import copy,gzip,hashlib,importlib.util,json,math +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + +OUT=Path(_sys.argv[1]);cp=OUT/'CANONICAL-WORD.json.gz' +c=json.load(gzip.open(cp)) +frames=c['frames'];v,R,h=c['v'],c['R'],c['h'];n=2*v+R +def digest(x):return hashlib.sha256(json.dumps(x,sort_keys=True,separators=(',',':')).encode()).hexdigest() +def basis(vs): + b={} + for x in vs: + for p in sorted(b,reverse=True): + if x>>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def dual(e): + e=list(e) + if e[0]=='add':e[1],e[2]=e[2],e[1];e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + return e +def scalar(e,back): + e=dual(e) if back else list(e) + if e[0]=='add':return ['add',['L',e[1]],['L',e[2]],e[3],e[4]] + return ['scale',['L',e[1]],e[2],e[3]] +def primitive_bound(e): + if e[0] in ('clear','copy'):return 1 + q=Q(e[3],e[4]) if e[0]=='add' else Q(e[2],e[3]) + a,b=abs(q.numerator),q.denominator + assert b&(b-1)==0 + if e[0]=='scale': + assert a&(a-1)==0 + return abs(a.bit_length()-b.bit_length())+int(q<0) + # Exact binary Horner multiplication on a cleared private stream, repeated + # halving, signed accumulation into the target, then clear the private stream. + return 3+(a.bit_length()-1)+a.bit_count()+(b.bit_length()-1) + +def emit(back): + out=[];cur=c['start'].copy() + def event(e):out.append(e) + def scal(e,f):event(['scalar',e,f]) + event(['phase','zero_frame_precondition']) + for e in c['precondition']+c['compensation']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['start'][r]==0 for r in regs) + scal(scalar(e,back),0) + event(['phase','entry_adapters']) + # GK: a helper that starts at a nonzero entrance frame has NO entry adapter; its paid wrapper R_E^-1 (Lemma A) precedes every gate + # that touches it and L_E^-1 follows the full-frame cleanup. Words without entrances emit PR #433's events. + entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] + hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: hyperplane-ended helpers (terminal frame != FULL) + # COLD-HPE: a cold helper (start frame 0) ending at U also carries the paid wrappers R_{0,U}^-1 / L_{0,U}^-1 (the + # E = bottom instance of #593); without cold ends wrapped == entering and the event stream is the inherited one. + wrapped=sorted(set(entering)|hpe) + for r,f in enumerate(c['start']): + if r in wrapped:event(['residual_adapter','pre',r,f]+([c['final'][r]] if c['final'][r]!=1 else [])) # HPE: R_{E,U}^-1 names U + else:event(['adapter','old_to_new',r,f]) + def climb(r,f,part): + old=cur[r] + if old==f:return + assert basis(frames[old]+frames[f])==tuple(frames[f]) + rank=len(frames[f])-len(frames[old]);assert rank>0 + event(['climb',part,r,old,f,rank]);cur[r]=f + # HPE: 'cleanup_tail' = early cleanup gates at their own frames; emitted only when the word has them, so a word + # without hyperplane-ended helpers yields exactly the inherited event stream. + for part in ('A','centers','B')+(('cleanup_tail',) if c.get('tail') else ())+('final',): + event(['phase',part]) + if part in ('A','B','cleanup_tail'): + for e in (c['tail'] if part=='cleanup_tail' else c[part]): + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + for r in regs:climb(r,e[-1],part) + scal(scalar(e,back),e[-1]) + elif part=='centers': + # GK: targets sit at their nonzero-frame-compensation level (0 at the defaults); a centre copy descends + # cf -> served levels (descending chain) -> lowest served level and scatters into each target at its level + lv=lambda r:c.get('target_levels',{}).get(str(r-v),0) + assert all(cur[r]==lv(r) for r in range(v,2*v)) + for k,r in enumerate(c['centers']): + cf=c['center_frames'][k];assert cur[r]==cf + terms=[e for e in c['cut'] if e[2]==r] + path=[cf]+sorted({lv(e[1]) for e in terms}-{cf},key=lambda x:-len(frames[x])) + C=['C',k] + if not back: + scal(['clear',C],cf);scal(['copy',C,['L',r]],cf) + for a in range(len(path)): + if a>0:event(['center',k,path[a-1],path[a],len(frames[path[a-1]])-len(frames[path[a]])]) + for e in terms: + if lv(e[1])==path[a]:scal(['add',['L',e[1]],C,e[3],e[4]],path[a]) + scal(['clear',C],path[-1]) + else: + scal(['clear',C],path[-1]) + for a in range(len(path)-1,-1,-1): + for e in terms: + if lv(e[1])==path[a]:scal(['add',C,['L',e[1]],e[3],e[4]],path[a]) + if a>0:event(['center',k,path[a],path[a-1],len(frames[path[a-1]])-len(frames[path[a]])]) + scal(['add',['L',r],C,-1,1],cf);scal(['clear',C],cf) + else: + for r,f in enumerate(c['final']):climb(r,f,part) + event(['phase','exit_adapters']) + for r,f in enumerate(c['final']): + if r not in hpe:event(['adapter','new_to_old',r,f]) # HPE: no old-convention exit for a helper that ends at U; its post wrapper is L_{E,U}^-1 + event(['phase','full_frame_cleanup']) + for e in c['cleanup']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['final'][r]==1 for r in regs) + scal(scalar(e,back),1) + for r in wrapped:event(['residual_adapter','post',r,c['start'][r]]+([c['final'][r]] if r in hpe else [])) # HPE: 5th field = terminal frame U # GK: L_E^-1 after the full-frame cleanup + event(['phase','done']) + return out + +def check_local(events,back): + # Literal scalar replay of the emitted stream, including center lifetimes. + state={('L',r):{r:Q(1)} for r in range(n)};live=[];paid=Counter();prims=0;macros=0 + for e in events: + if e[0]=='climb':assert not live;paid[e[5]]+=1 + elif e[0]=='center':assert live==[e[1]];paid[e[4]]+=1 + elif e[0]=='scalar': + op=e[1];tag=op[0];t=tuple(op[1]);macros+=1;prims+=2*primitive_bound(op) + if tag=='clear': + state[t]={} + if t[0]=='C' and t[1] in live:live.remove(t[1]) + elif tag=='copy':state[t]=dict(state.get(tuple(op[2]),{}));live.append(t[1]) + elif tag=='scale':state[t]={j:Q(op[2],op[3])*x for j,x in state[t].items()} + else: + s=tuple(op[2]);q=Q(op[3],op[4]);row=state.setdefault(t,{}) + if t[0]=='C' and t[1] not in live:live.append(t[1]) + for j,x in list(state.get(s,{}).items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + assert not live and all(not row for r,row in state.items() if r[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r PR552 -> +PR531 invoice_final.py, whose notices and sources are preserved in the package. +Every call selects a hash-bound provider. Shared compiler reserves use maxima; +primitive work, coefficient work, local children and wrappers are also summed +from actual selected provider/orientation records. +""" +import argparse, gzip, hashlib, json +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +assert __debug__, 'Assertions required' + +def read(path): + data=path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix=='.gz' else data) +def filehash(path): return hashlib.sha256(path.read_bytes()).hexdigest() +def contenthash(path): + data=path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix=='.gz' else data).hexdigest() +def programhash(events): + return hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest() + +def recount_provider(local_dir, registry): + cp=local_dir/'CANONICAL-WORD.json.gz'; pp=local_dir/'LOCAL-PROGRAMS.json.gz' + rp=local_dir/'INDEPENDENT-LOCAL-REPLAY.json' + w,programs,replay=read(cp),read(pp),read(rp) + checks=read(local_dir/'LOCAL-CHECKS.json') + assert set(programs)=={'forward','backward'} + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==filehash(cp)==registry['canonical_word_sha256'] + assert replay['local_programs_sha256']==filehash(pp)==registry['local_programs_sha256'] + assert programs==registry['local_programs'] + assert checks==registry['local_program_checks'] + assert filehash(local_dir/'CLIFFORD-RECIPES.json')==registry['exact_local_clifford_recipe_sha256'] + assert filehash(local_dir/'RESIDUAL-ADAPTERS.json')==registry['residual_adapter_sha256'] + v,helpers,h,m=w['v'],w['R'],w['h'],73 + assert (v,helpers,h)==(112,504,9) + assert registry['v']==v and registry['R']==helpers and registry['h']==h + assert registry['ports']==w['ports'] and registry['centers']==w['centers'] + assert replay['v']==v and replay['helpers']==helpers + n=2*v+helpers + widths = [len(w['frames'][w['final'][r]])-len(w['frames'][w['start'][r]]) for r in range(2*v, 2*v+helpers)] # HPE: |final|-|start| + terminal_codim = sum(h-len(w['frames'][w['final'][r]]) for r in range(2*v, 2*v+helpers)) # HPE: 0 for FULL-ended helpers + ends = {r: f for r, f in enumerate(w['final']) if r >= 2*v and f != 1} + assert len(widths) == helpers + entrances = {r: f for r, f in enumerate(w['start']) if r >= 2*v and f != 0} + entering = len(entrances) + wrapped = {**entrances, **{r: 0 for r in ends if r not in entrances}} # COLD-HPE: cold hyperplane-ended helpers carry wrappers too + cold_ends = len(wrapped) - len(entrances) + assert entering == replay['entering_helpers'] + local = {} + for orientation, events in programs.items(): + # Endpoint equality and native frames were already independently + # replayed on all n columns in the hash-bound receipt above. + env = {('L', r): Q(1) for r in range(n)} + peak = Q(1) + real = macros = workops = 0 + paid = Counter() + wrappers = {'pre': set(), 'post': set()} + for event in events: + tag = event[0] + if tag == 'climb': + paid[event[5]] += 1 + elif tag == 'center': + paid[event[4]] += 1 + elif tag == 'residual_adapter': + _, kind, register, frame, *end = event + assert kind in wrappers and wrapped.get(register) == frame + assert end == ([ends[register]] if register in ends else []) # HPE: R_{E,U}^-1 and L_{E,U}^-1 name U + assert register not in wrappers[kind] + wrappers[kind].add(register) + elif tag == 'scalar': + macros += 1 + scalar = event[1] + op, target = scalar[0], tuple(scalar[1]) + if op == 'clear': + env[target] = Q(0) + count = 1 + elif op == 'copy': + env[target] = env[tuple(scalar[2])] + count = 1 + elif op == 'scale': + q = Q(scalar[2], scalar[3]) + numerator, denominator = abs(q.numerator), q.denominator + assert numerator and numerator & (numerator-1) == 0 + assert denominator & (denominator-1) == 0 + env[target] *= abs(q) + count = abs(numerator.bit_length()-denominator.bit_length()) + int(q < 0) + elif op == 'add': + source = tuple(scalar[2]) + q = Q(scalar[3], scalar[4]) + numerator, denominator = abs(q.numerator), q.denominator + assert source != target and numerator > 0 + assert denominator & (denominator-1) == 0 + acc, count = 0, 1 # clear coefficient work + for i, bit in enumerate(bin(numerator)[2:]): + if i: + acc *= 2 + count += 1 + peak = max(peak, acc*env[source]) + if bit == '1': + acc += 1 + count += 1 + peak = max(peak, acc*env[source]) + value = Q(acc) + for _ in range(denominator.bit_length()-1): + value /= 2 + count += 1 + peak = max(peak, value*env[source]) + assert value == abs(q) + count += 2 # signed accumulation and work clear + env[target] = env.get(target, Q(0)) + abs(q)*env[source] + workops += count + else: + raise AssertionError(op) + real += 2*count + peak = max(peak, env[target]) + else: + assert tag in ('adapter', 'phase') + assert wrappers['pre'] == wrappers['post'] == set(wrapped) + assert all(value == 0 for register, value in env.items() if register[0] == 'C') + prior = replay['local'][orientation] + assert prior['all_exact_columns'] == n and prior['private_work_erased'] + assert peak == Q(prior['prefix_l1_upper']) and peak < 2**prior['charged_payload_bits'] + bits = peak.numerator.bit_length()-peak.denominator.bit_length()+1 + assert bits == prior['prefix_bits_upper'] + assert real == checks[orientation]['real_component_primitive_bound'] + assert macros == checks[orientation]['scalar_macros'] + assert dict(paid) == {int(r): count for r, count in checks[orientation]['paid_profile'].items()} + assert dict(paid) == {int(r): count for r, count in replay['paid_profiles'][orientation].items()} + local[orientation] = dict( + events=len(events), macros=macros, real_component_primitives=real, + prefix_l1=str(peak), prefix_bits=bits, + coefficient_work_primitive_count=workops, all_exact_columns=n, + dirty_helper_columns=helpers, all_dirty_helper_columns_restored=True, + private_centres_and_coefficient_work_cleared=True, + pre_wrappers=len(wrappers['pre']), post_wrappers=len(wrappers['post']), + endpoint_evidence='Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json') + + centres = len(w['centers']) + children = sum(checks['forward']['paid_profile'].values()) + assert checks['forward']['paid_profile'] == checks['backward']['paid_profile'] + macro_bound = max(row['macros'] for row in local.values()) + compiler = 64*(m+1)**3 + adapters = 16*(macro_bound+children+n+centres)+64*m + primitive_bound = max(row['real_component_primitives'] for row in local.values())+adapters*compiler + + assert widths==registry['widths'] + artifacts={f.name:filehash(f) for f in local_dir.iterdir() if f.is_file()} + phase_review=read(local_dir/'CLIFFORD-REVIEW.json') + return dict(local=local,helpers=helpers,centres=centres,v=v,h=h,n=n, + entering_helpers=entering,entrance_rank=sum(len(w['frames'][f]) for f in w['start'][2*v:]), + terminal_codimension=terminal_codim, hyperplane_ended_helpers=len(ends), # HPE: always reported (0 for FULL-ended words) + **({'cold_hyperplane_ended_helpers': cold_ends} if cold_ends else {}), # COLD-HPE: absent without cold ends + width_inventory=dict(sorted(Counter(widths).items())),widths=widths, + local_adapters=adapters,local_primitive_bound=primitive_bound, + compiler=compiler,children=children,artifacts=artifacts, + paid_profile=checks['forward']['paid_profile'], + program_hashes={o:programhash(events) for o,events in programs.items()},semantic_artifact_sha256=artifact_identities(local_dir)) + + +def run(base, hosted, audit, out, retained_invoice=None): + local_dir=base/'split-centres' + parent=read(local_dir/'GLOBAL-TEMPLATE.json.gz') + template_path=hosted/'GLOBAL-TEMPLATE.json.gz' + template=read(template_path); summary=read(hosted/'HOSTED.json') + owners=read(audit/'OWNERS-AND-PROFILE.json'); control=read(audit/'ASYNC-AUDIT.json') + template_hash=contenthash(template_path) + assert template_hash==control['complex_template_sha256']==owners['template_sha256']==summary['template_sha256'] + assert owners['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert template['recipe']==parent['recipe'] + assert 'local_programs' not in template + assert set(template['local_providers'])==set(PIDS) + providers={pid:recount_provider(base/'providers'/pid,registry) + for pid,registry in template['local_providers'].items()} + for pid,p in providers.items(): + assert owners['provider_phase_semantic_sha256'][pid]==control['provider_phase_semantic_sha256'][pid]==p['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] + # The fresh controller admission must cite precisely these provider bytes. + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json'): + path='providers/'+pid+'/'+name + assert summary['source_artifacts'][path]==p['artifacts'][name] + assert owners['source_artifacts'][path]==p['artifacts'][name] + v,helpers,h,m,centres,n=112,504,9,73,8,728 + stages,replicas,blocks_per_stream=9,8,4 + call_count=len(template['calls']) + assert call_count==stages*replicas==control['complete_invocations'] + assert control['one_owner_per_complete_invocation'] + assert len({(c['stage'],c['replica']) for c in template['calls']})==call_count + parent_calls={(c['stage'],c['replica']):c for c in parent['calls']} + sweeps=[e for e in template['execution_schedule'] if e['kind']=='local_cover_sweep'] + assert len(sweeps)==call_count + selected=[]; selected_paid=Counter(); provider_counts=Counter(); orientation_counts=Counter() + scalar=coefficient_work=macros=0; wrapper_factors=0 + factors_per_wrapper=2*(m-1) + for c in template['calls']: + pid,orientation=c['provider_id'],c['orientation']; p=providers[pid] + old=parent_calls[(c['stage'],c['replica'])] + assert orientation==old['orientation'] and c['owners'][:2*v]==old['owners'][:2*v] + assert c['local_program_sha256']==p['program_hashes'][orientation] + r=p['local'][orientation] + scalar+=r['real_component_primitives']; coefficient_work+=r['coefficient_work_primitive_count']; macros+=r['macros'] + wrapper_factors+=(r['pre_wrappers']+r['post_wrappers'])*factors_per_wrapper + provider_counts[pid]+=1; orientation_counts[(pid,orientation)]+=1 + selected_paid.update({int(k):v for k,v in p['paid_profile'].items()}) + selected.append(dict(stage=c['stage'],replica=c['replica'],provider_id=pid,orientation=orientation, + program_sha256=c['local_program_sha256'],events=r['events'],macros=r['macros'], + real_component_primitives=r['real_component_primitives'], + coefficient_work_primitive_count=r['coefficient_work_primitive_count'], + entering_helpers=p['entering_helpers'],entrance_rank=p['entrance_rank'], + pre_wrappers=r['pre_wrappers'],post_wrappers=r['post_wrappers'])) + assert provider_counts==COUNTS + # The sweep registry is executable: no hidden use of the historical supplier. + by_call={(c['stage'],c['replica']):c for c in template['calls']} + for e in sweeps: + c=by_call[(e['stage'],e['replica'])] + assert e['provider_id']==c['provider_id'] + assert set(p['compiler'] for p in providers.values())=={64*(m+1)**3} + compiler=64*(m+1)**3 + adapters=max(p['local_adapters'] for p in providers.values()) + primitive_bound=max(p['local_primitive_bound'] for p in providers.values()) + bridge_steps=sum(event['kind']=='bridge' for event in parent['recipe']) + bridge_sweeps=sum(event['kind']=='bridge' for event in template['execution_schedule']) + assert bridge_sweeps==replicas*bridge_steps + bridge_additions=2*v*bridge_sweeps + shifts=blocks_per_stream*v*replicas; moves=2*shifts + parent_live,parent_physical=parent['live'],parent['physical'] + data_stock=2*v*blocks_per_stream*replicas + assert (parent_live-data_stock)%stages==0 + parent_banks=(parent_live-data_stock)//stages + assert parent_banks>=0 and parent_physical==parent_live+helpers+centres+2 + nonlocal_items=(4*v*replicas*stages+2*v*replicas*stages+2*call_count*helpers + +sum(child['replicas'] for child in parent['idle_children'])+stages*parent_banks + +bridge_additions+shifts+moves+parent_live+parent_physical+wrapper_factors) + outside=8*nonlocal_items+64*m + parent_pervertex=(scalar+bridge_additions+shifts+moves+parent_live + +(call_count*adapters+outside)*compiler+64*parent_physical) + live,physical=template['live'],template['physical'] + mass,profile=owners['rank_mass'],owners['paid_profile'] + assert m*live-mass==owners['deficit']==2560 + assert mass==sum(int(r)*count for r,count in profile.items()) + assert physical==live+helpers+centres+2 + assert live==owners['live'] and physical==owners['physical'] + assert live<=parent_live and physical<=parent_physical + assert not template['bank_padding']['families'] + assert owners['explicit_idle_remainder_children']<=owners['source_idle_children_charged'] + # The old dedicated-bank geometry is only a conservative reserve envelope. + # Its singular program is never used as evidence for a mixed invocation. + rebased=parent_pervertex+65*(physical-parent_physical)+(live-parent_live) + used=max(rebased,parent_pervertex); retained=None; payload=512 + if retained_invoice is not None: + previous=read(retained_invoice) + assert previous['compiler']==compiler and previous['charged_prefix_bits']==payload + previous_bound=previous['conservative_pervertex_used'] + used=max(used,previous_bound+parent_pervertex) + retained=dict(sha256=filehash(retained_invoice),previous_pervertex_allowance=previous_bound, + added_complete_new_pervertex=parent_pervertex,policy='Retain old allowance and add entire fresh mixed recount.') + half=m//2; group=2**(half*half) + for i in range(1,half+1): group*=2**(2*i)-1 + stock,streamed_mass=group*physical,group*mass + logical=group*used+64; router=compiler*(logical+1)*(stock+1)**2 + g_bound,e_bound,c0=2**30000,2**100000,2**210000 + total_mass=streamed_mass+e_bound + literal=2*g_bound*stock**2+8*streamed_mass+4*stock+4+32*m + row=2*stock.bit_length()+9909+252+2*payload + maxchild=max(map(int,profile)) + inequalities=dict(local_primitive_bound=primitive_bound<2**48, + logical=logical<2**6050,router=router2*maxchild*maxchild) + assert all(inequalities.values()) + localbits=max(r['prefix_bits'] for p in providers.values() for r in p['local'].values()) + input_l2_bits=(m+1)//2 + required_prefix=localbits+input_l2_bits+call_count+bridge_sweeps+4 + assert required_prefix1 + return PIDS[(PIDS.index(pid)+1)%len(PIDS)] diff --git a/research/complex-571-cold14-j1/data/OWNERS.json.gz b/research/complex-571-cold14-j1/data/OWNERS.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b7b1f8ab61bb17343e40a48579d3cf62d229ca32 GIT binary patch literal 463539 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

%h$jm1 zq$b;D=$_X>#bA&BH%)F@SL4d{_r^r4ap!PECShYLlYy}*uS)i6jv>=$z5No6IjOLU z#JQMP;N-Dl=jzV1y!VYZ!0Z-)NQU0`P@@x z@s`046HDHBdk4ol!0JpgEq)AFGAHL`3raiXs1PsQuaFrE$-JyE2MY&-PHBHfncv4B zLI%2co+nW{dQvCGg!9N+QD$`^K@?g>c0tK)vQ^zpKAuUU5luJ(PhhZbM-0!2oW13o zyf;jYOtru5L1pn%aX>=ZNRX&=v93@iIHyxJLcxfqWV(>3nCWYSPY0<;6_3A4P4Zh7ZFJz!CxE_g++#Z0^E4W*>{_}- zR$yU%OKpT^9i)s;sVMpC(NC789FV$sqJkxg!i>l&@i$oVA%ybLjDU0=5+=)WLIv}@ z8F358z)B zY+7YSjf&ZGNB2vx@BXUHtv2Gvga~tL-W2LRFl`*73^_N>ox8kIDFPD zyHmt(9l3@8LEp&TNx*r zclT{HE9*aFs;>PNS|q!RdTCR3QnpAmZd$SOCI5tvjA7|dIAOoefNGQr){*%G1@C`# z`qA6gxCODRS6Zy$`3f`5mrtFaSn_|TN8ylDM$EY!(-8zheK;*3oOG1zD{TXB^w@D< z2V>)&^$#f27<5}_l^y@7dRmikk$`@?fq_^TbqUmT56mvD-bIaX>P$$}cve#&dkLVv z*b;nxCz~!7_M|y^$$8=)CupfvXmRrhgo1MmLQs(NF>P-Eu~@!XQ6PZJg;=C@ zg?jiBNI<`igTV^!BW@h{04n3DqrZ)j`-pe$B$!-;Cu^jOsMW5fmvsTdnKyuAJ&(mC z;UTu$JN<6!*x=^7VO}|+TZl8mdX1hqW@e$1;9a$tzA2r?b8XM@6ta!f3iyk5ETi1> zMdFU7WwmuP4NAN*wa~7R7X+~|Vx$IO3lsgb%PicbjMIX>oU<*kp3uj#*B8iM&e3*G zXw|F(c#VUtN;=!jxn2>GubPsTf&E?tHy%a|aV?h>rtJ()0+#2*P+`XS z-vh2}>1K*r9JW8jv!BO(9_%%f2A1<8Op~(Ks)(>ZAcgbkl2Dw-nRxt>2Me?rt4Lj% zvkCXWim~Z?4QClyf>!0Bkk5;_mGT@Tx|$kaA7M2weDJ&LR`4F$a@Sj}mg2!cHz~V0 zJ(26f;Af%Mfg1M%)fh{2Ev!bf^T8Tn_%jJ6&4*Voy}IRpfbhht{IkKwFIHpoHOjS*PZfUUyCT!EKuPabQp`}rWR(2>NZP){ zTYiSp7UbmpeO6thjAMmmXY~A@m0xnL8|TJ|-?h+?{sk8#BH6Ku_#+sHQ5;0IHPop& z8enbTktZFKSQIqxHK$}~-|;{u_o{B>F^y``1kg*1ff+T!V~PoBze(@&dOPy{#u6Y- zn}Bim{M{e8GoTcdbSZuXF0F#6LnP*h%nhfhRkNku6DEvF>Rk1 zyhvK?dumiQ#Cf1J6FQKXDuXia?oM$KDbUuRQ?KabEXRTt8+b5#0GcDE_w~d)?Ds0x zmN~JY&Q_-bw8NTFDYt)J^R85BM)t;E1cXQCD#r$yAE7z5+WiJh+#TIzLOI!xwnR1( z?|KoJma@G<>{SCU1HHX*6bboZNx7L!3sl(IFrEE0UQVqg zzS5txLx={QmspyG18+QHR+1bqH+0mg=WT;0i7i2> z2A-0D9y$hO|DHfa`eVkmAhDgTZ7MQq@=)cl1J%epi%hIpEpXWj zA{OWUmZY+XeSk9VN@a7rD;a}ek#4#Laz~5Ltv69wb*ZK2DCA8}E^i?WS`X=Iw9B#e z5Ec-~>O_R3WV7Oh-q|c>7SX}S#oa^2O>}@oL%bm$RoC~;N}+rH2R7>{yTW$&M!2dY2>b#_m7Xkv(Y zZj!40Tsbj&(Rv##pD-}^(I6%<`KtW&g8qc2>RCa- zuP~t)g&73Fkzngf{`w0c$acFdR4-+!5XB#D)QF_%M>$JsL{R1Nh=Duv>Dqt&zYHL@ z<4aXI`E?NiJZ&avgMavGWw_sq zSkAU_=9~T)qiqw!BYppbxe>aECB)d{nv#)fAVSlUOb$=l=K*+#99jz}Tb`t%+_n1F zvSCT$E*XqfiE=r;pEY`&BS_vgs0!2*^80b|?K!?@PF4fsG!=`x*g<^BNh&Dx-7;a_ z1o3HD;qOW9zd@!1&KIZFz(hY!C@f?z5n= zcc^u9xP8X=EaY6QCYUz=7?*^&M?K6V{Wf@R`l)VEX(U_m!gk<8*2s|x<4*u%xaZ>S zTR1_XSjU|-;I*PTD_6b|F7Cq?9u}MystJ^ryr#16H-}uL-}>AR-oQ)^Kuq**Y6fcdW<$!R?v+i4B{~g@T!=& zxdgo@`5;2i8M1YSOIEqmVaXk89E1hSvHzo@w=p%|3xv-{yK?Ekj$LX*rS82Dx%?<3 z4)c(q3ha$Z^&uL(njj@D#Xfq*OElttWT;XY{VN-=H5>izOVQtmwIxX5xoGQOE@Dlo zlJ^O$F`Lh1Or(;H?ykd4Xu|o=89(thg8Ek#K7U!)=?y;asKE;NKaaTQJu&!+_x;>+)}#yF zXnZM2?PJ=@aJ05!g$0NNQxJ0ru@Gz~Ym5F6E7L)O^U^d_0Kkvmx2o{=z{WN)` zTEf|hA<1QeTf91zV!$_<0?92uy6)AN;8fP*l84k+-NXHPg%JSYj1Zt)o}t67ydJgr z2u~|?xHOxtZFcd6lXHms>rvziqQeXE%S0 z=ECbB*Bx(<jrWE(I0g?a(T`!@Sbt0C+12iU}PG`OfD?Wn67qz;*XoO z++duao-YEXc|`|}{QtTICnUiCD*?GL7`Bnhr0?U@p!+KA&}`fB*)|sRT|f3WgEoH| z?()bEFX+SY-}<2%31_}pK0mDHDJkzbs}pR#Q%&}4AJi7(3n`>_2BnH*6P&)8D#VBJ zyJ}EU0bc(|A(oV4q(NB0pqiLGhetg@C_y9$*trv~s*jrPe>^MHH52_VekRtg%Rug; z3#%(SjwvbNf`aqGFlpfF6(IhQT!d;0mNN!T3?Y7Pf)1~L{A>_LRmATD=CtM9sE=4u zJqGf#j~77FINC`)5@I8`5>$`s|0bLa>Y7&tedEYKWN?0& zs$}6C+ZQB{vjPx9^C(#_dQs+?&3*M6fLmCi(Ptz?r|_8A4hA{N*?gDR>9BdxwuwG`hkX7<5@370q-L`) zl%;emiNH!i`0Og5^D~0=QPj_00VAxu)IwXHRy}_sLIV?_IUX-A2)eUc^Zx|E5uhZu z?G13bWo(yuHejK}!p6I_dSjtQE}Su-h?+Nzlr8GmVEpq)!mhA+v@|+BmPmf%N4^W} z7S31oA&k6>4E6+xuxml&9b7UWHNNGOhMGUD)*q#qaUl(|y2;w76!Cu1($(k=&ChOd z=!6|wzi3F7W^kS!Eu61p#<)Gp4+DR9Y{XJ4sLV};usZY9c zX`oK824xuVPK37xM%NEIRyWDrDLo!oW{nLGJW_HZw_vq1i2QDvyS( zHgQt^jDL(83Ld@piW;|9hoZ*ar4v^N57)G5gx1**cG2CDsfSjh=~fx)%&?CJ|U)@b^G0p-O5@$cI?(G0ZTZ)E}K4G zBaKNY@^w)q(KeeaD%!UG#vmS5Zbbe1&Axd8)=HWadHI8KQ~qV*>zbVBhAg9sx-@Nm zo3sDIh*HZL{M3Rx$S@6$s;ae7rhk0+r%*o9~uQ z!>u~mA~40|t)BSN7;q`&xh1g$oLqgMN_eThm8$n>z*vptpVpx4kN-b@G-I67mTy08 z&R9WPV-dWM<2`qCmZ+yIlAMfWm<*k`8~j%1Eow_&0sf}sRbn=P*yfBhs&sUk-hM0) z?Fg~I=}o^35Dmin(DRCqYRcC-M%z*=v~C4v&76n>{3<9@z5qngzp+{;3!jz>H)#YAgz`$SQTE%OH~^iwuQCcI zi&-njq~$Ts+bR|>A(FsBtRqmzaAgyW z{MW@bA&+5Ks3AIh};Y}fyiYP{FvQI1{=RbD~c zD$z$W{#LCK7&_*uh zNtLUUJ)3&!1Ai5p{i>lQ@~<@qpR$^Y`{c3xzL0%26YYS{p#NRNGwOIC)Vow&hS}xF zKYWZ@d5cY#y^9YL>nBwY+vlOSN8|cCQ zb1CoCkanr~&)<1#k3maM!r^-i z?UBFNv$M{>j#6Jz%I#xLq??fw^CDe4LKEZ$UvA-8lc8J=)9;`!)s`A?xRQa}{rnBc zG!pQer~v`Qq29lKPH!3xbTQq=#YpOTkkq~E_MBX>#N`k=>cJ<5w{M4>(r&g!3`fSapJS7 zwlQ}Te?kAEEW&SJEg?m&VkLvro$mCswTH9(o2thjSoC_Z+HFqtSu($O#AjP=V+E)^ za1>ycBT4auh9PMcb!$qnAveI?wh5$nP_*w-X$Y2_+E8vv$4TeQ4R+uKh>{C!MN}G z{uy~yu!-pTe_ft~oML-pi*TPCCub0j#bhIp{H4ZIDYJkM>MtPb#%DJz(dTjAVAGX( z|H@&O9y1#Hn3fl+r+>)Sn}+kh>(ZF`Et%j_i&MxJum_;W#s@J($E#+1S_^FgMghDO z0+mKm-%t9BtAS?`TZtW&sD=m!)MIO8ry=aF* zJdIdaE|$0uQ0t?Wf)NTOvKpCfayPS2Q7ssJ^x#$(G`J`ur5Ac4^_%VoBUy3nI3*Zz zbm`}|{u6xUMJ`reW3y?v0qW^a-sO1-HE=moqs%*KSrl%SW66qmTgvE2roM2J<}#4| z7cTu7Va%jZq{DHnPck3r_Oq2{3MAz!&ZQ{%x7l>Htn{JEh~wiqI|S(LkKCGIXu=a< zsB=-MlRv*CU0$B?tNb1D4xYdgmPDxgsd<0|IO24AqXB>BhEMmYvyYz;@oA%mQeFff zZ~gjaI^!5jc?ov6YK=7f`{)3=>*yiVYz5)^lO};Ru=lOQT{y&Dw)5JwFV)DGvEfTo zDuOcvROS&b$6}QkG!|@PfMtwz{acERWG5Dt3K2$VB?W-^Xd-KyLSJibAfQ&)Cki4(lfW`tnMVtcOr*cTvu<2jmzM)OjyVLW@XQm3z3qu7} ze{`8eJM%RGKc{LeTlKYj6MJMN9hJ>Ce{}cglK;#Z_XUZP8C?}YTEga#M3ipH&A(~- z-df*fxCAB@mY!3oTY1dkp+#R{zl=);ybXD*E1*M+{>RZ($2IXjenxjQ8pi1Et^uPv zg@KfSgd$T!kZ^Rj(jbgRx}{^3NT-N2d_YPN1PS@w_xIoPy4`Er-FA1+^Uf~3Fl)v% zC~A?qfo}+gQB^!Q!%VLYmu#3SONQ|5bfg+a?|)dugG=tGqF~R zl9MpUeY`1u5!H1f-kh3U(83BSB0@NjMA$$1twkFG`N}hVE#~o`Jmr>V#Ce3c%EZEJ zdv=`7GMYl==%>d}m6%Ha>;O_ ze1pDM5YPOsGZ94!iZt@YL-CMoA6v#CbolEK@J3?9ot$_}$#hlMzjhUQG(bD;nvGnF zgTHc+*DjHRmmhS7AV zlPQk{ab^TJ$p0{!A4+mhvR+AVU(&-~X7QVEi@hwDivFRaq`Xg3LW_D+BSgbxmqgzO zpkJmtux#Ahvc2h9xAN$vMyFMfz+~Oup*^@FXgsfMK4Y1sa$pUR%Tovo0mIb? z;YB>J+vFYJB+9sD=T{{%kSA)*I2X_#B12ep-D5w-u(?L!Ysx}3Y4{lZaecZ0~%w}Weu|I(q*HjblM~f4?&wETK zA%D_@re~Dy`O0B|eV5sRrs@AevQG$9A*0GYq%{3pZ$eBIlfby2M{GHAJ;Z@ESjt!M z8p$_I#eS*(bc070^M{V#_RA%`6rWXYL(|F20cDbjU8&FXS#ZjG7S}^4nT{}lF;%Fz~^KforCEC=hz(PDS;pqz7D?ZC{!mr}U zC;`pX^ym*&;}j_k=SzQ?-NQVhH%&u)sIIrb(@s*Rm$mIU`IAtq@pJnFu63=8ykxXw z4>?6xEa`*&|5P|TxJH=DN93H#%8)JD8KvWz=e=P=nc zUTanLr9#|_OOc4?cVIpfl*reU86#@*(S%(|a%Il?!yAQ2^x~L+^77~0)do~X5h(G} z`+Nr5t>SRhCC`azUS7{0m2ETqfmS3yt?qRivQ>0Hz$aNOK?-^(4;?0~E_lhoJ%AAijM!|aJhoAYwi@#T~wUxktNJQ`1$k{&mqh!0}j zJ4wZ*o73nwQ0rbLr&l+X+)?($#RJHwCHMQ59*KDNZilvS&>LBj&EkHGB9%G0M2+IgcTGCLqIZJKh+)wu|7(5@SN^+Rrysxv;& zq=s3vnt2Cp z0oG;TE&6_`tU5TON0q~&Qb=lOYoq%9A7`Ie%ihlk_*8pt0zPo-~`INV;4ppZae;#^o5`)!S36u))(o8>r)WJ8u- z)&AN_k+x>S{gy8fGt}$i`z7ecvle;v)pwrhYsCg^CRq1kBQb*|*Ti-R+#@SNqOHHh z*G-r>#|D;YW6B+lN$y3QZfkPPG+?RlwMvR;-svUslYsrxSGhGxM21!DP=rn1tX;H{s~ZL5R%%~chNg3Ged zc&|~syzv32iOq8WKVwGnz^*@U__>29pc+T(120ppV>EVA>62oe$?LoqW^zkpW4>btwm^C1a z-PN%w5cUBjZ_q-%jFtTNZcE0*G& za;y(YbDqy`y6;9#_`XH-fNnxyy@~3;qjidi@GmLwu6=z8N3990S`3+4+(Os1m(g@3 zwQ<$L3|udqF9&5jXwa3Sfs^(^P}xvnl9NlHy4|HOr{z0D_d{|;mNevVt!rc*_B>uL z=g;o>lp|9Kh%6&)7nEqj8IPZ!<%^Hes>#O@{XvkQvYJ>@B!x(90c;NTEP=%|B4a2I zX`E@IC+TwE{-J4ZW{94c2Xq9_5Q*Y|D>G|H zN&+D6ig<|}Wp0PY-yu0HdI@J)*$Mm@7L6%lONcRiq;Mvo(T`aZfPC?#3V@6nXMiJt zx|>3#)t&0Pr)mCs;*3l-lj!r>-NG<_vnJd;aYk6{6Q_%WC)rW|;BwBM(bsiKqv0{~ z@XI9iw{DCUcZv|iTO@qzzN*k7VMsclUu0&zv>(~!jungpwL4_$G^z2RyM~b!UqM;NhE{#jW9=Fn+=0R(OUdG<`zGX2Add8HpZoO>kPpj za-WyTbQ0z!o;@ln2juicZD&(EhT%}@vt_d z+?5hYrxiwDJnKg$K-}LdG$2E-i$XLctS+$ADmjMx<)t#35dCuX?+#*rG|6+PHMnx) z1kI5%ob;vnInMj_(X+xMW{nfwp3hHm94>N`&)59vdG-UKiUf&xJ5ClnyJSXu7-26p zLv6-pot?m{pdVwQVqv9#8DZkR_&0|QuKU>%lIL_}5Eg=@*}7UrF;9G492*}3jE?nN z$ZeTT2q}*KcCOH5%MG+gJFnCRI2Zp@XlR*{*&-0v&uV{tAuwt2VzBz@H%BYL_JPom zV4nt3G_aU9AQXa4?aK@MyNF%1w9*ztOf>a*JFxuMTlVxAAy8E-1A%RWjyei4d-Tm2 z^6dYW#6IL#*L&kwLWMf0JFCDrFfEC+Rv@Z|T;OAnqkDS-#SWQt#z@x!_YDr;TA(@xUM0sKT)IaJM z4N2B;zM4(U8|fkGD`H+)w~D=RsNT{LjFtgKa!(9d>D7eD({MCQOw&Ea*`6>RVDBO{ zd3UNd82jjzxMB4~0J7>Uf7*Za=DU7I79Qu{yWWYL;`JYB0%CYiaiq%(w!sHxZV$BQ zM1`S}f{~nDfB)B(3Wk=#>$H^~AQ|RcOX0qzF_%$m)Gi5$Fb`P!#ow3De8nSzPhY~t zrRNQ^bA^0N#fu4P-k{wJXsMv^nJ`4|$Ax)(;$`a+9+sK7M6$G&!wZ*~f3U@qP$E?l zc}8b5A?zZ+1?+jgCUMYhgZk3h56nJ^W~&hOaZKf zZlKMXkX$gH^O=q?ADEZIS{E9tTiVw4fs0M*@jLJviHHhc%hiKWB41_R^BATu3wyfZ zXzO@3@!W#k6z&k71kBv4Vm5%r$f~_jpr}OwP}S5af_S^WSR}m7@HYr)&k@gwNj5 zyNmf16wyc7k|z7Nzhalb2>lczCo8S|><~C@XIM^xGD96eq!EKnic2WKKXp4)@#E9A zQ?*H`+M8dz>R>YpobI(Y{QaunnrW$1h~d<$L8Sq8hdRgbSM|4|0al^VzrM$MyhF&^ zS9UgLZT=j?2q5+Lg`Q04N8aQbNLZ4j<@!Fscu!WPJs8s2U*|<^%(?Z*`%j@9%P^j1 zx%%vlo7&72)0vU{>};6xJdZPJ%W?u{^jT~G+LHelkLiX}Rfo4=+~2~5^#2~aH`oUI8Kddik6(VccLl8(>c_{~cjZ=8|I~@|>?8lnE@H8bkNHF|3^B%Jl*sSL_yF2XxDB z0{j^b26B_=sC-^T?D}AuR+Sk%i_`2@T6Lq^z|)ViF6f#I0n#K??|W2bBWHnY zNJn$9O-eJtDDi(~ctd;YP_ea0iv{KSuXJQj_))+8S2z>K6;LC zq|;GDk-o5JYC~?BkIxD>G;64O7Oeu?yk;9a=jX+Ib!kkA^$-#B5`ldQi8*@pW(HM} zsJ>bFtI&KSr{HMNbXWf?S3^W=L%|U`FHQv{IdycY^R0_t?RBE8t+B~}*?hFwdd%Gx zcAUENsZ!b`St6N~v?srtfcR^miZa z`JhR{RKz?+(a}us>b;PUbK>(07YeFxkD3c<8j~Btr&EG&XlIoq-Jg7VZ4y7BVafI( z7@7YYhx+4C7DF4S+=3Kq;Ioo5cneKLeV4tr>Q9748|bf2isB;G;7eFaGgOmik-Bn8 zr|Jd&BJ~>&dLL{T$Mgwvnys~B9jHOjUIh2~R|=XO_BK>=*1=H5V{>)U*;F}0hr+e2 zc*+df$$`INQcSqS=i&TNp?I6H8Icrh7m=BWEfLBAiHfjvM7XP}o&_v}^)VGqsfbE} z*R*;^9V2_exjM_#qxN9OzPv3BP=qVF;JY+mn;Y{ z(`uo11_CN$4Oo`g%{*u0)w|$sNpEJl`}95)(cLMXQXYX28m?E)lqH|A7z4VzOnUNL zSiTV)5X%jRa!5p6^74a7*G!6;N77lH1P}Kl&eQPL-1+9u_(*Gt8;kb|eL0Hflai-d zir%s_+rUCn*zsxpIfBRt6g{AC$c}pTjIA_USew)exT{Dr<;epV0L*(QcE#7Pp}fD? zSnah1RfB}pM3`>+48VQKdRr+jsu)ldW!6rKBko_9e;XONeO8tS3XL*L~#S z_P@Ha8i$2`%%wPkh%m!&F^PE6<@b`+3w!rn-TOa5?0{<;PH)G75Q_u*He=z;=*@)L zH$!}8agzIgqVY_dQErB#R6wqfAh*^i$ExfaAepJV+%HW>m2Q`OIh%!U+PAE~xV{}D zYQg+swBk1!x`q2ho&MR}x>pzv=|9!xw^&DT1!?{By$?|ev#14-velO8(BcPkhd?i< z>G*%A*SBXps|d^uvGBG$j z!L#H-HQBZtuE~E_%p{Vz{A03KWN$iw;Ue`F7d1Y=aKEYAU0n)ji zLHPo|AuD)tvhWb8hPaXtG-qPQ$4OKY7_#t4d$P?Paq7S14GT&spSeL0w^#e(I1UOW zlA{(yvs=E<3UpA8TT2P!^NQmnpaZQ}k2?~pk*RnTISJ+p#_NbP^!fll z6U225?=HrJ(gBCa6(xFlL8mhDOFH>#26G$Z2MeNFlAHXcxso2zn?ZIW;DsyBP8`T5m|awqDii4)+!-~}DhY?`}de|kM-(=~vMgW9nQ9BI<*3(0-n`nTu4 zOZUD3jxrCXa?Y;Tl8tdypf-pRJ4oy)zR*$kZoss9MEo%-Xpvw{lH{KCgS(&ZoVgF* zUi~ZP2`JY=O{eFcg<1;II)12C{QJ?0Cr|o8BPYTrd7i<{Od{@(w>Ei6Jk02%Oz%^i zRS>g0Yk%FORXC9^yL>}sdXSIw`#k`gvj5#HCN^nstDQO-Na zxOx2Q_=FuC4XOowvv8hAy0$Sd-eW2_TQEMrvX-*&1s5J`Wq11183G-3qPoF(�*^ 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�P5`@^Z*>9U3ZMrdRNtmfr{;$_0zw}&AXt+PW=RQus+5HbQy zWI$Am1A?j%aL*wY^?G{F7po<`(davL8k9RWd;UStVi{o!9LZRUCvv8ok(se>ARyyN zP;J?hfw9#Pblg6Qi7PLW3yfMuAcO#-Qsk0FDLO(&3htOV922=@u@~QugFXV5m&1~t z*oqKv11x64ui&|aS&9ho(GUYK$cSG)8gw6%Xd2?Y_f!o@&y*ULGG0$;c)Z2&4c)hL z!8bX=K=qu4EOof`wAr*7TUD!klJFP-n=LW$-4eN==(Sh;z+u7YsDX$ZPlvBCXAuE5 z;9m&91YL3ndKCfL0EfhI+v$K{RBeEd$LLtd==RIUmTvJ@bt+XDfK5~Cs6 zchAX}Uv|76Ze<(~i$*g5Ehl8}RRl^1AW0hM2lNA>_-F~NvPZ*^ggZ_rPmooGFbM+0 zBwTTd1A^k?k;bB4$vfOl!@oTj<$D_#*#IKKh?Fl%F(d?K%T!4jJ%ykQfMOD+s^b_G zW5>F6^Jbz9rD5Ceyx@D*sG8xrj)dvC=(|qB!-yA6jms5HV0wTI!*ln6Kg65bRzJh?l3qG;Uuq0)LUYtn@WGMBC8zn0j7Ohti1R(%lT$ZwdMHK;F zj}!Tmal7e+pjcAmusD&F0JodQ@4{kC@ z4;ey)3A78SmNP@uA+a;*G+Qj143XWc7#d-~L{f7hvKKcJS$einl-6X3tXATK>fnv` zGI9N7(;M_})#4p{_1}PM?AnBQ?h&qEdy>2?B;E+<-ZK37J(4Br%Dl zFR^4EDaD?EJADe;&$MJ7dHJ?^wB&FFMQOfOEGMCM&ExTaAQ|3CNAs)?WYzV3+iJ<_ z#3q%TS7EF;-S}WIOlEab7Izj1vSO4(VLwNH9ZKWu944(eTnAf8lsur=rC4t8yWiyw zs2)Z#YDyT6#Kl(JRYVM=Z;12nf=e+6&8o{c9$=Wnx1>a8kX2D@We_Cgrg$)LF=oSa zW5s74f}oQ@H9_2s*-YMAv6T)Wur_LeoUMZEF$b6M;=Y_?57kI-KyW?g^f8#z`{uQY z3=?Kf9¥?P3gikAdVzjq21sQX+?=Sb}j(YF`k@CuhzKRrVtm-ZZ3F7u=DNo)q4^ zz+gz2X-3pHxFvJK5XG@O!|_K`dS`{?zJ>QH1|baSlA$S=tj?j@Yy<%>4BVADB@ph_ zrD9sBU3hUOmu0-TNNKoHYf2P2xGi%sL$xGl_`rB!z#xhHGDi$n#X#;rJ)}tHlf}7Y zGYn9Qcbx!yRVyqAgt86yzOrT28s=+hby=>bG$OEPhMmdHl>V~bb=1v zP#p^87mg~%Y22KNuRm}e2#u}^;z{e4`xMpEq&GU4R3z@6#NagyhT@|pRH5z3AX%+V z(xcmi?uy=XQq@I|v`J=|WQLLZ6j3z;J+WjGW!p@hiYjXyKd@xd!Cc9!qIfcg)2=fm zP$M@S*^4xeoWlvKWy?s$$m+PVVU^f~-gy6Ik;cA7pl3lCXyO4kX^xWJWejvGh}3g< zGJ~ofiy(g>B0=1yIYozRsoI=^B$dlYHj}JINvH6DlbSL{&L4`=!HmpcWQLhEL$ydu z0#<8Mgu*DP?*&N5DuPg)T^3sDkh64@w>pSMATWKHmITqOAV@D{Qm1?7lzDH-T2Q{6WV%gg0*CDrUf-vVN#ojyjnT#ms~JKf*7ZnNoLl!GPchY!*Z z#~^_VH*$*DRt7=h-88#-Ub)fYixV*5w#N$ty5-76%N}J6s31;!yt2++94(H4AP90x znqpnKU>Rkv9E3p$L*&%l%NRO+455$FbH~$*L+*wY(Hese#yIk^!p&9ecpFVX1oFMf zI+rN5I)^d0SNIDAX1BP6W9|EQIDqH`0@kqxvC}DSkpxRFP|hj_!4}`^FX6$^V@COCt@kp9K^QPlYA#UTjyOM+ zDY`d_=3UiNcDSuof?gm_2T{>hlX^5gpHGghIMgJ?KvKj>3etS?(t3lz2?NGS?MV!+ zhyls+Ix$bEjvV8?S0NZ_){!^Nlt|TFR}geBUN{Bz-X4OGKoL@%tL5an%!?2(sqZ1=3poix zwHkzh+ZR2M^+7FiC*leLuw>ylZ`VN|qUQtpyx-8gt*Q7X&h}1&Epu6gi zYxlu0Ple*~IhW>M^joo)BxBLHIQP7zN>KzJK>}^ zFYe;*1#vZnP?Yo>ciJZv+PSOHDvCBq#{mSzWgLrBB00*WER#rC@X76-dSk6tHN+%C z;H`<QV1^90UiX7^ZwL4I_uW7BB$Pi zfOcT8$*nO`2�a1Ifc;&_xx=rS9S*cPI%MaahVl#t-(X5rREcSz;lf=UvZHsC|;i z&OHX=#UVlHF3HMpzrvtl}_3dGAp4ds!Gj~_IY_uJpuIZd$d4 z4Ces}sxU0g;|zH#aw0v!88@)JQMc~AaN`%@GaN|d3 zuI~5&$LJdfLJ-Ibk%LgR0%a=;H8^$V^2UDmjDZ0-93H1h#F%kKFy0%j{S zmo|1S8UahtO6`D|i;S0Sj*k(DPk{v6b>*_g@Tw7zKM*%MbS0~eQZ)j30@Zj{E;L5f z6YzS#)i+(aVq@`ka8zf0nSc=F;^GHYg}H}-E5eIjk}DS%ebs6!9bXT==#E^ugmGCh zU!=z@(TeKI<%{z&Uwm>E@I@-UpEYfsRHc|J;c62q6YI(a#p)a^?)xFhjkT6~%D3XE zpHLGB#|8{{Xyz#*N*M#qpEksx$97yR&kZ~vko}t2ObvHvWSlxts|*6CNs49{JG5MH zokk}jmp5LPTc2Bss?L}(NUqLUX1k`uiI`LjcV=vTKXZDF!0X49KWZ*I7JH-7S(Fmb z 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�#nx!i*PC;eu!RCXL`^{Sg4pb-2w-^1Arut?yJN*bOsYfgQh*Td?N#!pmrs+`= z*ppumNntN1W@#j5Srirat}u}Hz(mgd@XuX}ZXg`Q?U0t0MQyt~2o#UVGavc6des#K zI;tifRcDi=XN{bzUf859fu{u0vE~Va%NTG^3_K-}jdj4V<(42FR0Eq~#Kns5pHzUs z2?G=jMT?}R_J?QCGN6)u(IIKds}P+aK!QXf)=95u%A2CoG9WFkXpxjd?hsRB6d%@S z)b4l8Zohf4_@!sQ)&UO+WMLh$bf~oxDPJZ{nji}+i^7*T5C)Q|bKnEotcmOODMO$P zX^X zef1)U+f&;g?LLxbUWk0@0tUfUKsWekHbK$;}R z)oC3<#(-%ua5ixNahmMU0>OcU)5y0vVHk2eP<{v+oi3)yA;$w6er8}ri)^dYI;6=M zC_&&u9+It2LN*l&=`HH;ThR zQyqFBq2BaK5ix6->M|f+O1)G>SknHi>5K-li7%icD6}MwL=IPC?*HRY7LM_u(K>j~?%JZWkf!;ERCL#y{%BVt~%E?x^Uu$F3g z=d)f+l{@L{OeI`W3Z2c{@$~!r=5T(C*TD zEl*DQXLRyBK=z0ATAsYEVaBuf!$v&?>$QS1Q^i2K?i;(-=CykA_Hpm!Hn7NTfb!(o zDk&fBneQ-AJfLK>dH>V1dpw@qKNzsKcmLC~8=N0#9h}x7YPG!#ftG=;I9@C#We6xB zzR}Fhyp|=^@zs&EDU5!^JdVTU_h?x`j3_jFG(T%X&5KTHyjckfNh5uOBV94oN6r_9 zpuf@ZZ=6Xusdmo6K#MGLa6Zb2h2w{FQw~cqBUyB2MX!bBm@)`5O~NTHi=wRkNErkf zp(0z*kco3#33a%882t{qdPmmmqvXF~<&L+Mzg$VA+cn98(5? zjt>j9NDK)%$Cc1&gT$r9Nozw!jvs`IKIoS|7ZW+@cR2lyto;s?e+PNwtWLXQ)J}4F zbCC7L>a;nE^`$(|IH{tc8W&kPr*$xS{GMH`7S)$zn>4B}R(B|0eO?l)P3C2Glu&5cu5>qAv@U>%3 z`WyMT*Nzv6PDVZGb8kq~ITqXU7VYGlMDIJJ*0+>Z#rW1i+Qc^2-`+X^1cd}?%>4&d z=LJHR#UN!dr-V7%x2476jnN#1B`Mv_s?nSrmefX`bn8I6PJX|Q{KC*EQz50&kgjuR z8_H61qtQA9twR(qKKeqC;~rJovvwhu`8s?JohYJi^TNjX2E)Pq(B>=!rK>V${H`$R z!EF}J-n+UxxuO0`J$`|x=1OsnjK-&e2&T5qGnV@N)C&dOdM2758uE6IDB6}$P*Bk0 zBNBJ&p0!sfsHZ(hFL!wjh0NUHruLxnaz)JtQl`xe4_d`JbtLHqRZp)cm+(FechwzA#5^HfLzy;JW=+n{SRF?l$&O(JpUhD z9=&V!LJ@?5GB;T#9Z)PCL?;j^@r-PqBM3P*=^#y%qwCFzAWRnKOVY$crDsfcQd#6zsNQM&@A%6{ZN zN#g5MM?%l(cgSQnevwS0M6r&1*zdhaa)TfnSv2gwZ4kUbAlWTQ3B6k@zDUX-=x!dU zP1ljqW8Z&~e2r)$wJAEbt@@eL6SAVl3j|KQ{eZyDVaG;h$ja9MA_xQ~Op6kTEfYy- z(5oXawexZ-XHrk7({BGT1WMzFEy7@>b#NI24YAlHQ=MK~hpz6;pgyYM zb)%m-J)x4k@>!s5q8?T+`s#er%AL<3$gp7=1wxC~+t2+WjylpaGrF%o$L!pRd6 zhyHq>B@iEUXyzN205W^p^f!(|mN&XPZ!kES3{fG|Yu=0>NPE1&(1T2`aBFz&bv&Ag zf&HG6g3_(@FFr7QLJaHq7Tzc%k=7ITom=>PBZp2h;8aVw*R;sLfPxe)78y@@6s2y} zM8z^lt5IBLQIzRc}eN!WwzNlTnSC@VIjI_yVV^sCgw^~RL zd4J$zQzvrI>Clj?84}NqEuUJYMvx33FBW;Q`Xp* zxw<{tHcrC{*glFS+$+aeqH%12B z!@n(i^A3X(1`3Fp1krL8gOhw9H7iF=TVtBol0i$=pP0n*0jWI4m~3}3`C>mNomu1w zk5rxqQd4|yBAS~axyTTG)nsRHw)F8oRg@ZOW?go0RME!i8*}(^Aa4Y>6Pq zMgWC~I?{RkaL*WOJA|fX(x_`XYw2>z=O>x(7!5|uTDlzaT?aeZ$=8foOP3==3`E|~ zh8iDz7Nv;PV>uRZCP$rtaeynQxlb znP;+is2ybnEFZtfxu+BtO#Prjt1l=K*vVahUd0V_Zp}p?OCTc$K^$% zjl2V4kBz#~=}lur&2zVH6$EO9k51#JD~lkS3G5-|+Crqd5NHkVn`W`kUOb_S5!qvzJv!W+-EJK z*Q3Ue7lO7Y4Px(JTZkqvgwsM`P!f;luroa6g`gCHEbYE)$#N|_EO+y|C2<+AQre57%wcXiO;kLkZ?VHE}yLu7d zGKfwfAXj=TmX@aK=+OhPZ|szLE0&hBfI-qiAVI;&jpx`FQKcN{3D_6Db9pOfOZg2r zQTN8zqNRx1?wImQpxld-=BKwTUN>AlH7qy;c$p3;=kT#AbxQ%bCAiWt= zA>q}Hts%EsUFqsHdZKcIuR$?cY+1@`ZN!@S0YM8;32X6yhiCz;>cXfB> zq@96PzW1WIWy%<69h}yo7oF@>41+Lq!ccqNQD@Ov*Mv7lFKV@=I*ZQhunbSmo;80a zF+tD;JXWKS95wCPt&UgHOIu8I4R_@2^!)x)TRfU&#q3zlA#vxZ!aKxycs?@*?~Gk! zrR#?V-E^>J>R!Bpr+ocwbn(PazI*Wso?X6f(VGS(ORx1Sr~IT5)TTosm7h&{#>Few zdi)u&sf?h*6PY{5pP`l!fi90uLiX-i>*TBIn%qTSboceM)r8zd2N1MB>GJy@&OGrw zze}{;HW}>; z6ie`IrI=iDPsWMaM=_a2hNH{$B@(Wnhn=kD$<<^GK@=*?QCZ8AQ@-nPuEudXCp(__ z%Ms|r7nL6r6cKq8I1O18dOVB#H0q(}DE$w)fBmb01{i36&KibLV*>NF&rN@09i>I% zq8;%rS<=IfW5Uj2vTWicc%p=)PkKxkXT|im;Df(g2)h1KH)2?6A%=YY?R5R6Q)ASw z;5pQvfrL}%{uGjTe1D&D3Ja065P1C^wUME8bs7W77LlTNDwqcIO)+hFG)?RO64@4cygrh)Fc2K|xuQ&bWP5d2I~R&hMz`;{FbEPsh<`GIa2H)<}$nuan(s=kzLbe`=E>c27_TW zvuNIR*Yt)y=tsPZ2ilw1kBC;ghnv1PJ7H*u!HWD}6$2?ilkrZp;?R)zxX5aG>IuHTCrcL%Bdh5Jaf@9ZZ z@-|6-V-}TV?%b;POCf+ZXVULj#RPG;J6{+$DshM`ilm)Sghbw8ph5~+&|$?y*}A$n zNQjFx;saSb{ScKOw9%gfV$z9$qQ_yqxDY0`3we9SAP{~W>65o-f8^BtfS{0w8i*A# z2qZ!W?N7_1mPuDbf^r0%TsHnxz~hBs&;gDl%dpze(4Hy;N>j)b3Hw{+jQ(6(2OSx< zzg=5DN5h~5f%DhVi^3UlesJ2FNb?LN?VPsekhdmf>%cj-=)LqWE|WE2Fj|OC3*ogB zBSH-bN)M> zff(44_*v_B zd~V_R91z5nF&sgUDqm-ado!pjhH5fVrR#(Wfie_6DuvgQ|tQ-(sSPJHE8JU3z{xq*?9W*}4Nguzt|oisy?Hs&s2NI4v6 zW8&C#M6H$_>c*r$LE_gD#d%5>A#|*$8=-*Qf27GS*Sq9vf zQEX1CLUaRb+1N%HvSxYwNgpVlUs)G%&>c$$Wa*qx+?EdhS_*u=82mfV#Uw1n5Mu%# zS$|>z^JLVj$xu6k=y5yRqMuRgPWl!h;AHC$1U$I2mL^^8O_JJk3@T^yEQ5X}_xv0V zG)~zjR#Ex4<0KK7#W;->c;4T~}* z_3TIS8Ar~P#Ah5he;=cmDW`mTljzt8tgMlua{`g-D=Vvx4XR^CF;#|mWbn&Bnf*qQ zq9eW=4D?$XG~XMe)|?zFf8Y8Vb@D4JmGMURY?1aF z7E;L2ImCoqQ3mB|92AS`HQlqNl3Q8tYb32hv7j9C=D-%fPejm4WHBP-(waaF%GdMk zMRo(?%}NmQJDpZy)_zBJb%Ts) zVj^VzIdVc`&=cb-7M3nQB9N+Y(jW$Lbkn# ztg2q6I!~EN3T*V&xz2a+Q2R2#Y9w*~K}|Ab>GUIWORZ`W6?Oc#@_(V2MWqUPDTo4| zjh3RAGzucTYWXF0a<55o8d!T-Z~iOjhNy#!l{)=1->cL+KmKwGrZBG7c_9RebEk_g&S z5@0@N>MIE3SU8Y-efC?Lj{~N65HJ`ADxlQ}u1k(ZGFuu*+!`eWWcPH1AZRz>GuJF3 z81il);n0C(#&sMHnU8blcMxbpqLj`qZOFXbko~nGaSgCOsSP7sixgiNhNJcbUT5d^r_SS>e_ z2K^NT8kQQUL4WpFnvV+fcM#}|LSl~9vZKpqlu;}o9mQ5{735ej%8vM^WV^HqU9MM* z!VxVy&m^t+*#5bK&?pwLUEOPSW0zy0(Md^GwzceN@<~Y}YXj*Iy_OwK{SlMqlLp>v z&-|?U^ul?C01dy#K%LZHR7O$D1r)X(j?`*oXZ1t5F!Qclh}Tt){zJo1n6(O?)y+Ow zh!+S_h)KN6Aw6rJFmxG1Ck*7hUb|7s%Ro2ETx6K~r&r1s1oY+@iNma3%a5zc5S$?3 zt+tjQ=T;%mO(NN|rj{DyAK?Un41{X=F=PnD#Yrda|5^bnZ%Wd#PA47d+A5d|!3aVp zrP^BQrbD1j*-3Zt#EFutM}S}ifwZe?$3&kh1}dDAczVUQqna2d2|xatroN;OYK4=_ zMFaI1f_TKo_nG-PpLSC;Oj5QBdPF_XhRr9}`wy1EUv*0m1mcF(8cwVcbO*u-1U{DK zQ8sx#TY_AHSlDd|dZ!x2m1rS@NCJU-b5=o^45ASTnnkLC*h9rY?-D^nthFxWmZK8g zVn<*X5{X%-WtdaOK)(Vx4{61#%}_HX@h%)kSdo`y$7@BCK^V1!@pZzFQc3f1Q1A)^ z74?pz_DIV*{fs5A15Qj1$65P457Ev?fAKpEbabM*S&qMbqr?&GHcDq)Y}de zlJtVSYWrf$y9(lkq0=&;qjm05NgMJq(A~nZ|1)akWXJ(YZXg}`t4PW^C5N7J8w@2t z7pgTOCu^Q`)Z|ti&NL*sagOs#Hh`Eih(#cvjvD8;?D0Ildk10=2)OEvEdCAk?Q91A z4YCwF+a?XQe8@)|%A_f@QB-SIAN5IzBqzQmBQ5KsOC!Hxl4DU$e8ogs)+`zp-9ZR~ z0QKx_r9TnsgUM_Z45)F4jI09$SA&5h?Q`PG74osNsAzu&ffUTKc$r=k55KEj_Vcs; z#xDJgZ$InD8wqvV5Ga#`RII~)kRPsyyPGuoHpj=*-8%%G5I{LUYspdV22ONI%HRF@ z55cOQ*RFyfDO?hIm^IbW6)J=v2zc3F?Q;pYD+pM{=0Kh5WuKcp-a&AJ0GVkOB}Yw$ z&rb+4g6T3lq{*!rHe1i>WTI}jumj&C-*c+I};i!wv3d~V;XfpBDVg>~Tjr5~A(h0?sg90bRGH8$+ z-H}fJW2n!0vk{0!Aa*Tpy9$E*X!F-I?L~EI$61)6PLx+9_05VYvzrWpB=t9uetPW$ zGc{2RD)t>k4Gc*)r|RxG5#j0VD|AjZgfCY{1QasG2VxU{k??Lh6 zNRXkc0sv!dqz}cB&X?0HUD-hu&_9Q%dxCeKAv1ZDDb|8q#TPs zIJy7@?GDP=$jdpSkmoW;MSJ69h#@uSj6zjA7)fzKof#tMocu53u)yOh)~2P18i*yY z1W9=>I={#_DT-3wS0HeNFBY}+W0dsUQr;e<3A?D&k6BxYlv6i}M=z@NW7QTyo}n}H zutJd{i(Om@d6tk2C>DtXAwTDIhK2e!=;jrRm0^k*Q`Q4XBX-l&oCMn5-{Pq~VCms=BqY6;}+oSYY~TNB{sL^g=@ zG*3oKr~CMjLA2> z^aPQIarqo)g;Hek_#dP9SCwnMDnd6q30BsQ=VpW8mTe@ zF-}?yHyGZyT9JKiBE`&B(RpslLw4`2A&po)`}_Um{y4|;1A=l@F<}llS9RK<^dgG9 zp3~+S@(%5kFzNQStq4L+nD6b@jF>&+`!{j`L1_Zn>9)NHB4iNsJLq+I7ri=D{T(#a z6iK%ZB=?wqf2s+5&Im*!5aY-=%dbrYC*A=g$R7pSJ*RTQmJDJL2+|y1wa%Rl8H5uE z3d~)+fyseM*TBHh$ByitV@)GtFv4Jnp_nk`>u{3gHVV7+){9lHspFUA)YGlBz*^_{i%yVWnV#*Z9Ep z+h|7-bbnm8eTAWs9Y~PAH^~lJwF7Np^p13zft;QxE@HgHum}U$VQ3i2cAy4*U$ia5 zB!93hW5DaXqm;tvTAZ{fW9WndZ||XD5zp~tHlR4)wF81MKDA7?_3 z7n2w$7;Y+^5`?Ag8;?u<>wH`y?A<6nY%zhTj%U-RR`1wq8bb?|t2`3iXy-XtlsssWR^9C|{&MG5i6hu8-D2+8t(`x&GdH4;$Sp%N#Ha>r*1n+ug<+bY*9f6}@D0JULxd4E(v{sBS1 z!$c6}-+`48+qg(`glj$#Sq4EqK`9L~dQO%oFEOBE`VR<<6Okf_UIq~e0-1jUDLoH2 zxmUGkK%8omI2GO;Ax6x$s}Yl=iM!Jg6(eT5EKKyrTzhs@R~*^IY~nJ*?2j9NXUFNf zk^S2%f7hG8G3amL6EKJPH%8SZNOYwm1#+Y&va!o{0>792CU+y zMu1#VJsBvXH-9POFAUns+YbnL&uO+Jo5yyLKTIuR-}0LJ;}*k7B6=g2wg-Ba4UuFB za>^|lVpR=+r*n4XR*k8}$`1yS--Jr1P)WlHvwwRd_M1>i+Toqbr*lZBGs{tmR$X*l zd@`mMDbuPLI>}SfaKhB&h$6}uNGoiUPin$#QGWV05>2Dt#C-OJ3Taz|2dZU46m*~36wmwg%hu1 ziLdZgzA>=%I5|?Tp+#$}-WW!C40WTIX&71=1EmlYt(R7_^jXHx2m?llrS-!-s~9@I zwm4EQEvK~0#}*t6qk}>JLd+>|*RX&g1{ng=n5E^EW0egt$PnZZVorHm!+sf}p;tDf z;*Kr8zq4$JPKLm6jr^TcUt?9<8WW3ClT>iW)STP7VDLl<>S|G$4w4F zb@Z*ackVo5KNp1>J$-llZBb}GYI;PYanr43l~#Ra#G(wJrpdOJRgUTiRSXJKl-VM6 z=j4>-<%WS|{T~qIm0Qc`W?AJ0-&?kDIgqs`wiC)y7S!EY7_hDVad*dGMRe?GEG(E> z6T3UN3yJ-?CbKX~STpUVaa)rC5abh1KH*|vsOl4ry2M7xb=Jgg_$Ar#6|*PZ8_3?V zrlppvdTk_K8-pBTY7j;d0ust*>vS;0T4k$3pwzZgfY=g*tXAlP#w;6Zt5|PZf2-Qd zAQ8i8P8j-^MGW6TXaoVzMAv#cmlFvfAMYd|PgczZd`IG>l-Q{plMcpG68b&LWt&i)ZvIh9o-}*+C1GWiycA?8XsnL*mZix~LLG5~po_ z;q;gdt@C|5l5fxA9ZC5tvUdDC;vH}9O=1@g94NGLluGv-rM!0_8qxAGN)3(TSRcp; zlFuKM*`HVOc$FYApJ#0c4rJJwxZ~9n;uWofUN}f`w14n+UVo$7((#~IFD3V;KD~>t zEL`R{8l+zAtbQPwu2&q4je{wNT0pJ|a+=iLdUefJp>pF^#<8EXn5Og(vo? zVDf_kuPr3)*!}|vlNSn{m$HdH9kZ#S*yTNTl;RJ1>e!OvR943TXzbYsJ#|crmF2OJ zXr$$W%}(B=i2Bb!q$l38IrZRz}N*`DEZTW3nMkJQ-!h zh(!VcsP|;_GmYl_@`XcCI%*ndFmbhtMMBsNNVJlay4@C!j|R^zOnhw3BJVd){n?0oY~f-?*Q>kiIj_u3P8n)OSJg4$*Kaqn zh57_9dj;+MY?M}p_5{yfb_%?}6ZIMmsXEraPr8L*IVf0?PiVoiU-oofhVV&-z@L## zOs96u4wIB^HuarFqE0Wi*H}q~_ODusb3)}m;q)gku}w9nEMDJp(VuYo6WW+itD3+TbR|n9^4S!V%JLEmrsLC!7n|bqJIj`6 zWC?m{OtDmXtJ9y)56_kusiqb!Zy%m73`rP*Flf=T*D=tof$Jk|X%FyTzBT9p-W((L z`qKw^K60kKQTzK$)48Bby-_adq*8$@Xof7E2jQ*P*~}v4d6HV=NCM%Kpw8{=IgrOD ziH6X*K%UOY64uI=FtP+WWr~*QRXPGSU1^QIAyen5H+3uQ11N}t-sx~GRrP9@r{E_I zpc4v_);P-`I<-BKl3-gC`kmz(I{l7?s}v2%I^O@_cf8I=()pk?`^?tKi{%mP4Tg>w zXmD!Vx8=XyV8A1qgD%jmMa)&zMp#%O%cRbZ$kzFQ6%lXjK>B>R`_{G=FK1PgZsAtT zePIac zZ1zh#fHXYCYMc#mWa*rAOh0L~y+J{dGJ;Nq)&swdlrN7MaE?^>j^UA4oYbAdDH-nB?+ zSv{MbwiOJrgVxyjV1dOmhKUlx88}+$UCSs})g4-rI}ijdp){`^O&XEuSiSZ$S0^ui z#WMy{rcYY@iA&=^9OUbZ&olnfk*-|w8cxS48my1ERIb%(sfRjm{xTOT5;3)cZl`M>iwNmGo@`{ zeqOVapK}u4L7-TP4__Zztn_MbO~R#2ThT8FU0m~X`Pkae-3(F{b{l`%&Df9o zRFYJM-Lx9z_96t@A<`+SHL*nL#l(6Vt(Bn&Wg)rb2bw9*-Vl_`p?Ir{+jW+e%|Ht) zC`8%RW-?+|&n9*nBiSXF^e?;`ACk14lFEao?IIi1>w>E0oglcDPR?CCnV87^K)@Wz zwF2d(o-jb5OOxtyuEoe%ZF45>*Zpw@%%I#fXUL*67+n=~Wx5t4Gs|WOG6Q*omPn53 z!#`1PJbv|!Ul>x`5g26*IJlO$7|&gMb+4*7(4nBxq-&XE_TssuzCmXr?7!?AydVrZ z6I28WEkH(AXZIHF^9eEotb2Mm!&&pB0KK8TV2 zhDte!&xyeS={fFSAs{^09cag}C1tb7&N+ebvPV!Vi6Q_VS}J*|>b##j7mfeL{L9Y8 z3j*m7G$&WHE;Gdpj*Nvmv`8(R9L1+aqKa@fs!FDoOkNV!UJxd} zZW>jHQ;d?;EtRywm4wdxOw5Vu>`{!-69oXBcsb)MYK(9CSSS|jvFTr!)uSY;J11#`fhv4)hg+`ihuKAv5Q6Hg;9iDRC;uCnZyJYFFo~4oD@I zNPj*{mRK5y4=Pe`KpT264&`Sa&!DkVm|L^d}InIQ;6Fk zE_-~qh>o~~^yWZ%&gqO+Ga6=Huf*#M={YAuWUKlF#fhXNiu|0vh!f+PKKGmRzCcVd zPL#!4I+5UMDrAchb5;kgNv*>c)ke0+X7s4~M5EtqGnBM@CXp`*%& z@JZW^Fx8GWL=e@P2v1Uy9gZNxfZ5CZHR8xjnQG2?DaSYAPWJJ=p z#@Cv4PasYy)Hg#gzH7u-I3T(>e{-w z-pdfk7bsuSqGQz+Sdueo%ej~}mJ!eefpcP`e=LT1bwRKrAeDHCs-(A`@WMbHcj~7N zEjDheLO}jY1{T1EMqbUb72cDXhZY-s7a>fVz6e@1uceKb$pWy5H!+#<1*1u!SXBQ5 zwoEbx?Yh?>j4}k`G2@dO$ygySnZJTS>jr`}yxQm62JXC(&LppY{L?$ipQSfwe$~e3 z${Qa*u-8s=%w4IAh(xT1MkZkJGKfhaX!(Q+!pb0$K+w8@W25BFcJ~iJjOQwk(Mpt5 zEwRfWFisneP1;n&Sh5O&Zf&DQ960b`-@mp2LlOp(&N^!B&&O8g6^0-?kO)cB>@drA zpkj+TsV!(2Zp$rjJdKVgG3zy_-1{zlc-euNX+}+c(=cTDUl29Th_ETf$|wg2RPs(E zF%~gY#;jtXqKgqdE=3Gp#z6isXevwm7iE7yW%o4V$1M>&Czlbg}>t_`MZVSqWGtD9`Yh@V%4f-QpGVF5-@f8GIB^Ddg z+7Na1MiBz@cWF6Jh`iOyACWJAL}LBM*dP+J_O3#}hFxszoQj03U4C6qlfrRGkv1je z_q!BehDK&UXV7@7YgPXQt>0KE+a>a`vg`~v8~6hOtdOGeXxR#lAfU!$YTH6B`8ogpgWv}!AVCjAK%4Nr~MzpDccq!1mn4L0ZJ z0?}6xoJ6XyKAuba6?2v`7-2w%+#-f@w*<5Kn8;5=B33``NGdnZ24O&o#nd8X)FF^g z78X6`kPbzZ&*dO*z@GlpluznU8j@8slvSMP3E6p*%ljKUbg~1yY38wKlhvM0JTmHI zqBavUutFr%-$9@=fz7k2Y3P+_8)hf{IvmlRVuE*t}Y*gkCj19i#-2d3Cxesy)0(azGPX`%6qBTeXQd6XgtP7!!F{57U_W zxajf@1IZ%cLmz2Z4>a=f%gP@G%Yr8X^K-qjD+osFby#db($y4qI$S{*BxZ;V0@{Z( zL_we{44p9G3>s}iIvh+d7lo;rY3L2RshNWn2OUU0KN34OM7VNMKL6@xG&&a8EkVB3 zA$2GZTaaA(4+QXsttFCHcF9Kib@30w)IG{Mx)>KBzBPRzHzpbT_<#~_9 z*7^?wNT#=zMvm&d2PslVqIMi|tfnSNeNzja*j10fA|Mj1PAhnOizy<>m-tmO)_HcHDT{dx{sB zl|j(&pkURf7Ob-TJ8&o}oZ|#WOcxcq??BM$a5^1Z^NB2<4!Xb`AD?}k=YjHTb8@7J z8;)~weRL5-IiDcbwo#lI;^gGA;^ZW$;>PdRxEBc15?w3DiAJZR6Hn8%-(l6$kvQ`o zzuRwLARuBM>epkGF&JUMOLT|DDw5tvoVEZ}Lt-+qwkeHo<&ha5BUoLmVfBqAD@*!Z64q zaQSIRR?bOhvFs2Ou^Uc>^z(kCs5YPHOH>atiH0H%-9o}()nQf=)r*#7hm$j zC>mYiHYE%_%5&y4P( zvA8LRa4k;GR>gqDnI8=JE0Blm|*#6nCR2Qg-A9z)UwUQxzC$CFaZ z5S5x&oi9hN4U&ZkajMd*LzS%OzUb13xX^RI`W;5<`kVYRwbM}^x=y3j6Lf7LIp=gZ zW>vY0CBzp=h{aJzEvoI67luarlBf+ETQh{0114P@i~4>k2F&u1>0wV$M~cn~gn1bR zt!;8lZ)s!F2}E_qGbUNW$Py;rUu8?sLXw3f=bo-!qE!&tX*&#N`oz^aoQ__`K!)gK zh}1At=h=Q$^zil(#{b?*(H!N<3t?lQ%o;!Cufx9Fdd0IM-W*CL5Cyga4Zo-`E+!O+El-t zTe>--8nk1PAy9X&ucqA`qdMi6wCpbF?WOKbs>_Wft-DLQMAuMJREG^YoybKf&O=1y ze8QeXW>TOa4p0An$b5lluYKr zaa}SS&u28~Dn}yE8HJZo7@@$s9H~5`|G^m@&zWveA(gf##UEz6iA(Q2P_m*Una56D zuky&qAWJw|VrX7bo-E_siU)%Cd5WldyJtq+5 z@irO}@SyRwE$*B1ItU6^)R*33&@6NQ5?5RQfWT`MnLVc?>eYcNE}I37w-LD~zF#&Q zkE06im|G3v_Uu2LRXD8Y98HXvyO>XqJR!B{2Qqv7EAoW?#tcbjNW>s!m|6Z6gD{}x zcXM$kWf?;!45<3uLdFpwRFgrPiW z_#2mA7$z;sFbTtL*XxA=$-&;S5jv31b6U2y${5HWlKkN~NaWS^HS=-dpLZ-9jxI*Z zEMveMqtm{QE(Xf#5D#PCN4L-Hj|Uq{DfAd%r*!oeb3W9Yc$h^(BxPt#jhqj3KVm*?Od$Z#E#( z{z1yEk;c;xqfE05B523er0q&6Z3X?HcsrjrxzGZU#KE#5?$r6DTKERUq~%77yi(j2 zvC5X9#h}4|V@q!N!D`U?MuD8vzbRT;6LrC|41)B(k;XHue_MC@4F)GebTWh{^gGLT zp#7YU)~}f;gg(j`j4+^6nkMx-%T7sho_i4nO$t5A7>N71DZ4gJq|K`Sz#>RHXc3(z z_WOYf(wiVf>mo?lW7v|ej1T_Bdd?weI-%n{^e{22EUz%3Ys-*YHju`1UiaixOVInf z(aG??eSi1I-R83=Swh{>*vf|JWC*-6TuUo&iSqq%_txx57__wVlO+Gy5Kdzn4R<;Z zr1G395!Kf(ORR1u3|g%0m-iN|uAsdUv?kG~n8ckM*^{%(XJ2!r+lw>k#e_k%KRBgJK8yLvJfy)%OR zAw{RWd}q93Wp5ZOX&fP^7O-!r^8Im@>FhWTK5}XG>s>Vj&Tjn}f+}GRqJsQc_|$ zwMf~D9hJEl0>+0a?vwbW8uAVWh3i57km`1{T}3g;E9v1${GIsDKGSCuj^!yMEsOCF z0?+HwRZX#dQ;JQcp(#eo@)9D)`OY5@csy1UK~$ezj&;)?5Ev#_7eTb@y^(ZpP&>)FZ+9HuVW0;OO(m?5FwF9M2WLcPr@Koe?@TWy zR8+XNP3i3tGt1k`Ef|7w>_H&3%yPD}At+4IduNHU@^+Z6KTbx>j*H61)-ubirr3_7 z@V2Sdw#866X4w#w-l7cC*jlK}SvCaSo=!i*L_?I@Tt@Mln(ti*FsWYU}pvUW}=teR$f&;cFvJH*tos=-7p1>+XeRx`^g zH5{iKZKJ@8wWb#ItHKF^0{TWOY1YnCZT>ZV6)Nc4Z)^MoV*G7E-=7Qm3%Re>#CTcW zC>Tg{v|oDk3xwF^nboynfiy>3xP{kRXg)E^RVp0Bo(-v7*0k)>%QpuW(|<4|Vwf6+ zR>ok2ArOO>T-q*U7=(e&r#55xfwJX#v;CF!5mUHC;?C*risBg8B+d9FpG4x$3Bx2^ zWl$Skqb}|gcXxNE#e!>br$vIhYazJ1ySo#LI}~>*4h4cs(PD+0_q#Lsv74D>CbK6; z9=$;4VlB62e{tZN50xHstZe(?6Uh;rEzcXI=cXuRqxD|K*I1Qp@&O=;=t&J#G z6{sPy{x@~?Gm9`hm1}cmIK;9$$?}s)zOklF%V{ETcU|33uLaD(kgmR^crN5%i`J#Q zvOMLQzI-cMb+kWEq@p?7kdKa|9ve=_0DuN4M~Cm_tjI19z=-4lHdtJY=a8^sBnk~N zaWR@EsN@GJkuvSut)pC9Vt(ZD(PkiHOM3``z+@$+fg|BR^ou|7q=17`%PZ}z=Uvl2 z2g7R%oD#06}KF-yqWrUyNkP4aI=R7iS> zW0Wctmwe{x9x=q2GR`wVxw}(2Cf%f`gK6|ZML(}S{77K*yD8OpIP@ka3%G`v0*ymF zHXz}yZj;sMmn{zM&}$;oh8U~)LeI1FMzwkmry-2Vsa~XrEM5+9D%Vw#LoC~Z!o%0t z-+60pW~eJeQcyym53%@4Wl(wTb?|(hum;Ww~dI0&GvYV zGsBCF!>fLc6J@GQD`5U!AJ5cY-sz{?k!RZ4tDQJpuG=cClH!mI3z9$aI&W4YB3C1u zZ-kCGlY3F#{ZQ5muw`>V$nQHnGS zH(s(n^$qhF@pt4(7Z_p&_g3i7#0ug=;DV-8@sMcjr7!YH1Y(onnHI={Sb?OCUtOY? zGDIQ2pggNS`zE48=XqSWMoik`BoT>eKRoFPG^{NI+lh-RVZ7sGzTseEiTrVP4kn^- z+1Pd!!3hJwm?c049~WwRMfhEI+r_MTj+4h3lzI0LbsDwSK-4S z0P8bDyIM~$m@qkxst11S8foE{S*R+SeN4$tU=PM#nxT99NSS?qAwsi`b(@ta8cB7o;LYYnRpUz z>$5`yo$Jd$L8Kfn-9MDmTL*S64$d5y5n8ttfUQ9v<hJb~jxdZXHm84_9bq3pD-ZYKSkk`cI%)`)!qe`9 z-;(9NH+r6|5$B##$+O*+kBouMC`O`>K?X{yM&vKiG`^og`k5cm?OA-3PQLojY5GP` zqYO!*8>Hp}0}EAA4_!DkJY4bA$~8^VTZ9O+MD*)ogb|QZ%m3Dgjg6gFQANG=6NLZe z5FSD@eO@C@e0p`WDdD}lu9$)vHsXOqSp&V(Yp*wxE|^vp!ytb73|3mU&npjOaHvdsFCz$ zk7S@3+45HmjCEoH2JF?)B+m?I6{Hjhy1cr)n&ME>F=WBCZR8)P*0tBW>@^{eCil>O zhK?=6Wy;uB&|BC${iv6CgiW&b9d@9?b%5kC9(khYB_JkACms{c$zkUp*?>S_g@*J= zDw)%oyIGgtouT)^e4)h5nwv-Nx^LSLSQsE;x_M8pbuX zg|Qh{^>@1px8IGeNW#hD?0)=tBX}+m2yF~%M71)+MT?uPKDX;xDCXB3({dyH8*faZ z@%AO}61mip<08GfabXQFpDn@vh`^FIZ;m?iK(=AM3(9~aKUWEJ;ie8a5B5Oj5& z(fCzjA1zy6_zu;Se1sioVNOmTK)8{})f09pd@#|G+S7M&*vG`LXcakQjkdeW4gTbo zY*p?l+te9UnCV? z!NADpx5g;)1Ru^ycSIIYOz4y_ocoRhUycW5O@b?Dc8&@+;QnTM=bKwI4qfE4L>#d70Cp;C2O@+|EgtC7h z6L^prvE0RmGfzxBP_=?vqSj@5v&TXcY)h$Br8MxNw1V7ht>*Kw{{ao&exQe#nc5BN zGj+L7SlZP`Mp%LSkqjb!C$9$(J(I?leI#O0IVCMxnQw4YjPd)T8qoHWVk1r9b%XF2 zPPRRS2$(??PCs(dDxFa|sXd2XhW-%+de(*rf#AX)x<;!TE%V zA>EK(XEt|Ic%8&s2nUI&7z10HKj)9k;G}Bb5FZwSwkmON zWS}GFBe_cUgW)6Rt2q3bIQ(^jwicSlO$r4$i8_dY(wMs6N{zwcXvK2BC%QlCw|udC zft$`H7FJv0DuARVaUxt73lV$0F`vAkL9`RV6{&$_N-bXSp;v0|M96H%f#R>~v|Pst zD>7eTPJ6!Ue#Zk#aFk|6)@sr=NpL&hL#fo>ttkM8*r<>9`Kma1oamJpP9={anNPORNLTM^+=AA(rxN8LvJ7LbyguW3)iJp*~^ua;yrR_T`KwV;p-pL zH!DLeH~QrVsBmG{a)YFT`Mcz54ddZw~=>gSScK zK2rLJODjK@P1K)31oW|ABJD#CFqa4*&lS~DBy7X8{@ol%HJ@Cm?Xf$gTqD)5pOUE;89T>h2eDk{bB&0)q|z`fImZm)`o_#tewf@_6E##Q=NQ7I zKvy?J`|F0oCGyB>dU*7^wIZ{LXM}7v`qB@(g{sCIpd=@2Hi3-q$~fsnoT#P0+9qz! ze(;}wFjMuQLGBDZl)5b_+(O$F5V={q*mta*F{LmltVgM)!dkXo_j}6J>}RisfYX)UqH> z6k3mOEe)4iwt5J}@hRdQvGQf5vQaAg+Aul-v&^8nJlml+G>ys;X8k=g@@IbiT*q(A z1H&fcOD603nCN-_Fh^2J;T}`F6EhMBNZCT!+1aTXIhlE?W&2f2;L-^UhZ$-c4}9## z*B1r4Z-pPC@R1I_-iJJdq`_IxI!TmIpB4vctdTQisiv};m=WmbbBw8QMCsG1H>j?; zFEhHSyB`Z79vMJ@>C}nDBH7f#cU6vvipGtPEyEQL9Du@KEQr~FXZv=WBu}(#S9A~Bl_yX_R(~XK6xzoh{N(5 zM~pJ-ONc=E=NUceT}1;rgS=c)+z&N-Y3iX!1WA9X8f9OW%$R_z1^G zNF||Qbaay6)$jW^gldvIhKX~au+|>zHI+x<_OKqYI-;aw)CPs9GelHY+s>ZwW`}Ptc2H})cLKpO^Hs%SJ`qQ1l zm&Fv-Q4vh!bk4bJBZ~XNf~HnlUqdSL*=2>%sF3ZENa4x8koqrPG@FrYklLBLW^mg+ z+ZVZs>2aJSAQm1&W6Dxj6jd=gG<%|%EYZXKEyFaYvpYU5GQK+}MJ;uso9)|qo~1=AF%5#IMwS zbppBvC6G$42Ue5GCsInm=5^{MAhz87wOZ9BhUz|P(&LXS^jI6!M3p=XB-?pMGK%WU z9p0w>!wWWO7UH+g#p{8ArpI(;alms&gWTBaB^k5(m8iG*q^Mi2c7sfL*@-`F^m!dZ=uYXp?v~x?R3Ww$uj=$Nds^^1MH);OC z!Ir>lKn*J|{q?9fr784{J1fRZjwV2*-P(JoBzR2>O6G&E_>vbGT<8R+87+lXcQ3ao zu`E!2`J1h19KGQ7Z8RVbLB!_ds+V2>{X0!;!+(C^E`7C@iG1za;LO)#yf0CR_ornNT+4dsN7; z&&s^g9So*R_oxe}E-u5o(QxU)%qAKJ__opd1c`gOmh ze5<~7-onXqHV_LO49af$kM3xMNb2=eWSYh|t0_N|y9bn2x_!-mI>4aE9aZ%!M}`vS zBB1^*+7a{?e-CMm#^NJq+xto5a0#oD`L$KEa$}0MLV@E!d6}uaD#zSj;%?>CvHQ)? zV#*DbhQ6j~A8neriKy}AWe3GB5nY+G05uYuVh6>Sm)3uT$VRQ_(wWDL{7R3|6z3k{ zVVz@M=wm<((CDQ+$36P3RB38JjBo*0+EFdcU(sG}7=J{cG*Dz_6LHu1@kt5cYE`m;JDt|3( zudt^6lM5=DzQ`j%K7K%1_%M77Z%)W{*Ox^<{>a8Y1Xi#|G6-$i_7^TO6UM_?B3X>SJXDE!(QauKa3ajNu*(`H)Pd-F8(e= z@+XjL^c9*393SgxIWP-DODIivP9&i1+)N^PF?+)m5xFT(C~7KuH00ba9&r0;sDl<(SXh+K^VP zGPHXr$Yjmg0+{(jU@t^*j1+w}W=6Kb>1=1^&Oc<}nr+9C07J&z$~8x>lr_ivL2UH3L0+SN0r?*!RaMi8&mb|4DOS{`oCXit|xsbjZ2s+S$Q)A8B}3Ful+c@hj>3?rmxp@jsWAKj(Mr!cOZQ2JEjt zariR&GcqEqqn=fN6z183J2YZ4O?rA4!m4zG3Su z;CI4$5rKH@u|r`HliM4t6?>q>w`fu`aIM>0Ha4;dIdd>m0p=$71`ZZineLWMQtM?` z0jDwN$7DDG=csXIFh(+7Gm;4@wb(Ex;DI$s;tg`%{ii)D>c@J{7*dwRN1nI6HG~2W~E>= zL-U((uG0|Ou%qs;?&<1mQXn6CSMM3K2YnfA@UhwaJ64;r|DSW;|LoG?=T&t*#wEv@ z@g1=a6Trv;w@57={N8JszlalrvCQF<&EN>=6wlYyG@S8R`Cq4xu~`)7wV?qIyhBN0 zT!c9Wvvpvh$)CeL`Oa=@Uz@D(B7dLX_Jim0f@DfH2K7475`@9yuc4u)>F+XgeTA1t z3mTI)%dsrXCB;hqQB@EoE3H-2tUM7mB_(!oy{_vSEUgUF3azeBQ0Ah{V`+8Oz*g9A z4GXUUWB*>q@DpSdv3Jl)PJg7S^~;lF$Dcgv;~5EA=t42woN*Ofc*KYw@q>Vsx5j0H zS+xiUN`cf)O$yyloFLX=miP!9T#(%;_OT_$9pNX;yqnq9=zgw=0)D~H;fP~rNM9!T zfs}_X5K6>aV^(tM?n3P|mYu1S9;On^wL8#Q9zN089j)nv@b&x3FygEU5X;>TTB~U* z+Fk3pe~__y+RPx}?WymNd}L{_;)>cdz&lBtrWw68&In%OnPmQf$oV{>wqx?WahAIe|JVHnUNuT?7bLwt|f<{$r4Y1S|1 z4vsr2{-_|qRZUA$sz>O6gP6jlM+~>@XlRyr%3(^hjH$^mzH0v6;WHh2!5!HSsIUj| z@s5w~>ii1%q8kPqyla{$r+neAg8~a0ubWrZJ2Nv8Hhj9YhYuc1&D68>8G*YnECmq* zo@WN=Ej<{5TF0%mM#2eLOV$H`C<$@C00FR`&2q{BO+RTEze8kGGdgHW0^7{Gs2P99 zUt!bm`x%vw)iAT7489Dbq-7^>Vy~MN_Od0Z6ThCn&{5NxXUp>L^o2qU2jUDp(T&%G zSAM{iM4}$7fEW6cC?l4Gu2Y>5yi6Fc_t-C;DfDG_uF=PBPDVnZa$FIBkLpu&P4 zW{0%zc?3a&r$EmU3b2RPq=3enIY`-aU$?5RVUyN(Ds^sbcn1BTkDI-Sbj0!#eOfw` zwHbBzgk6VsWLlgVy`}qql*V;z27M*2DsNl5N~`q$a~gwB49Q-yT04F1iPk@&tY}*W zy}v^GK$5|seC#Sy!0PTlQOXCDfN$-}Nrac$fG->=V=8U2ebYdbq-cD&q#pAsnaR_T zNqx@5YRxKyNqu(HeTi-_I$?wAkAG@|ojcnr8B%O}n(^0++%%Kbo>IrQPL{8aq7*5_ ziT*s~vP?Hc!!SRm=uB)Z(Lk60g~7}`boRC*6DAnysdHs1f{!~4?jM5p=(I=6v$b`+ zVuVbH(%T0I${%49bP%~w;0cu9oBT#=x)N{ng^D!?+-;j~();0~i%Sm`$|9@6CMvgy zRYmVeK6|D=z;dcZ{yED444(!*KL?l=ntTO3C)ZIwJVU)~a_}7}Kfr{K##zpNq2ZMb z($lg@&9@3I*LjaxjMvPtE{-7?q$n?0|CH9_7?M3b)4+fL_zhAgCz^}lzoaN{Ofi-@ zvdT$dw>MHCo+_A}q@Hel24MFcoJPcf6(Ha&tIpyX9o?)?u{+^=bkrr|$EzFy- zSIzp9NzC?v&nXL;pZTjKx_IEssQy{8WL(mlK7RY~ih+nXF)Mx9bW!&-gyerG_$Kl3 zE8V@1UEuf&0e`d?`j`a%yXCR~>p4UB-lAp^Is{1hSfA^x-FmJgUd{ z@LN$q1cltNKjl%ye@#ARx)s&i?V$&?rE-Bqkqa@@I?rP;!&aW&zBvt%Iu)8>RabS6 zEq2g}U0F@wMe%paFOJ)~yG|H?d02z84d#SLe+kA1k#0V8dyP|yW2yOgB34js%~5s{ zP@AVs?^+YMJSvw6V!Y%}!kz{K-7!>Vi|dehZd4SJiZV4yWrfdv!-bDQX&)&K zSWcE7gYY|`#oxy0Dl|hiVIM!`h+~a0-m0M>zpa`~TOTB^+jSXUH}{9ti(B^dIYyc` z;}5}!KgMxPyI`j5_+7W4QeZ51@+**B^CZEcd-DV)Gkwb1bIkiVct9FhXoq{0Y;*uw zt<6{NY$E6kQJfs7300+bT}b#NPVN|ggpYx%@1|Os`;xS{0<2= z9O)`h81M{@mI)Y0qVsYgv(|D$%KeD8o_t)d@HAtKU#;%mzh+DL>m=6JU7jSRB)t6P zY2e>_vB5NXa`-m_%))lNYNEvnXn|b6RI1uER*PO#c1|(ii#rzotR17<-peTxOmBlU z&rCHfxh@>K<-J)Wd_H>XILu81#QgCE{}hN>R)-9XtQs zEJ$!|+D_prTzPtoHmdE@?~$d|Uy>}r7daCRMGCZlQ?dVs;Lrl~w7Vq}|D`c?POc|} z(lqNuyqIm4X*Y>*x#jlv%Mw2D|0zmh#C!G~nT9L9xi@)My7+Rhs7NOxGtR=-`uol^nkCU!;z^X| z0#+%2N{Kksx(*dY+$FjROpceYFrX;>WLH%xe*#H(0=VxpaN!rsvdT3&GMN(!8bzub z?ysUoGlC-Yd@p@tyh)k2&aw@b?>mLgIAMhfLHvApUA|(ll;Yw=B)rk|mRSM#ywUxe z6GBGpzu20p5jN$cv-rl_rKZ|ytWxi!YzT82@Mf*=BT2ZADp6F=bA29(yH2s&@1I6# znN->4X$|g!aMWxx+AyG&46GJ1dPEx*YRE=Xt{c3%mHqr6B(ClFGFxq`@)@4}cmC4$ zs#!Oi(=xSVjSHi1j%8HlGVQvxI{flwViEKM?8%P|N^{P`m>9zj8gOFR2e_-hSDBxO zYbn&vBj1AxcerJ+fW+hr6l%V&_S|NNOf?l6W+PNT4sm}(U&Zfm!hEC**5>0jljSrV z9LIs0EFx`|PpoJHH>85)!9}2UVC3p;dQq6L3YGq79~gLy0YZm}xSHuKg1Ma?JEq>b z4g!g8C`AhhT!2hN=M}B>xB3!?n9vERT~H(2i4J>>6~5h3h%s5ZpSY8fN}70(4*8Mn zSL`=!_)3Y4D9wBlr#fXtTO`H>y z$X>!y))nwlSq3$cWFbPH!TJ}>q>y6VlP{PUQoOrLePH!El z59IL4pnlPfJvXT_a(EH!(qZQELmD(< zLCzoO#c5uMrBY0#mm;=_qYaW05!v%b-~bn*l9WiUweaKYz|65Yk@5DLg^RJoiUAG$oh>z5tEp>sBi_FQ^D z2ig+(a)wa(#;fZRuhq&m#PUFO?@M2QeJXBKN5qC7Y&3K~*IOp#=fuLDtuR$g@UJWR z3I(m{;>t`F_`)qCAwcv4Z25cHpDQOmtrM8o?tEXq<_j>A$Nyw2h%F2RIb0xP1D?LZ zk1(@E%SIDTm`;piR(3_&*Ddy>LAu-)@<8e=!}Zg>Y@$Kr$40xnoYLG2Yz1hxxfxqo;R|d8T4L4md!fw@Wvhn<$8w{w zvq@HJf^w=TGPEoMh5-=V=!p-j>iI4a#3);iI53HIEcfk%x&pE2m9~;X-k{Lud;>b& z9pJ;W0T50IAnCQvqTjD7ZF7OYPsd3eA9O;NVEA*wq4JBOsA{cOu`w|KOfd_Z_wXUz}(T z(;#S5KP+g7qRIKu#ukRh5Fd5{?K@Q=emXq$giik^GlAGs1p!sbIa;R3$l!-4quQa4 zSXXNahYmfxFav|2?z|TtN$X1A#zg8!w%QQUUG`WWZ`tia9&*<-q%$a6q+y-Vc1m4>qMbs+Je z;r*g<&6uU@`RzMeD6 zf)Ld5F?6i1gXSCrGQwF*uag-Qo`C8-gQ!%Lk}xaGbgW=2<{SD;P3~1{iqf_>=>>hKY{V*UavH%Aq;u@M!}W0@6GX`hT)6>Xv}sm34|H3Gak%|l zsCHK#32<)vmY5S?F@KFWk}b#ijvo^EmzMlZwg8B3fsD6t zY>b}X19b~Pl>H&@bQ`&EvZ>s2Ps0KFJs;VNT6hpq(}l=>B{{g=P24CGkk7_b!=4Dp zMI0}44~(Z0GX}DZmxT61B&m1f5Irkv$LjpEDvgT z5A0bOxsQ=(oLPkSeOH8X_7{?eq-Zj<9rUNj=?R~8RWYmS+8s-su}^ct-_p{V@sC%}Ga7=}^wD2K(0&L0 zvDR|j(pyB@=M-O%s#(aXEj_Cr!}N-Gb zk$Xto4S#g!fH)P`#XFMe5rP@MBpr_9P~}WQY~CU^x%TLRW1)jGQ)Dx5?+zx}>@x2V zf7<7NYBg5-9lo+t`|+iD=F^q(>hjqN@6%-_L^piFq_Z1D^%8TXTTVUa2xf{@o@pG( zOcTU;zDrhns{V13X{w$?77=x(Oh-6NA7bcEy2>FqXUPXoJn-6xBKPA~8Bm{0shEK@ zVH`!Vn>#x00KJW>PWHK-O66OCGubjX5??M}0 zwkX-eXbd83oL6I{SwR*&$lvUvDlGkjW*n`)yQA;o`IrGt`09T( zL0^LAk|%hUxzq!uqA<7H2$&{~hNQ(FKO){mZ1JOO2O{U1T&uL+)j?7T{?la1FY8Y- z*ZI2q9QQfM4Ck)91qPJ^#YbLH66p}3~#kihPqI;X3zbJI>!SeSYko23y|L&96)_hRRBWj46D<@Q8o4OdGF%&S3~xpg zxx~gjc?6f%_o~ZvjbLU=<(eTW1hPgpi=vv~z0E!&#cCSo4oTNS#|XXnZ~d;d}r z==nir5vX!OK6xQ(#7}8B$fxe;SqeMl%P#x+NMy(4K7jAwNUxiG>{OV5u6FFV{Cc12 z0!0bbzm}m7CuvykV(>k-oZh=jnY7;o8Va;o$TQ65ru|o@bpEOk%{~&lMY%<>HdUBe zBo-*woZ0p2b4VL{5Uf%2i-K7YE7C9| z<;)d5BYh%F#ZH%iC8X}PPH4+LLtOI8sc&KB^PVr9AK(;xFxS1xs`To$M}n?JNIeH5 zY*-v9k)bg8H@frnKRu?|@erihI6)$LerKmUg%+nt#NHtZ*Zi@15@_p7z!!zU5Ex3* zCPoI2a)s8dpW{!T%sY}uKPlrjzZORS!-PBW*+bkg%}$0OX`c%=W$yu$Z^k_=5O>&c zO`M>81H|yc!*3hS$V}bIMx>xeq!cTYleu999%3N1b3s@H$TWfkl%%12%t@N`K! z%c>n0z3M|D*QZ~ts4pFOQ57Q3FB*RltEC$>D~k1`7x(x?dYm@4wYJkBd(gsnSFUKf z-bPs4JtX02ZGohY-foXX6Ju{{8+qn=2u!<#q-M@ft9m{9?96m$1(`TW(L;V!=8L<& zIgB=l*Wcyl*_KybbZoWQBX@pgHmZ0;?<24ABZf6BNEw5=Nj$Agrh@yT(wHRqMCqS2 zW6~%?s|1UZEe8nsJBCL@7ptj*!Dj^gxaH+YxsWe5V3Uw??Q#N^mRxCc19lK!HMQe* zhlBM&i_t(f5zEN5C^j^9`&@#b*yTQcc5jhapr<|d)zrq#Xk~KEgBAhpf_ z+SsxhH66qbJJnP5c3#>Ny7(rqQNmNcqz0r zb%zV-WI6Y{NcI)hGfc@V_ELlRi=BLRAHwqE^ zV2C?{Y37cJn+T;}ew0SdTUY2om?^o;_dP#D*(mJGK9PA&JVO~%AYR;;psxm^lPx2E z@w{>QUvgIp^v<%`J+*K6)y_s)OC(|mVQDWVRpH~Loe^$Y#;8(GKB2M;J zrLuhTpYxV3hHapZIy%5@+sAHbbV&W}>8i}$73&%vetV#_5EU5kBq+IXck8VFUD z{}&V*){fdnING1})bVG)TzWg|ic5T_upeHKVTCPjRTK%YqlQYJE75>;MbjYulTOpO zF~h|`eEP3M<dcLq-JhPpJ9v#C6D^r(e=&!^xlCw>Kp@@sNU_R+{FYizToMotWhhhsi)1jip7_fWkg|YWV`iOWfp+4~F;3~9!JQ~Yrg86J zj{!|fCgIb}5IV7u-xeM@+sG2}TOm_aWLNQz@ar&&pnEF#L|M>Zp2l9c`FmjTDFh~k zcv0k&=hHTE0%|;k7M|quOcUQ?P4ub)f)NdIc9=o=1P>}L9#Pd>Q+$O98|iH9aUm*p zvUfa?h4ZXCS(WTP@!r9>@hC_k?#VjENE0n{Ws*pK7`qDRFk3c9n>a&KIVv3A=+JI4PB-1VJz#r5AoEtNKi8ZF|1VwoAL{Bovt}N zcXe=d1vNtkBu;*+5|uUs%Waa$E){8uB!sQ#^RSo4E^k%P21!Tg1J+kyg7qCQ;=kB3 zpU__+W$KNk1w{yxy)kWwZk@&Zvtzu%-BTyevsk!Ms42WkX@i>NaRrrcqQV7=7u4H+ zPgaS#8gK$CXxJ;0;vwBQe@P5%;iQ2T!x`anw1HRv2$PbA<`!7p4}tm9%ZtaNf3C{o zKoDnKE;K#mZ^|9&14H1PZMuFhk391?CuN|9U$7Mcv$5Mp5yD8xgR5HC*kUu&V$sOE zJli_wz3+_*N>29C=IKCWt@={^tg1BD9amnn)x2Lmm!TPqO}9;>kQ~J{w|_PXtObh(I3~@^51!Ststm_Y*%gNC zw;Rx*TDM$?)dW6j(`NKEOEM6}kd5^7`pIEl=!g3&WNpD@r^MfB?{3Ln@~se(QYSR_ z(}-i?S5w(C^QiHeSDzLtlV4%>wFb&>?NbM3R|Uq5rG;^mJdANVn;Y57#$mlJS$r8b zDQKau9h0X=P)ynjV?7c7!DX(*)ak1Zl&8@IVM4trdp~FQe(#nppoBa=IC|O8e=DrT zIeGe_GQ6veuJyU%mf6*-UYm9==_*S(8EagWa*7SgWmFOXLPiZS(tB)?N^LAO)T}5& zAl=^Yqr8ZWzkw`@)ILXaTaPd`7Z}JInLx+E?PO}PFFFDHSgC+Q$FMdA5$PHV)#@12 zlKGs6$L%gu(0c6Z-YvANLJ6T8CXJT&Sa;Q>-`ynE;#1d9>0{78GAFaBW-b&TrkrairMCAkhPWjc2m?fr`F8TBxYIt_Vbf*}F0nmGBC6`tlMha&6{J@fkupI$4 zT^`E$xewuFiZ;#T;6Q7v0#Td=iVN{$|~{Y%6p*S zZQ1Bjdfy9yC^>PV^Moc*OLenWR{=Dp$rO~fTZw#_;d&`~$JZK1PmOahvzLFV%$=1l z7R;F)uq8a2)d+Xb&u^0OLqeFD1AoBvG=AY2iXfo3@(^Q=5?wi-Als|oczy%Y0KQ%I zCl$5yYWVyS{NznzVm`1LG4}TMt^aY2Qhq7IQr-XYYxMKEl}bVQv?F20nMLbm(C}4( zxuVXa;a;0~GS>G?R1tgw8k=QloURK6V@pbd#8@4EK#5(~V$mGMMu~O-zT~jR`C}J9 z`{sL|38l#XD zr~^8JqqDOmz|ZYi6p-kSrTW|3cEdhE*U543#Z8w#;(>Q+l8Py!$k8PFsr26VUkIHW z!`8O^kgyGtk8sIB2E{Ui<|I=?1%c#I>}zs$N|jCB#m$0hvec9$2lvRfjBwqwN_f8# zl*Z^6?9`jp5~tFeQ1r zJQnli5S%{R9QKkhE-1j|Pq-^B85-W(eu(R$1xzHRx%nc_o}vTkgb^^9so9SX@G`_q zXS0bEIKPxa$RJF`_K{S8-Q}j?ApN{1Ooq}q>nTN-dCjLFk$Lt1up4nx%3;#24uwv) z0~{=_f0aaSZ+tJXB8F~WzA+HKCs z$VG`AGSjWDY2lm+3cVd8i5=C`7#j6YFd)HI0-K$hXH+`!jRJ5oThULb${1cdrOKrB z*6Hfz`c?Gtcau!mg!Zz%>AK)-yCb*tPnIhS+R@Ucpq>%YTEYMt`5#M3T=;c1pswy4 zqK*$@*E|Ufh*KtYl!#>;Eh*ID(k)xdx5Dz>_$Zo^IUbnAfxg%DiY31~xNB?*KAIc_ zA|FCu;?g`>wP5EUCDMdHJi+m|{&zS8NMi>0Fe-Q)X8CrsG}`c+k#9h`SHe6oCqQ5j z6=lXAJ$K#yZJM_(va^b;YIluvu}%Zc@v3XC9_G9dG8pC`D$Mkla;Pcf@E95tO1Y0q+)GR>y3Ur9+2EyW}x)!6u zFMuf?lxOAsg|VVv5pPQ`x+Z0~MVR6sz7mos*`)^}+;H)nBrg^3+XIoM%Vp}G@=0{- z$VeJvlC+4N;2Pjo)E$`lF9BK_kGtSJgA78+n7j&HaL|QP(caO zekr=vt9zxjKF!xDrIKVFE_(S7tKMDEdGYUmLY1PuK(QD6$o?r_J+z-UcIlatWVX+c z-%29x#Yo7OW1+=b=$OHZ%4bvgppi!O%w6}vHV(81JlO2miNW`$$|*1~at z92)LOpv)X_jx1W@A`~pwYV>YHEb?b!ios0o!Gk+sql~7Cpo`ioGaYLNXjIW#;~%9{ zWVE#s1lB)?rLe_YhHrEhi2wR$miUVJEpw;gwda&QMG-?f8F#suLkZ)pHW@F(+qWQw z&iEgSStSBSpEY)~E_w2}MCsYpwJ_l^Cafigq!beKq0{na7_;LrH_N_%zn-ROJzr@06INTB()=6B)wlPt zk*ACiX;`lU12a>ozFF;k5*4M?*QfkOlyFmH6FMMMV6P6XKaaCprIOTG8E5=e4;3x& z0P>FIxr?CWOK@Y+19Nk;>XBJGDSzsusu42j*#^F8pgAJ?$8ZQI4Ul}3+Uj1H%8(o5 zMf+VZ?yh#qEdsO&W9RIXZbPXDvpDWe7h|)S6Ub?Sir>nonk@H7Gl9r4Px}RuU1yjStOjK%C(18eZ=df^sK&s{&nW$gS+5DEipRj$X3N z#PaK#%2Tieo;C@(iGjP(a@5?(9b+R-JKuGR{u}mKQDhiTj#5l~%Xxy3GhW|f(!1nb zv3WYYjuctym4rvP%QRyb_Lk9)O)zlMwbSi%6M@Am6^%Nil-q_hk zpID&aVICVRGfakaX(-9fKdPQ*ryw^#G5Vd%J3(dK#>txldH&@n=hj~nHYcDv< zasI&^oa!m1@FKwo&<+2gr@#xF>K+Ldy4vh7&W397nW*@y{8e zr94VEa^1R4cf9-7i)eoz-U(K>{W5I>P?~kus%p4Ji;|j{$akE)aB6M}p9Be@uLEK; z*w8$}Xl&~G8Ag{@0?u!anN;ayIBrn5P12tzc;(^K+dCP4PHIDloyXI4q`c179YbzD z@h&UzUc0Z(HCNxP6_N=u7jZ9smrYOj`67e6HSC-P(UYkn*YvazOb!%p)f^rY)%ZV- z&N8Zvu8YDgUNlH?2_D?t-JOhgGd$D;$gHkD}{~90o=auz6IR$39Fq!>OBlQL0Jq4*Ht7=mu z8UTiVGCnY^tqzZjVwpmjC6nNs#m;X_Lp-}&w?P~#gceryE@ZKkF?C|>D; zL1F@iiZ_E{jv3Jom~vvH`zKdZPBp&iLTBu>P4nZD%gGE6?Z0vy39p0iDdITwF4Zr; zlux_@d<4>*rSO`10(`oXqiC85Y1=5{bAK{^+-Y%p;v9e)gxt}Rsc4Y-9qbXPmT_xJ z)maijsQ_NSK%s+FmDA%TfgvU})Q=~QJHNdgTw7Bt9XP(GVKH>Q4{UMh{#KN|k82)2 zN$Mu-blPFLcwWoN@(uHmY(D4nKRWLR&*|2mT0i1w$eu!jH!nLGmMTIXu+min;_~{~ zH007%-;h5ul>JK z$k^NB3>s!PPJ-Sz)1h_rS9#TY@L{0441EQCmnP7_#(NeotUW@EZeVo@n*o95iD_eIs@6Kdthi_S&=ZHc{n&Q z$yCJ@pCNx4nFua)eiqI=H54yys!`^>sRH5gjjZ0M)$-KNM)9NH@32#scq_5&S=3>W z5nv#=Z+ro+2$nI8cXkI@lpFtJ;4zsf(vo=NUHt8e5y!J#}GjkjF0ahzrtQegmIq8F0X9_X6wQu zwRdTVS#YzcpC6OstYm$}aDOL<%QgBneVK|Z4=9AL(pfV8u-j$mn>5<_Vl9YF=w!c` zf5Qb$tygZaZ5$+iVl0X(toPw(2>lz!WnZ*cU;zlC{18fw#GN=@j?Y8`b#c<3PHd5f*y7f1*>&7QH zrWs>Be$-2S21~bW6l0|t%r*1jYK=y^Jc@U8IEUD`;?s*A2J~+l zmQ(+wy$0bLBcA~k7O$knd??AlRV<^inAx1BGS?QNVh?u0*(H86zJM<7F7HFs1+3^x z@EO^tOT;!eg8OaZM}$Or0{x#{TjOQL%&Z0f{`L|{nop0zZ)zWOeg1AIP|)R~nM>@& znb_gVsCrx3jJn7~5U(5u2sLjrCQ?WT>r+DyJeL6q|KX`PzI;}A%+gLQJQXy6PLH~c z6iTgppNp`d;$*Y4NLa zQ^hnlOU?5};Y;0VM#Ww_Me58V35)`+&LZ|yu-|g68)&Uo-#;z?`1KZ<7`U@wYg5^? z5JQ+rROfv5BCmq)uRSG$v*|kb#K*I4#Fin2pCU3m3O3bhT&v-L3jiBH=4V|AUzjwr6%eyiSRU(TY-ZH}kMA zyg(kPI53{jL(I`^uc#=xu=$m$+hTy6sRuUr&ub0-IyeuvSGfvnKtx~I_Q=y^`CR{{ z4|4Fc^(+0D2fOBaN&d+^uRN5s8wR=O_NU5m94`?OZeVtpb7C~zu0G2&ExxHl`uu01 zf&y^=N6!>_4OZb4;RG45U4C%b6S}cEwVuzDRXa4}*_=G0yr5UGS&dk8*=B}wluBq97qrcv z*s@cGueMB2_aI%iX)?5l{hOBLPMB$DK5~PVwYS^PsdMm=mt{*<^?Au zx`N9fy(t1&yWY6xPdP zId^EMYG2k*hS1uIZ)iYR^f>DIZ;{oU zw8`Auf(y48BSJ%X9fJAdu0od`e|8b6XaOC<`G064c@G_xKfuTY=$h>>>q~ciwKV7r zg0>3lrH65+wX}vA`eom}RMdWm3jzHP+^oMnjD#ta%=LYgf}6sYt`coSa;ZQ^3lB%g z*UCDDk6Pxth*iZiaQVP>mS<9f5)$)17|%cob?OMShZX5vv@D1{PXcGEjYi`ZwX__W z_LKaMKswDRFgHMc7AuQ5@{ejtdwB7r+`9>Vv37`08g?r<%y8etbq#kiHrMxCswrc|+{FuSd3GHEdka4?5l>H1hJ=m49pIi)Jb8|ee%s+lfrYq>NsTktFn@x5jm8v9lD?4{Lq@t7 z9WO?XZz125#!lWrwBYQ}(f20K4$@`Yl*N%LmDK2Z(5JZS? zunVYk!e6Y^0}e?AvE@cJ(w=V37|x~NtEArJQrtpB?KoIG0d_};E3>;WA!qk4zhW5mO7Fr{I0Nwv}CU7yk=WI{;^?CMmXL zpJ`neXU#A(wcXIBeRi<+1AHC|kG^#dd&qDC?M!QF}9Rmw3d@(#o4JGYLHGEZ;gNi?baXx%D_25yilQ~L{}L`uA1XK9qNvJu;9MQ zJ5Fv4pLbTe%6q_WStkLcc7BEBfPpsKtd_h}I=iuv)iI3`gAcP`-BSJe*pb!oq`-b< zV%%e=W{Rh+fi{{{+t8sht<50thwzlIPN^5t{!rt6S&t~>27Y~SawVaYf#)FaE`S7@ z#1wtB=amBRJo~OLBr;cKr&^6Ea-T;@y~9?6WlIDSf%eJN)5s%rPMxsdDvg9U^?!lfBM``6DBx+>1JLV7|c>nY% zf}QjX%j+}?s-1S>CZRES{g>$LQNa5n@x)8jSwQ|Rk<@OdMBN9(8mRh(Y#T^kRhq0I zN->`vFK{Wb)B1gBca{tZ1f$>oDgNh}=9C@ib)3?IJtI%1guz8Y4pKZeV@N^ckdu|k zrG$3{wfy$U+srU%xgYWcE=_n@)C|M_A67{M7KIXUd>pyYt^ef{-mWPXkHYx%4N*RC zBzTJbYrJ~k?z$)*jjbS|GE^Na?8!_0$rfLP9Gfw^Rs&r!SUK1w-xANkcU96cAq#g7 zm*&8GlyTKSV&SM*W&&i-5TBC|##)+EG>#>*i9LGl{XFYIV?VUeY=$AkB@RRi<|qE7 z{HB~}M=q3&b1SSiLG8#D>1>btG9~mxAiapW-+Y9c;;CECIEtq*=b>j}7AL*smkcQr z-L7_ar7Ne>O%abw)x8r-ggOMPj6`MUU)JK7EoEiP!eZdWRiC4i;(%CT&L?gu8VB=h{Jti1>W~X* zA4gS5c8&gi)H0TWrY@D|2C1eOo83<1Tc4q!v2Fxp4w6z3t@x!VmGEcKo$mSVkLfs{ zuV;assH}w)(dcI}>50Q|K`|3;(9olBTsz9IsjK-^CWG~2Vt8|;vDWI#xCvyc>;An~ zPV>cU9z3^b7GmTIaw(aR{J{NdnXJeC0Py)4{p`TayGmbj31t!l|ELOEu%yt(Rm>WY z90y3@?+mn>vr$(F;4oGG}Rjg_IpK<$Z?pO>=d}fGR&JC(a@HIPBx}kMHbX$cwz< zj!b(*wvF2dMlq;xR?H}Ve7v_#mQ9cYL{{WQHBuzd7*X9UP0@1hJ9vDTdoKe(N#f{N z#Y~)eD}E+Z^v@T+**G1_JwGfJV$|F}nHp*(ujkdUNzsqx+Eo2|j~GmRRd7KOfYg#X z#=II*GAE>{VyVA7PUP`Lib>+Ol}xYN_q0cj{y&~2yX)hs#7|_soBe#fUXinoWP1zl52wjO6lTrkGV zDt2Rx3b4?^&Dxi&4e;9G64fWzQ(OHQqLFW55_&2<0{i)i?OHpCPnT!I)E|wjYXsA- z`QVyON)C{lKza2v9V2eYgBZe7Aj)0fJRI$x^1?fVC#-OdHKYB)C1Hr;R zCbVTS<6ka-QyG_J8wnqs5C_|xkdEaT`7;Dig5|t4 zY|&BM^Ht&9`+HDHrZ=uF>77(vMQ$%^lq^rhzGKv)H{x;wy{*U8?>^HQqE>rgu>>(c zX&O5>Ra$wpHlxq&mw|D0xt+D4>~`qTr28y!+QpQ(aFryyK8;15<5u#FUjdvWqoINt z>I1jmDedEFT<#ZRFNG$yG!kCI$sE|-1e3WDbZACu6KKMm=lz1=e$b-_kS-qTp>yi~ zMsHiQt-~ZkuFeZ1R3sEae%{qEBjw^pGu zJz6v)Cb&G6cLD6i7#)przAJ!3dDBzwfxtU2Z<-F~yu_Yq_t zc?v!$#{9if9drb##01Se2U^uFG<|_(!RjH+mlWbNt>B^r(h>&;A>%fEQ3GzIqXcjm z7irMOH#6L(Ub)drlGsB{qTJ}#=>gWK)UcCB&Kras_z(!j+NPs2<5pJ~#x61= za^RgI=?SnTF}8FOxiP-Q-MvtRm*kSNQ6d~BU%{V=ML^^InQI3MVJ2~lN!0TOQ%bT;@EDyK;NKar_yKB)~%*hz>H=fYESvD`sKnU3t46Wbq#pN=oda zGo!H0k92;eeX{Ss3s2z$xzIm%CL*mrUKaM0CBcnG&(W{QoKB*I(7Od5 z^gAXA^0qP!w3kHorS+W{*#O5}v(+5gL`SBqAW9VYGa1Db_4BXnQs>3)(^SJIe0tOR zP18x`JKQB@9Ozss8ZsuMCg(r^v64s2W)Ux0BpAL>CTZP46q032((zSrQuFwDyh#Tb ztxAhob5veWgq7kN@6T*4zS~E4wNcP9dQ%jPGcm?Y9Tk_Pt&6`ey5@Guhd9sjAqRETkEa3=|#+c8)oT+nd4 zZUsyr!93?U7GkrKsS_Fh=CqyyBOQ*-RL*Rt5oviyRkVDT;)oowGE9|RfM=kNqZjI5 z<{Q=0(~4jV|42V;zQv!aQv`SaJheB3VRLE$8|Sl;f~Bbq6E?3k-%5P(83_A(7uoJ^ zSFO&Ew}|IbRx+=Rpg%-uOp)|3bEh5P#^sMr=UW8afzQn^CO|5#Zs>f!>38dYd(5a+ zwOr*9@|maD&zOkz$myDbl}`B@OL2PtT#tl~oyh<7+jAcP8fsrRq>9JSdW;cFu~CvZ zGq6IMi>!p8fQHjE@NgxlGV1pC@G$`l%@5544SEw75U-vULz4%mB>ylGQ<quD_4)^kLLGU#jY)w$6l8I+FTbl`60Ik3U{f?>v)sN1% zGTQ$*c4KF#SG-hnuzlx+;H`0dE;cW)NIeXLH=LoYU~&wi`w9`S$Aeev2CP=Q$lR@j zknD$MCcm>F{8{tCh`lHs&ZM>nG?IZv53k$IhvSSEe&mf@wLZ+77m~{j ze=Xff)nlC2hnhsgYh`nz5o4tocr89^Qo$Hym9}3EPk~ z;`FD*3!~?rm+yGTx~(%kvOBfIGTM(mo|%M#A2#O$BNg+93L?gE!-$t)>nrw_(M;ZO zDs)0saO#0I-zmAhP4rpn;95dlCi@1H0bpKlzJmF&dM~R0t;*`0S7BZ#+I!m?=qFSf z5=uuguIfKK<&*zVR|hXs5U)y9WhpV`7HISz2JQJ?n8{~#nmCDkvp!w7i&&tfL7)4I9BoeAr7u^c=!++9*| zCz`@fe}fF47ctA;dJtSXF(E5vy|EjRaE|(tqDtRw35x3>Be6f#p8W%uu#y1xq+G zQlwFze05TxsIRHg^bjh;sT4);Ose>7D9-&8`Aa0z7UKn@wUAZjq!n?beHBt|X%a~X z&0rvkZ|O+@1~3sMUn?>QkXTZdNSWljvq-=ujeGm*gON3JYoi-hy~oMMq>oLCTUmU;)d0ikuVN2Wm6$AP&Y z(2>~wK>#=Fd!y-T3$9m*2B*+qyJdn2Z`29g7c9eNPeLoQ=mm)!lB8F`X_|J(jM?Q; za19?JQr<`(7tyw#?2|IDUIf^E8j0J(myB3tSIRa9JDb6W4Hv${nC+&FqE1v;@GiX4 zdCR$YL$wm zCXi2t5lE5NUL(iU=LG+YK-y4SLFXt&_ig1>akzgwl@0I-I$oDF9(3CgPf6NlTl;M7 zSX!Y<4=Jwj3OrIY;+s=CTDQ61#3?(?H8BI5Bt;B*Y!f_NJN)7#%0Za@4H8I&*y<~} z($W#%@5!QtatyHDJFS1-FZHCpT+gI3Ti7^vQB<}luO)7p2778t9I%cO4u;)b(m zep>R&LI^nzAI)&Eh%D3LR7$-=6T6U%au*Rw{%IK%I%0ql!(2hs2WWw`>2n;Z&klel zc3oC2lLr;J?SLdD%kO$rMuUhriT=z+lyOu1aSJRE4zw~8dIquRE^p+G7_A=^14Fh) zHEo3)DE$a(;6ni^X|S2o(~z~2HuWBD)8W=VMePBi*Ej2Rg|+VYL@ZUNOc_r=q(nVx zlHyLUvm19YK%6`_M$!J@z)G(xPpXIjwmI;FN^B#+KhQaO4k~_-YIWqxK_nf8XP#kS z9~8fe?YGo)Q^tZ-((dO999cf}kMW&k6giD5Cg*H_(cc02PP2GAvYeiiD$yveUY7|5 zgVC4q#s178%|wg;X=wWGSMuV)JF2ST*VE*;M?vgyrxG5UkABQ4)1?}iJK=7ChquL+ zIv-cF&^w2elv-AFmU*n%`U{;+MngO-JI@mDC|o;Eva+}dU^dohd9QKDTY(Y>$veQ# zSv81`(t38$U^I>?Cc2ZCQOu*0;g-w&>;Ze=hJFqak1QtYC$E&>8O3)%X7tR*8gR)7 zc@$}T^`37mVY*mNO+~TkmbsjqJ8XWr^68cDhtx&i=N9=KIIkSAi;*>Xk)r2~Cx@Kv ze}*df`G)XHxwbqj%^kH1q~n=G)K>USQw7#QuG=Up24sPKa%YW=902Pb^?oaxL~9q1 zLU=9w<0m*oVFH)a2LTGu`8(FryI5XsJj+#J?M(7%5In7L0x%r|f*lzQ)I`{7r+DG| z{frnK?>tkAWV&i5SFy^)-X8OL+ill{0`oNNhxlYX9cF(`qr~*Pg+mlcbdCdO33XRP zw{|i)_@uFMGS>W~a92nXUtJ%^nOthJ41W&4`lxHSx<}O*WwjVEv85yZm#{<69%FU| z?_UFtnt4~)J`q+|6UH@Ux+QJdO!oKsSFBZG&fYJQYA4!}!fr)0zGVh>wovdbl*w@9 zYWwSk;nR-8VRw1tGQp#O{tO?&IyfVKZ)1E#v<^#g3m;579{_O@trH#%P491eG^9j( zyA(kf<@>nA)Kafkq@2xWS!E-y&qfh`NtqCI<#Fd&`hR0Sz1>Wh2)G~PDs9FI9NFCf zgI(K*$)Yti+z1dK_~s!^Ush%e?lcqajS4HwV{3vl9j0ibOf1VH%!K2)ay<0l`?@J zF#7Q5MV5T*GR>Ugznq^^oPN=M+xbyQ)A5kP@i{U(AGPICPHLSvjlWbjea`+Lwak$W@@_Cm*_Zw#xG)q=&7xCsmwWrB7az=)T6C5C!O{^wWN1ut$660NeA($ zl~%3O=7q&_f;rZiS(59f;6?QD_NPh^InTX;o1Iy1EYkVR{~q=gB9J3GBg*$4`W+AU ze*rskqV^Frw)xhYJ1V4pf6T4Nrln&|&_CG@FeWVr)MpRXJl6SdLX!qGOtr0_{#`<= zrLyc&uTQ7s$A9RUlA|6SHfT}l$SxTur2i~;jhStoPo9d4OquzYwB^M!Ppdv2GjsenbubX9!@fsGz~PPCTE+s7BF%h2 zaM{!3N zanWEckPfVCqJV|7%_L1HMFgwcxy?8fl1A-CywA$&LvY*0IG=A+@J`{d3~wNn>Toedk9P?R~{H z$j8UWZJjFc`D1+)F1e1Ugu2DI?eZ8qDR>QDC1dL%Mr&G0!Hnf~YHaArm*ru)D{~%S zN@5mis>lk%c(EIe3EM7y{52bgcG7I@nS53x&eH76@=?0kz4`E!|9^#oiP~+nI&m9$SIWxxeisA^SHFisqlm)%ao5sS^*y#hxHYT<|l%OtM46v zJO_}?I8Kvr0{7)rbja5rY39(+R0YbAlZ%mh?;-+Nv4|(x-^R@N6=!FIEDB650aENF zS?>ZXP(z&!v>~|%*6cr7dUuVfQYK6I)63Sfx%J)6>C=0~y#1k7OpX?-bBfa#WK>3~ zfwWc&RPi>7+BZFnLPMibs>pRy-c#5|_D|w5C%c-sU{JDG@bFS}AyC0G_nGx^q zC!mjhm>keX{o7?3*1D@S(6P5q@3U;b)D{A!-6Une$Pj0!{kis%pGf+nPv>*=kFnCY zWnQxA7j682xd!J39K3lu=7a;U*ObMfWZdVFqyq~`@qx9_=QdzDy-#5uqsA<3n;|ek zE%B<}P*@}dDYguRlG|*$1!xW-uu01kw);w0e|07oOa~njJtPGW@Og&zMacwzQofYt zzNR15BqqL3yd*VM?J#^VUD1danl4GF%*9p9J0hV$ol7~G+2u)q$U!G?`OPnjV@o^n z4+bJ>mWs&7xwQ2pYd37iqVj_eFp^?mN^TNJDWo!A4zO;|NbCjzWn^b7{B4{VmCQGHX#lT|hUcfk9uw6hjxnPTE*SmTj!}L2WmAU^=Lwl>MOjs)@|k;dHC`cC z#p0gPn^$5t^apX_CW+y}&D1;q*G!<-tdFTVug2PSCV1&Q3&?|VhA6L=%9|QWEJY5=@jxS&r@qJCFak_<}Qy zUSDEQHm3~SxKBEI3cT&ugJ%cZe%Xbh+-0X|*Yl zcJ4h4qXsJQN!B68A4t8?_i+Tc`b2QQ{pEA+^%%;%e{0aT5aNwaW||jCDamON+s{%8=cI57Nuuejh1MYjw*E z=H6w2HC7vD&H!fPTUQ8bZTZ^iYo>IrOTu*{TS0;#n8eV3Cbc`iobAP)Kxj5;Qt%;~ zqoU;?GFBj5WIa0HMX`)L31$=>J<{(6)kBU%PN+ApgaB@Iz&DYQmhl2A+7?42GNxJPCbw}(SlllIBrA5_ajz> zmmd7bpvi@vr?=4)Glgp+OWe6k3Xp=Pp0_K}`niW8k z0L6hMQ7M1Zs45owHRc5ves*E-;q(o{X)Suq(0&hdK)O})z7s2+#w6u)SX0b z0(0Y(M#zuvnf~z?f8$T}s-Z_WF_Z6mSLau-Eyzs(Zx|Kl9l^?Int&Eecgn&YeoQRD z`owMg{uvo=LotqQv5_({4z63nuxQA zPXsfLqC#w+3}FRDIR-NhIJbe~Vo&efJH0(v%Lkc@^}d-SBo+yuiof~nVGx!K7tXbT zh~5Jrei)yYcaJ0MP?{#?NE9@+I=#OFji0=o9&-;HXodB>&cMMMtE^C%f`-ff`K$sX zi3Kt6@pQKB|I&CH5R55Ieo-z-xTJjVPq5QdMGTQ~TSF}1PJoV+UW}7a-bk|q& z)!_X^@7=(XJS4Ae$g4s(1Ai-+3e!bOksnv_{vBIS4XjR0biS_PscuM&EXL8eLgi7VEmSftx7kYY4TI#+m@q~=xOeX!3 z;{S}*w=g*QN*URXNsj+pO<`Lo!9wxC0ZJFp_pDSwYApr!jrwq z5bs%!606qRd^v-INe9)|MXXg~G?3;V%$u?P^D522wO6(4g+=^Ny4Tk%_}+P5nTODz z>}p3E@~g**-23I1gi9rlZOWfaQNQhg%?lsR`e*v(vEc#!n`bB4?#mdfhhPMbZYeZI+6?gOQU_tTbY8 zo#+mnDG}@uUt3!URaAYM%6nBTPW5+3tQ}>hKZB!Y@OMTU|Ala}b8U4kLD;%q4A7&E zYq6vESw)zomax&6w^L-$qH9a7qTf&@%k+bzB3O`8Og2#!d&lEjBw=#SX0)t+aNq<> zx?_6>!O3)J*l2IfOKS(2F!;dpC1>chhjqd-?5&*?<(1Cki?(&amo*U^_M>wIb8>l0 z*YH6#Ubs%&Z@F&J*@;?8bsW^H%HsCugagql!G985!U^~54i1dxe;IpSqoS(AUbXQyInk|$}y zO(TwN2N3jDbhk(u+W0ZUb~iYL*Msc&Z|p|INYm88TK zzxKAU438tO)Q%o4VP3OTwO?5mS?CX|GA1AH71gI`OdnYe${CG>>sFizBp3|HW36Z;2*4|}g>v$O5FI&X~NLpPz?$2E<#>qfHvZZiJ+N+deOM}VzRkpUtDB2QfL z%hYJ@V{Uzb#!DMwz%TWjYyP_awC1_L!xXSNbLu$P$>p5besc|72n{!JQ$;fO}*f{7SnnYjkMx1^t}KhH$*w7Nbqa`()EQH zNhlXGQy&azdZpM&`yn^hT^}f}asm?(;LU-c;*=G`K zg!^;UKD;2q4=z?(WclCM{it^;2 z!s>Ls!Gjt89%og18!-^;dSv91n~KX~Tf|>G(^KFYl*RP5kwaW{#A7ltG z{Pg-?RN_Dhwrcg!mVUtEbeo-Hyh1RZ58$Q( zdv6u8!xj#v93xSvN*>D(bx1p^n9o$7{Mk!W_a?sDX1QcLUY`XfP6U3fg6S0l=`#_7_Ycn&cls9 zv7l{gJn@=vqC4}YpdnQ+#sTS0guF5iyoS2#|>z3$FU3e zFB9O9Tx5~Xb^1qMl({|*nC}1!#ZT(r^tn~r9S76jofc5*TA_W!Sy4mCBtnV(n^cPy zTRR#oXWoN(1v81WZ1r^HC$hqfkfJB2*tO4EtMv4gtwwQ|%xEsJV^OZ%tJ$RyKp(;6 zn)lNa{y-aO(;F`7j;zFG6M|`s^A~z>;(z`4@0LyH8cnizym3P6@JZ&ij*LfG4cNDV z`S`?q%r8=iEwhB2QmM=>T0y}v4wI+UclfORG|Mg()PQz;1eKT1wrTf>u%)w!7`au$ z4LqDw6*cF+lN8e{Amyi%7?oMPc_^4mLd8JtoAPRKtgQ+feQ7)$Qr3DGq{&KXc&pVt zj^5zYoMc`vjZm6|UjD=1i%biC4ZQhk)eg#l@s|m(+42aA5juze13kw_-i>(P-v}}d z8h}qcg6So6AcKZ?su+nK7vd~aVQDu0<9{Qy;J;l6t-Lzeyc37Xn>yMwP0UDz*$RaiQy&*FKx{bk4W+8#1g8ekgPR*C@&%9$7k1n!NcM{5N@{=)P61n`Mn zqET51MK??BDzE;H@G%M$rwIWtG@LGmD%OYjOBb=DcZ5*dz}PfFiCv- zB>fqt5~_So%?FXv3x^Y$s^(Oe3#;r;nMD>{S#M$hzR}vRI3D5f!H%*ts z@+7R>p8Exvv{0qi@NS(Z>P}QXt#E?sDOBz7JcP6UNezkM%Zt5ml#GPuJ)KtiE?$)=|UDQ&> zQcWRaP zLoq*^Fh6{SrMcD-1};FN7<*Xv!DatA;Q+M=OCr`UeF>S1B{=?0#!z2EHj@+wExl2< zvCFy}`+c~V?Z(wu?$YVkcGa>V9q5!RC{lWlOmR-piD^!)-px@uoL007^WlMiRhqKR zSn;Cx@Ra}I`HeJg77DJW{g_j_5_n|6Vyo2$kn@SJ`0O)_B;ieT`kqXS<)+n}h&2RX zv2h3wZRhSu;kumHe592BYys101k+nh5F4gds1ZyQt)!MSu{1uzYn+k5@Ml1cw7U-% ztAjx!6>%8CMUB1n9U~0+axxg#MU84+6ud~N)Q5AQY}&8L!rN7|92D^up2ZZiu7c|0 z?)-}yTkAWFSkrg$&BGPXfG(CrDJ)l|6gm|>e>2c8^-cTcFLSk1<#g3@%U%(5z722{ z$`5j+52hW^s{M9{IB2+7-Kx8M_!Pq3b3@+WC!n;nR> zV6=C>DzurtS<9*olqtcXW>gTxa*+H+|0UjagrW46BmBF`Dy=oD1u?#^>381C z{xiEGwJ9v5-O56htS=5~yh49T@eq-ty(Z<*y-i6IZ8^SL}Y_Q3jn#5;?Nbg|T0;o@`T+ux(fWV81+nyCqr zuv(Z0vy@#H-tWR>dQqtiPaudza*AHjJKsTWB?UtKkU@|aRpXpSGUg<9lhp_~m@3@e?OhvpYiJspcJrX6^T~1#@BV(XrIde{7Hd2T_(p1(9wRnB+;@Hxl^^S+RqckdK9hdyi~MmH9YVqly*9k*znwqBXMB#mqZLl zljA)j34EL$7}f@rfBnGrw>4k)W5gX*(-(`@xxEJrtjCC{ir~Y$T13X6S4ULt0rxK1KW-eM#JCG$1;(C z6hTNRx%&K-a6sso!3U2oAM7+x@UDf=hK}w$5bTjlWfjrcI&z4YV^rxTOFzK$0Xl@| z&}A!H_Ijoy_Lr?s+{F<;tgQV6TE;R`Q|@&#VWhRoJ-3cs0ouBm8Bv=+o?x`lkmT^2 zKXRRoP;>O_^(6(Z*Tc;)z5FuqH!Lnp2d`)gFXTx#EZ9vi=hs*xfze=^kCon66~t$n z(4Gc<$P`RbAtk?d+=trl3OR7&|mF|#$ zl=aQgCQE{7DzkuNq+6m66xoaU0NxV5{Z6%Z(4h4_E~ID4)PQK+PSq#|$;u?c51fAB zEp@u^j`5kt4FydbCcr3XcIcvV!j;0_cO-mGE!%rCD3ecDr(POcdOgmzn{@5dDWPG3 zfGDCyu-nQiE!@&tzLPR|J)VHh+WlU_a5?OiN@B-*U#`9W;s>((#UJ5JekoG>4P{R( z$Tcv6@$-~#5t36AQNX9W z&?2#V>#%$m`$(_tKN2ZPc6yPzyc!zW$A2o6wXgjwHvUXZ0FCzhv~`=O9R?|4vm7xI z+LkEBPb`(}DedZ^a?h5ODE)W@RBNjWWUXN=hRcc_c@qPPZdCYrC@N21&V$RPkReuF z&2GR!Zb$l6!F&Z~S`UCb3B0>M#MuxMYZ*wx;Oxp#F4FBZ>T~zQ+N56ui(5Q)t+2t? z*}QEmXk+?QCdDW#4ovEfbU3#tTNFAJE^Z_+Ya<-~*A#*;Ni%xsLU}AG;!61a9?S8^ za6CrPaDm_xju^4WBKn@{6qveB2H^1En&e5=L`8q(MV|70XZ;Jf{aj59Bg53nuI(%h ze6%06_d}XYZC(z6*&BljE4X(xSTetiayAe~>J?WP+GN~{=rkD z>S-3kWWt6}LXDJ%a)!IHZU?2>{4H4`4pUM&Xid$)?!EKs;rM#p2H~5H3<;(7jp$Os zm@xDl>bC-&C5J4~-qAJnoi`t_{4M=TD@qeq+xKld|3I_E=F@Lxqf zG40EpqI#(VmTi9xZvRsY39hO6j!(`iwC@}o)m{l~q#f1SFCNsp4kdNg)d!zZ<~Aa#S6 zajYYo&U0t{DBG(q^t2KGpyTMnmuN^yZz3eS zo$@FE@rZ!;h#x-7TF+1c6I+1dM?d(OFG=D9%sGlTkUIikSKg8&o;8>Zd(s;Z!}t$a+8 zOvR{Vrtqv0T(;zeXfs2tzhZ_{mMO$7f-Em|m5WEWNDP0#Llnab1RIyZ5q`{N@5Dly zq%B69Q4~MwA~dJMUM2$thr?sylInr=kQPCZX^M8y&j1J2aV9>iP(S8f6Xtz;*BHn) z)sKaR!q-xOsZ-|6HfHkRbY$jAVF$J8c`v+x?lQ?C34Ff50TF{h zb@VMpKllXKqr@!vdfL+6^9crw4%NN+J3SuyKzbxYm}dje@(kzzzWalILqb&ONQJiztB;BVas)YpDouYRsPlJmJZXK_3G}B zsFwxKGWT6{B5~Ku-C_);NNQD>N=h03Fk^ToepA8{JeRw3)7p0N=yy&*VrD)c3hSxQ z=4LiM0J1y~5j1e7^r`4>08^X2cJ<6lBaNA}-3y^FJ2c>Jw+U&v53r>0UT?Q*Y55 z(bK&d>ED&5ETFnFl(K$8G}$;#iv{=q2b}t10rhy4$OIaaejE_+pim2CE4TKUZxy%< z3{Mn}k;-_+WL0+TYq#v;jMDtf*`K199J+OkGAAnBG~ngYe(wUFJgkdz4tZU)7m5>v ztSAEO&S##wQ$7cq_Xxkwiz6g8D3_ zPCD0QM;d-QX!Gke@>*d5w95%UB-S=iJI~rMY=_Oa7KSx4&VJy63SQXZd+P{YfpO!g zj0p(I4nQ1}!pCKrsHHgTo))k7nw6-@A8~to^yC$sLPh2P8htbZY$b)MtL8#B!-0+0 zDN<;vH`4cM%ue>j^I2zc$9@W-aD8;bRA=!jX*ckSXl9}>hh%~If7qMZwS!CAv(UxA z40|fmqhBj4dm1JzCPgMKl8W+%Y^zZe!=eRlpgoDpeNqg02;9uaw?*g2PCxajaFS?^ z!ts)GVh2-f3nCypLD@YT?yj{H(k$@|@{~y|J=YJ~HJ%VfJ^ zuhigkwYYOcfN1S`8FR%JEcY@Ohk_d;TLJnJgXv?tS}R%f z3g}OYCWGd&t+_&-QxF}p_tTkUj;v7|RL#Ma6%02Jl3&qZ;5^;vI9z^XOU;W}CsW7i zM}2JQo<5jnxfWCG@lE83K=SALmIy21f$iq>J%;3_@mOg3^=bZ9eVRpj@Q+Akpgtf; z1`&&j%49m*Z171&CMCV-)*wt3Qu}#_!Ii`^BZ2o9S3(~OTk-=(7Jayy)dA+@an4RK zSvL>q&31**))iHH9e}UpBTt$52eT}%&zMSgtHs+fQReH-+336#cN z=xm?koW`&OUMf5{GjYjS6}IicGAaXElHf7uGVa6Mg}r-HdG|P9v)FKL3KjnN^)H#I zS)bom>*O3$W|H=V!IaejDXK8zlOmG#)eR}O$iTDuCy00cuf0;b^;Q&yDZxt>7mDj; z+{mxTpA@L9qMv`UDLDD`A9e$!&AQC(XBO;7D}nC+AlSpzz`~d9E=BWV=zG-}V^z=p z3QGxI&J3DPPtEc?)rb>l z@yO*_aJ)U@r9;dfu+gj{SVhq$u&9qG+E-6FIWP!-} zkN6>$e|C#Ame-X+v4UF%5K~H#vE)}uD+w=7q_O$dkkY`ez@d z63ZH8KvmsYoFNtX<`SPh_RW0*vr(=>g2uPfc{%U&G=x7gnsTsv=JNs+Wy835U6dE1 z$`_n~PqdR9W1ibQ?*eIv7A8(xhRCo74R1TwV72lIk{0{gJ*+=%ON6)P>G$_uQ@l9# z(gU>a^vsAenL=>Mk&JrgXukDy)@5Gb znnE#t6<=Hc;lKRxA;y#i=dLe>$3XBAvq;{~a{Cno3=JbcE-#-0}s4dS$yNpCo@ zDy8p99V(!J-rBOAjbTP3kPG@Z=*g|8;dIqMp?yt2^g{-9Wad-P&42Phmk-cjZIchol5WspHzQNI_i$eCJJKaRnws-#<> zKQja$)!w!sY_lj!@;U^vsf17&SRJ+xn2;=n4`c-|l!gj5b`U{dBzBg&8B2t;!LW++ z*lyxLw+~%x#4;hN>*rJApU6<3KdqMi@Ijq&01=G~nw1v?{We3F-E+jCrb*1AhfRxA`x^T^?8eSL>6Px8}GiNKx>=-eaY3n@jpimAF zH2e>$#j756gCVJ9^JGq9Q#N`mB~w7I)zqd&?K@mfZW0swW*7}(4Zzqk{Z!oMXDYaL zct`)Rc!N?Qagz&j2?q0}V-Yb9t0}MR$XMIu1F=~017JR*@r`KRuDriixBHw*%sM-J zHPwx7rvnj@!wk=#!7f+*McE=hl80~O8tMX+FUH0Sc^1^WwyORl4?v#|w1A3$#c~3eUly z&|5Cre}H`h^?6&%GfVb$o6FS|DWeHUwXCida7p*VDY&e;S`iH9RdtY+cq=NX#i(W1 zc4`GZ%I?&%m!{x{ubGCaD*m0*o(B}Ux?#xfzVN&AsaCzgkG155ulq-zv<2pfln=nc>Y#@h5 z*95L!kd4PnciZtX5cy0K-TH;0X{Sx>5nczg`7wA_2KnF#W5jvmmQcvdcch-Q z`3JIEAf4B89>H_kiU!eC#od>R5c6O$1ih*h36ZkV9Ey)C!~kmZ>w0{&()eht@Vl9! zDJR}ZP{>SVdBb;$K%36??@~t5cavhAj(m%>**qt_*xjF=@+aj|9_VvhdZc=8h4^G_ z>W7d}kbsHB#;-j5r4Mzs1?b5(&bJs5{i#5B241iA?y7gO<$nWFBLTy>6nP zQMB;-$vE_H3}j0-GM5z7r+j67>w%gp@shIEaoIM2e(hf2*5U09R05{jweYoiEo$kNcnG z)!Rwo-1U~+HLigwd%`ZLn|Qs1`1Dyk=iZb;Yre9tz>08)yvQM3y4+<;xwXpvztmWcGYXCeP=#8 z5s~I)p%@4(F5}CSwrZdJE$m%w_?2SV4=lA>svw!aL|eNgBJHth#$!`+mq!L# zX9njp&F8p)Uq6{aQSOfarjdcU30}ayG>!6zcBfdf%j)49VaGll#oDg~m5{7-IOW+dinjMHYA(=pO-lm>@F%AgwYADAIrnSvvj&X=;u!IaJ&`QTg(D z`nR9?p$9Wm#PiJmSU95+9WK=i*T4s${i7!V)@ZmEs*=x@{Fi&@bvC>H{8{g|zQMDv zo&<-J(BWUTjo(}s>4k>2ZF{#C*!5eTaQ!r>T>kjd9N~3N8)EDS=U<>pGQ3-g*P?{X zBHoJad*`G57Vx4kyY!mgIS*|DIqL@=h;Y=iroO(J`+{u(FN^>Ar^v-JEh>mbhG%$_ zw)W*Ccg0u2gZ=4kG?-! zJ0O*visxKPVv{4hT83;d#3Y3EX9e=Qef1G7`<&1&h^SQax?DBcO~wCqTw-JP^UM;7 zO_QLQfL_@%Wi_PM>}RX#B~wTz4C_7@+o;Krz3H%(I{i+mM3H}Uf$7No(yqQ(m=o4} z{*`{@1=xlyIGv$45z#Wn5aWMe%Oe3yC}cW$(U#a$yl@;ym0BR4lqKAvSYnmo!2xo? z#3ae=Jy~Od@Q1ns4}-w4`ozz-kH@;+22TBW7)#iflE(?Ra4_XUFHzaAH?&jMYq=Qv zW6le35bH0WZj&`tzC7C^`tU;28o$JlE5wvhXlUVK2fXw82O!_7;Pm4eEWU*Yyv2@V zbIj|NG$;NhwF5C92A($>1~jvZy_1>KKUiy&7ru`wz&!yu%d0~)6x##bfHqj0n*>8; zn;&?0CX6BsqjA{$sbz4QQ5~PUkeS=?-4)WrZn|9NQq>r*FYd#J{~1?l@khA7^`^Z4 z$lozfm>sJ9I{v!+3QgPy@9^7Q-2IBr!nea&YuUL}3P;;A8P=d$%-ZDOf`G?iG9tI9v;CE0wf3PM+^ zIP+_6mFY9Jl|cv={WjM_5@kDOJHa|jdz<56Zlf5{cIh=H&tCX3>b? zN?X#VO+pFqR57fwGN+^TYB-E959k?jJS}p*eih|Edh)Snppo)}rwE>zP1coH(adt# z42@ZIq2!xlkFyI}hiIAk`yAqcL%Oi?Q5=abnF^BQ-7ziePPVdiXs*76X91LRvLPiH{qQjy*3kR^V5FXjRZ6P@E&)xlqF)xwWLFN8tXtOPajlETx@w51DKhG$^|4!bj$OZl+OU2oL)5r72CsiVyD?D#rl_#b`jCI$? zF5)p{ZloPeeKrNEC`~bRUPIf~MmKn{wI;P=43gK6lH5!>8AomGL>T%uA@ia9hy$q%NRj9$Tp?qI8I!`#6~+#rz>Bn5zOHVPiay@B z)KNvIz~Xw}tUKA;GmdlQqa--t!Hq`9Y

TAE{SEC`;(g5DusXK#@;V2Gh&@x<9H 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 literal 0 HcmV?d00001 diff --git a/research/complex-571-cold14-j1/data/PLAN.json b/research/complex-571-cold14-j1/data/PLAN.json new file mode 100644 index 0000000000..83214aaa43 --- /dev/null +++ b/research/complex-571-cold14-j1/data/PLAN.json @@ -0,0 +1,43333 @@ +{ + "status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION", + "mode": "frozen-saturation-pattern-time-matching", + "K": 4, + "T": 8, + "M": 73, + "L": 9, + "live": 7168, + "deficit": 2560, + "profile": { + "1": 185861, + "2": 32469, + "3": 23608, + "4": 14128, + "5": 5040, + "6": 2016, + "8": 583, + "16": 15, + "25": 1, + "32": 76, + "40": 1, + "48": 2039 + }, + "order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "windows": { + "0,0": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,2": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,1": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,3": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,5": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,7": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,9": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,11": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,12": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,13": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,14": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,15": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,16": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,17": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "1,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,1": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,3": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,5": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,7": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,9": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,11": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,12": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,13": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,14": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,15": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,16": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,17": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "2,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,1": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,3": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,5": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,7": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,9": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,11": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,12": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,13": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,14": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,15": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,16": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,17": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "3,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,1": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,3": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,5": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,7": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,9": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,11": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,12": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,13": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,14": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,15": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,16": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,17": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "4,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,1": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,3": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,5": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,7": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,9": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,11": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,12": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,13": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,14": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,15": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,16": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,17": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "5,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,1": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,3": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,5": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,7": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,9": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,11": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,12": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,13": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,14": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,15": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,16": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,17": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "6,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,1": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,3": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,5": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,7": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,9": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,11": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,12": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,13": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,14": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,15": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,16": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,17": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "7,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,1": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,3": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,5": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,7": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,9": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,11": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,12": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,13": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,14": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,15": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,16": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,17": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ] + }, + "sides": { + "0": 0, + "2": 1, + "1": 0, + "3": 1, + "4": 0, + "6": 1, + "5": 0, + "7": 1, + "8": 0, + "10": 1, + "9": 0, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1 + }, + "pairs": { + "0": 1, + "2": 1, + "1": 1, + "3": 1, + "4": 2, + "6": 2, + "5": 2, + "7": 2, + "8": 3, + "10": 3, + "9": 3, + "11": 3, + "12": 0, + "13": 0, + "14": 1, + "15": 1, + "16": 2, + "17": 2 + }, + "solver_status": "relocate_swap_chain_flip_annealing_of_pr601_literal_map", + "gap": null, + "provider_calls": [ + { + "time": 0, + "stage": 0, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 1, + "stage": 0, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 2, + "stage": 1, + "replica": 0, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 3, + "stage": 0, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 4, + "stage": 1, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 5, + "stage": 2, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 6, + "stage": 0, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 7, + "stage": 1, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 8, + "stage": 2, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 9, + "stage": 3, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 10, + "stage": 0, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 11, + "stage": 1, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 12, + "stage": 2, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 13, + "stage": 3, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 14, + "stage": 4, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 15, + "stage": 0, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 16, + "stage": 1, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 17, + "stage": 2, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 18, + "stage": 3, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 19, + "stage": 4, + "replica": 1, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 20, + "stage": 5, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 21, + "stage": 0, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 22, + "stage": 1, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 23, + "stage": 2, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 24, + "stage": 3, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 25, + "stage": 4, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 26, + "stage": 5, + "replica": 1, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 27, + "stage": 0, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 28, + "stage": 6, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 29, + "stage": 1, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 30, + "stage": 2, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 31, + "stage": 3, + "replica": 4, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 32, + "stage": 4, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 33, + "stage": 5, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 34, + "stage": 6, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 35, + "stage": 1, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 36, + "stage": 7, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 37, + "stage": 2, + "replica": 6, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 38, + "stage": 3, + "replica": 5, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 39, + "stage": 4, + "replica": 4, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 40, + "stage": 5, + "replica": 3, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 41, + "stage": 6, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 42, + "stage": 7, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 43, + "stage": 2, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 44, + "stage": 8, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 45, + "stage": 3, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 46, + "stage": 4, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 47, + "stage": 5, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 48, + "stage": 6, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 49, + "stage": 7, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 50, + "stage": 8, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 51, + "stage": 3, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 52, + "stage": 4, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 53, + "stage": 5, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 54, + "stage": 6, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 55, + "stage": 7, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 56, + "stage": 8, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 57, + "stage": 4, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 58, + "stage": 5, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 59, + "stage": 6, + "replica": 5, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 60, + "stage": 7, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 61, + "stage": 8, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 62, + "stage": 5, + "replica": 7, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 63, + "stage": 6, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 64, + "stage": 7, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 65, + "stage": 8, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 66, + "stage": 6, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 67, + "stage": 7, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 68, + "stage": 8, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 69, + "stage": 7, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 70, + "stage": 8, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 71, + "stage": 8, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + } + ], + "per_call_widths": [ + { + "stage": 0, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + } + ], + "provider_registry": { + "atm3": { + "directory": "providers/atm3", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "3162da180b7da8bd9d9fcded2d3618ad19110be8dab68a25099dc3565ad7b10b", + "LOCAL-PROGRAMS.json.gz": "3a21c1f45cbba24e0e2666ddfe6e9c3a2c99db9828b2080bf48c6b3b16ea88e2", + "LOCAL-CHECKS.json": "8a8ac44c79691aed3008e1bd4211cd6479ee7e6bca27c822591aee49a3c9d4a2", + "INDEPENDENT-LOCAL-REPLAY.json": "00e67d2100f8e80a1c4bb45f586e9d560b03584987c2714ef728bfe94087747d", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "dbf6926b1ee518e94148aca0e0f632d2f52a76124d54216f11903f2c45fbf397", + "RESIDUAL-ADAPTERS.json": "6c0dc81ae31583c9c099bf74eaa5d607bc6fa108c10edb4a1cf8dfa26dfeee9e" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f", + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "ck": { + "directory": "providers/ck", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "905455c055b9cb621ab484145a70ebba9aff39c01804ed4e9c3bdd21ad2ff102", + "LOCAL-PROGRAMS.json.gz": "5985ef4cb25adce746d4c74c5c0858bc8311091abf5b85802ccba9d92602a4a2", + "LOCAL-CHECKS.json": "5d3ab8bbe152d1e8e1c6ccaacdb37a74308b3ae6ebf9ec3c86dbc233bcc92dad", + "INDEPENDENT-LOCAL-REPLAY.json": "9e57dd6d3a8eed601f497e858275014f03e31aa6ac06226df75dd9f00f28655a", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "fc1cd2ccf0b55fe100611149bd785a68eeee690e1d74c9082497ab154f2cac2e", + "RESIDUAL-ADAPTERS.json": "fd34bb086ed7078bbc420c167459bf7bc8b48c8497dcb4280d65eb3df2e62e2b" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab", + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + } + }, + "jp8": { + "directory": "providers/jp8", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "137c7b29a3088e2722c60d5df1f6d352d619eba3057a91cd8e1b8d0a2e4327aa", + "LOCAL-PROGRAMS.json.gz": "7f3ccd0d058e817b1bb12f9dc7c1b9c719f2e78e4f12f257dcfbb688fcb96261", + "LOCAL-CHECKS.json": "62f7d8218432f27af220a4ca3b22a90a9ddb5d637b3880b4d7cf55042ee07b62", + "INDEPENDENT-LOCAL-REPLAY.json": "40c6da4caa854459d1d0354a983aabdea0804740281deed06d01d7d2249fffcb", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "424238ad34892eff68e60a456d563e0f65db83b5761cacac8a09467c362b82b4", + "RESIDUAL-ADAPTERS.json": "daf5f638a222d5b48e60a60e9f8badf8c4f46da1f7e472e91f350881b808be6f" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24", + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + } + } + }, + "source_plan_sha256": "329750b57d80ee60893ca1be6bba38f39a2264dd63bf2158ca0ac68f406326cd", + "assignment_sha256": "ea89982f18cb1efda976303cc76cc5cb9fd40463872474540944b5071da7af33", + "source_owners_sha256": "ad0e3e6fd1743792257e5e935164680aa0dba832c45daee9a8a0fc985948af1a" +} diff --git a/research/complex-571-cold14-j1/data/SPEC.json b/research/complex-571-cold14-j1/data/SPEC.json new file mode 100644 index 0000000000..16bb2d7281 --- /dev/null +++ b/research/complex-571-cold14-j1/data/SPEC.json @@ -0,0 +1,2867 @@ +{ + "schema": "witness-spec/1", + "name": "cold14", + "data": { + "plan_sha256": "3b53aa968ca382d2ee43b32a8aeee5a4c5864b316e59ac16443672f0d337b61b", + "owners_sha256": "ea89982f18cb1efda976303cc76cc5cb9fd40463872474540944b5071da7af33" + }, + "providers": { + "atm3": { + "semantic_phase_sha256": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "width_digest": "d8f672f88571c6d783df116271639de33cf174409208896e5cc8aa441e438a3b", + "program_hashes": { + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9", + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "LOCAL-CHECKS.json": "8a8ac44c79691aed3008e1bd4211cd6479ee7e6bca27c822591aee49a3c9d4a2", + "RESIDUAL-ADAPTERS.json": "6c0dc81ae31583c9c099bf74eaa5d607bc6fa108c10edb4a1cf8dfa26dfeee9e" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "prefix_bits": 46, + "coefficient_work_primitive_count": 104091, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "prefix_bits": 41, + "coefficient_work_primitive_count": 104059, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 228, + "entrance_rank": 476, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 62, + "5": 8, + "7": 78, + "8": 94, + "9": 262 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 420208, + "local_primitive_bound": 10897815672078, + "compiler": 25934336, + "children": 3668, + "paid_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9", + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "expected_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "coefficient_work_primitive_count": 104091 + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "coefficient_work_primitive_count": 104059 + } + }, + "entering": 228, + "entrance": 476, + "inventory": { + "4": 62, + "5": 8, + "7": 78, + "8": 94, + "9": 262 + }, + "wrappers": 242, + "phase_edges": 3040, + "native_negative_controls": 25 + }, + "ck": { + "semantic_phase_sha256": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "width_digest": "14aced4c069fd0bb6beef61e440fb553ae2830626a981c3939212526e6d1cfa1", + "program_hashes": { + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254", + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "LOCAL-CHECKS.json": "5d3ab8bbe152d1e8e1c6ccaacdb37a74308b3ae6ebf9ec3c86dbc233bcc92dad", + "RESIDUAL-ADAPTERS.json": "fd34bb086ed7078bbc420c167459bf7bc8b48c8497dcb4280d65eb3df2e62e2b" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "prefix_bits": 46, + "coefficient_work_primitive_count": 104091, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "prefix_bits": 41, + "coefficient_work_primitive_count": 104059, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 242, + "post_wrappers": 242, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 228, + "entrance_rank": 436, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 22, + "5": 48, + "7": 78, + "8": 94, + "9": 262 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 420208, + "local_primitive_bound": 10897815672078, + "compiler": 25934336, + "children": 3668, + "paid_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254", + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + } + }, + "expected_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210190, + "prefix_l1": "114367887736825/2", + "coefficient_work_primitive_count": 104091 + }, + "forward": { + "events": 26883, + "macros": 21567, + "real_component_primitives": 210142, + "prefix_l1": "4045182541641/2", + "coefficient_work_primitive_count": 104059 + } + }, + "entering": 228, + "entrance": 436, + "inventory": { + "4": 22, + "5": 48, + "7": 78, + "8": 94, + "9": 262 + }, + "wrappers": 242, + "phase_edges": 3040, + "native_negative_controls": 25 + }, + "jp8": { + "semantic_phase_sha256": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "width_digest": "b343e61e4e27f00bd5ebec34bd679b5044305a43d3677d8150be28f3d59505b0", + "program_hashes": { + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892", + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + "artifacts": { + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "LOCAL-CHECKS.json": "62f7d8218432f27af220a4ca3b22a90a9ddb5d637b3880b4d7cf55042ee07b62", + "RESIDUAL-ADAPTERS.json": "daf5f638a222d5b48e60a60e9f8badf8c4f46da1f7e472e91f350881b808be6f" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + }, + "complete_contract": { + "local": { + "backward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205524, + "prefix_l1": "1136522369138750", + "prefix_bits": 51, + "coefficient_work_primitive_count": 101768, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 230, + "post_wrappers": 230, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205476, + "prefix_l1": "17821429754809/2", + "prefix_bits": 44, + "coefficient_work_primitive_count": 101736, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 230, + "post_wrappers": 230, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "v": 112, + "h": 9, + "n": 728, + "entering_helpers": 216, + "entrance_rank": 392, + "terminal_codimension": 116, + "hyperplane_ended_helpers": 60, + "cold_hyperplane_ended_helpers": 14, + "width_inventory": { + "4": 22, + "5": 48, + "7": 46, + "8": 114, + "9": 274 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 410672, + "local_primitive_bound": 10650505839316, + "compiler": 25934336, + "children": 3576, + "paid_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "program_hashes": { + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892", + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + } + }, + "expected_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205524, + "prefix_l1": "1136522369138750", + "coefficient_work_primitive_count": 101768 + }, + "forward": { + "events": 26275, + "macros": 21063, + "real_component_primitives": 205476, + "prefix_l1": "17821429754809/2", + "coefficient_work_primitive_count": 101736 + } + }, + "entering": 216, + "entrance": 392, + "inventory": { + "4": 22, + "5": 48, + "7": 46, + "8": 114, + "9": 274 + }, + "wrappers": 230, + "phase_edges": 2951, + "native_negative_controls": 25 + } + }, + "dispatch": [ + [ + 0, + 0, + "ck" + ], + [ + 0, + 1, + "ck" + ], + [ + 0, + 2, + "atm3" + ], + [ + 0, + 3, + "ck" + ], + [ + 0, + 4, + "ck" + ], + [ + 0, + 5, + "ck" + ], + [ + 0, + 6, + "ck" + ], + [ + 0, + 7, + "atm3" + ], + [ + 1, + 0, + "ck" + ], + [ + 1, + 1, + "ck" + ], + [ + 1, + 2, + "ck" + ], + [ + 1, + 3, + "ck" + ], + [ + 1, + 4, + "ck" + ], + [ + 1, + 5, + "ck" + ], + [ + 1, + 6, + "atm3" + ], + [ + 1, + 7, + "jp8" + ], + [ + 2, + 0, + "ck" + ], + [ + 2, + 1, + "ck" + ], + [ + 2, + 2, + "ck" + ], + [ + 2, + 3, + "ck" + ], + [ + 2, + 4, + "ck" + ], + [ + 2, + 5, + "ck" + ], + [ + 2, + 6, + "atm3" + ], + [ + 2, + 7, + "ck" + ], + [ + 3, + 0, + "jp8" + ], + [ + 3, + 1, + "ck" + ], + [ + 3, + 2, + "ck" + ], + [ + 3, + 3, + "ck" + ], + [ + 3, + 4, + "atm3" + ], + [ + 3, + 5, + "atm3" + ], + [ + 3, + 6, + "ck" + ], + [ + 3, + 7, + "ck" + ], + [ + 4, + 0, + "ck" + ], + [ + 4, + 1, + "atm3" + ], + [ + 4, + 2, + "atm3" + ], + [ + 4, + 3, + "jp8" + ], + [ + 4, + 4, + "atm3" + ], + [ + 4, + 5, + "ck" + ], + [ + 4, + 6, + "ck" + ], + [ + 4, + 7, + "atm3" + ], + [ + 5, + 0, + "atm3" + ], + [ + 5, + 1, + "atm3" + ], + [ + 5, + 2, + "atm3" + ], + [ + 5, + 3, + "atm3" + ], + [ + 5, + 4, + "ck" + ], + [ + 5, + 5, + "jp8" + ], + [ + 5, + 6, + "ck" + ], + [ + 5, + 7, + "atm3" + ], + [ + 6, + 0, + "atm3" + ], + [ + 6, + 1, + "jp8" + ], + [ + 6, + 2, + "ck" + ], + [ + 6, + 3, + "ck" + ], + [ + 6, + 4, + "ck" + ], + [ + 6, + 5, + "atm3" + ], + [ + 6, + 6, + "ck" + ], + [ + 6, + 7, + "ck" + ], + [ + 7, + 0, + "atm3" + ], + [ + 7, + 1, + "jp8" + ], + [ + 7, + 2, + "atm3" + ], + [ + 7, + 3, + "ck" + ], + [ + 7, + 4, + "ck" + ], + [ + 7, + 5, + "ck" + ], + [ + 7, + 6, + "atm3" + ], + [ + 7, + 7, + "ck" + ], + [ + 8, + 0, + "atm3" + ], + [ + 8, + 1, + "ck" + ], + [ + 8, + 2, + "atm3" + ], + [ + 8, + 3, + "ck" + ], + [ + 8, + 4, + "ck" + ], + [ + 8, + 5, + "ck" + ], + [ + 8, + 6, + "ck" + ], + [ + 8, + 7, + "ck" + ] + ], + "call_order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "expected": { + "provider_counts": { + "ck": 44, + "atm3": 22, + "jp8": 6 + }, + "global_profile": { + "1": 185861, + "2": 32469, + "3": 23608, + "4": 14128, + "5": 5040, + "6": 2016, + "8": 583, + "16": 15, + "25": 1, + "32": 76, + "40": 1, + "48": 2039 + }, + "owners_per_call": 728, + "hosted_residuals": 36288, + "rank_mass": 520704, + "actual_73column_sigmas": 8401, + "cross_replica_helper_roles": 29014, + "idle_remainders": 2293, + "live": 7168, + "physical": 7682, + "deficit": 2560, + "entering_helper_roles": 16344, + "idle_remainder_profile": { + "1": 141, + "2": 5, + "3": 8, + "8": 7, + "16": 15, + "25": 1, + "32": 76, + "40": 1, + "48": 2039 + }, + "complex_lower": "101429763423703253827/62500000000000000000000", + "conservative_complex_lower": "811438105946977474197/500000000000000000000000", + "kappa": "810123377429359/500000000000000000", + "kappa_decimal": "0.001620246754858718", + "conservative_kappa_decimal": "0.001620246751982763", + "gain_baseline_kappa": "0.001601260169988325", + "mutations_rejected": 31, + "assembly_controls_rejected": 155 + }, + "build": { + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "sources": { + "multicold": { + "dir": "complex-multicold", + "pr": 568, + "commit": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "manifest_sha256": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "full_tree": true, + "files": { + "data/EIGHT-COLD.json": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "data/EIGHT-MULTICOLD.json": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9" + } + }, + "structural_gain": { + "dir": "structural-gain", + "pr": 571, + "commit": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "manifest_sha256": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "full_tree": false, + "files": { + "frontier-composition/combined-prefix-word/FULL-WORD.json.gz": "a6cd88224427bad6d00b6fbe1d201a2c09e496c90e2cecdc04d7f2ff11a4ba42" + } + }, + "larger_gain": { + "dir": "larger-gain", + "pr": 569, + "commit": "897213a855b7fb8a1b8b0e552a2f5c42e6c1b326", + "manifest_sha256": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "full_tree": false, + "files": { + "providers/build_entrance_promotions.py": "50737e20553b5d44381c58e5b35b5031a6797dfdda1c67a1656069f1f6203cd2", + "providers/coupled_frames_base.py": "b6033cd2959297a624b557f3d04665c8fbb680a4c0987daf0704ef93711700bd", + "providers/search_suffix_kernels.py": "0523c90f036ff01cac9299fe4e47dc40dd04f264f09415985d2c98b4da43371c" + } + }, + "joint_prefix": { + "dir": "complex-joint-prefix", + "pr": 575, + "commit": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "manifest_sha256": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "full_tree": false, + "files": { + "code/audit_joint_prefix.py": "c01836709f3650a39c46418ac1771980b4b96288e60b51032b5d31419e484c37", + "code/audit_multicold_controls.py": "3ff631f0bdc7e707d4296ff441802cc26da9c6556650469f09ab7253558b4017", + "code/build_joint_prefix.py": "d7804669e528b6fd8d80195a4a2e76efac9bc67440b82c73973f4bc9fe273783", + "data/EIGHTCOLD-JOINT-KERNELS.json": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "data/JOINT-PREFIX.json": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2" + } + }, + "frame_coalescing": { + "dir": "kernel-frame-coalescing", + "pr": 583, + "commit": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "manifest_sha256": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "full_tree": false, + "files": { + "code/build_frames.py": "59f486c52293c76f1f6140c5f12f7a555a956b455e853c79136fc227deefbc3d" + } + } + }, + "providers": { + "atm3": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6" + }, + "steps": [ + { + "type": "promote", + "recipe": "pkg:data/recipes/atm3-step0-promote.json", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "recipe_sha256": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "omission_controls": 4, + "output_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9" + }, + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/atm3-step1-greedy_kernels.json", + "input_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9", + "recipe_sha256": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "omission_controls": 48, + "output_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/atm3-step2-frame_coalesce.json", + "input_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236", + "recipe_sha256": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "negative_controls": 12, + "output_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/atm3-step3-gate_move_coalesce.json", + "input_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472", + "recipe_sha256": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "negative_controls": 6, + "output_content_sha256": "f3f56a044177e0d4e3c0a8d47ce8d7ae90ad3332935d0c7dfb6b8cf28e290df4" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/atm3-step4-hyperplane_end.json", + "input_content_sha256": "f3f56a044177e0d4e3c0a8d47ce8d7ae90ad3332935d0c7dfb6b8cf28e290df4", + "recipe_sha256": "aaf94d63a3756211f08d73ebe30bcba5554bf543b77311294aaff3ab3bfb5d13", + "negative_controls": 21, + "output_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/atm3-step5-cold_end.json.gz", + "input_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6", + "recipe_sha256": "a1669e97de185a9eb054f95dcf54f0c99b11fd51a71fb4b7d8b161fa2ad8a8b0", + "negative_controls": 14, + "output_content_sha256": "c808d7e69b2ffeec967381845fd4f0fc9c5fff5674d7eaa43339ca1c940c8a2c" + } + ], + "word_content_sha256": "c808d7e69b2ffeec967381845fd4f0fc9c5fff5674d7eaa43339ca1c940c8a2c" + }, + "ck": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6" + }, + "steps": [ + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/ck-step0-greedy_kernels.json", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "recipe_sha256": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "omission_controls": 48, + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/ck-step1-frame_coalesce.json", + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "recipe_sha256": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "negative_controls": 12, + "output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/ck-step2-gate_move_coalesce.json", + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "recipe_sha256": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "negative_controls": 6, + "output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/ck-step3-hyperplane_end.json", + "input_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "recipe_sha256": "e771ec08d638071283afed235bf4d35550b38bebe648d2a0377a430e96327e15", + "negative_controls": 21, + "output_content_sha256": "1f113dd38e5a6f4250cbcb6f15514e0b9ef79c1076a21116b181918a68c5aa9a" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/ck-step4-cold_end.json.gz", + "input_content_sha256": "1f113dd38e5a6f4250cbcb6f15514e0b9ef79c1076a21116b181918a68c5aa9a", + "recipe_sha256": "0190c405f59859d1c4750557c14e2dd39a39b75411b320d5b9c280a654608671", + "negative_controls": 14, + "output_content_sha256": "7521225922d79abaa44aa313a90fbdb94a1cd78f2dd089f51bb149a6481afcb9" + } + ], + "word_content_sha256": "7521225922d79abaa44aa313a90fbdb94a1cd78f2dd089f51bb149a6481afcb9" + }, + "jp8": { + "base": { + "kind": "frozen558_promoted", + "content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d" + }, + "steps": [ + { + "type": "cold_kernel", + "recipe": "multicold:data/EIGHT-COLD.json", + "input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "recipe_sha256": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "omission_controls": 6, + "output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d" + }, + { + "type": "multicut", + "recipe": "multicold:data/EIGHT-MULTICOLD.json", + "input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "recipe_sha256": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9", + "omission_controls": 32, + "output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f" + }, + { + "type": "frozen558_scalar_audits" + }, + { + "type": "joint_prefix", + "variant": "eightcold", + "kernel_recipes": "joint_prefix:data/EIGHTCOLD-JOINT-KERNELS.json", + "recipe": "joint_prefix:data/JOINT-PREFIX.json", + "input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "recipe_sha256": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2", + "kernel_recipes_sha256": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "omission_controls": 135, + "rank5_controls": 8, + "joint_negative_controls": 15, + "output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/jp8-step4-hyperplane_end.json", + "input_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533", + "recipe_sha256": "7e3d021c7498b3a65345d74d008af5aa87249ec1dc082914ea0beb17908f8f81", + "negative_controls": 21, + "output_content_sha256": "b31897ec0a49cdf2988f2533e8030e34b8cd7b7a940d137bea35a91db97465c7" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/jp8-step5-cold_end.json.gz", + "input_content_sha256": "b31897ec0a49cdf2988f2533e8030e34b8cd7b7a940d137bea35a91db97465c7", + "recipe_sha256": "56f5be104c6a943115ffd845c0967b552870fc5da96e74aecc15dea9a3c8d77a", + "negative_controls": 14, + "output_content_sha256": "2c7bfea5286d6831e7fe14b4b10acce73bb949bee83513324cf2f181a510c054" + } + ], + "word_content_sha256": "2c7bfea5286d6831e7fe14b4b10acce73bb949bee83513324cf2f181a510c054" + } + } + } +} diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step0-promote.json b/research/complex-571-cold14-j1/data/recipes/atm3-step0-promote.json new file mode 100644 index 0000000000..1f078bea4f --- /dev/null +++ b/research/complex-571-cold14-j1/data/recipes/atm3-step0-promote.json @@ -0,0 +1 @@ +[{"pivot": 627, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 629, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 630, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 631, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 635, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 637, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 638, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 639, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 651, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 653, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 654, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 655, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 659, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 661, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 662, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 663, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 667, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 669, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 670, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 671, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 683, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 685, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 686, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 687, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 691, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 693, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 694, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 695, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 699, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 701, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 702, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 703, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 707, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 709, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 710, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 711, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 715, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 717, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 718, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 719, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}] \ No newline at end of file diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step1-greedy_kernels.json b/research/complex-571-cold14-j1/data/recipes/atm3-step1-greedy_kernels.json new file mode 100644 index 0000000000..db3a406ee2 --- /dev/null +++ b/research/complex-571-cold14-j1/data/recipes/atm3-step1-greedy_kernels.json @@ -0,0 +1,561 @@ +{ + "input_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9", + "output_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236", + "kernels": [ + { + "pivot": 462, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 39, + "donor": 476, + "coefficient": "1", + "donor_state": [ + 476, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 40, + "donor": 477, + "coefficient": "1", + "donor_state": [ + 477, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 49, + "donor": 463, + "coefficient": "-1", + "donor_state": [ + 463, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 464, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 25, + "donor": 474, + "coefficient": "1", + "donor_state": [ + 474, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 26, + "donor": 475, + "coefficient": "1", + "donor_state": [ + 475, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 465, + "coefficient": "-1", + "donor_state": [ + 465, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 466, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 35, + "donor": 478, + "coefficient": "1", + "donor_state": [ + 478, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 36, + "donor": 479, + "coefficient": "1", + "donor_state": [ + 479, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 467, + "coefficient": "-1", + "donor_state": [ + 467, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 468, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 29, + "donor": 480, + "coefficient": "1", + "donor_state": [ + 480, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 30, + "donor": 481, + "coefficient": "1", + "donor_state": [ + 481, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 469, + "coefficient": "-1", + "donor_state": [ + 469, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 490, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 33, + "donor": 491, + "coefficient": "-1", + "donor_state": [ + 491, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 502, + "coefficient": "1", + "donor_state": [ + 502, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 503, + "coefficient": "1", + "donor_state": [ + 503, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 492, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 44, + "donor": 493, + "coefficient": "-1", + "donor_state": [ + 493, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 504, + "coefficient": "1", + "donor_state": [ + 504, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 505, + "coefficient": "1", + "donor_state": [ + 505, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 514, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 38, + "donor": 526, + "coefficient": "1", + "donor_state": [ + 526, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 39, + "donor": 527, + "coefficient": "1", + "donor_state": [ + 527, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 57, + "donor": 515, + "coefficient": "-1", + "donor_state": [ + 515, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 516, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 51, + "donor": 528, + "coefficient": "1", + "donor_state": [ + 528, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 52, + "donor": 529, + "coefficient": "1", + "donor_state": [ + 529, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 64, + "donor": 517, + "coefficient": "-1", + "donor_state": [ + 517, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 510, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 712, + "donor": 511, + "coefficient": "-1", + "donor_state": [ + 511, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 524, + "coefficient": "1", + "donor_state": [ + 524, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 525, + "coefficient": "1", + "donor_state": [ + 525, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 512, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 717, + "donor": 513, + "coefficient": "-1", + "donor_state": [ + 513, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 522, + "coefficient": "1", + "donor_state": [ + 522, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 523, + "coefficient": "1", + "donor_state": [ + 523, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 586, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 822, + "donor": 587, + "coefficient": "-1", + "donor_state": [ + 587, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 598, + "coefficient": "1", + "donor_state": [ + 598, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 599, + "coefficient": "1", + "donor_state": [ + 599, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 588, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 827, + "donor": 589, + "coefficient": "-1", + "donor_state": [ + 589, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 600, + "coefficient": "1", + "donor_state": [ + 600, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 601, + "coefficient": "1", + "donor_state": [ + 601, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + } + ], + "source": "coldk greedy (multi-cut, cand all, ranks [1, 2, 3], targets false, kmax 6) on w/A_t_m3/FULL-WORD.json.gz", + "final_local_profile": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "seconds": 0.5898449 +} diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step2-frame_coalesce.json b/research/complex-571-cold14-j1/data/recipes/atm3-step2-frame_coalesce.json new file mode 100644 index 0000000000..fb5e59269a --- /dev/null +++ b/research/complex-571-cold14-j1/data/recipes/atm3-step2-frame_coalesce.json @@ -0,0 +1,173 @@ +{ + "after": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 465, + 464, + 1, + 1, + [ + 126, + 1 + ] + ], + "before": [ + "add", + 465, + 464, + 1, + 1, + [ + 1 + ] + ], + "index": 78, + "section": "A" + }, + { + "after": [ + "add", + 467, + 466, + 1, + 1, + [ + 121, + 7 + ] + ], + "before": [ + "add", + 467, + 466, + 1, + 1, + [ + 7 + ] + ], + "index": 75, + "section": "A" + }, + { + "after": [ + "add", + 469, + 468, + 1, + 1, + [ + 120, + 7 + ] + ], + "before": [ + "add", + 469, + 468, + 1, + 1, + [ + 7 + ] + ], + "index": 72, + "section": "A" + }, + { + "after": [ + "add", + 463, + 462, + 1, + 1, + [ + 120, + 1 + ] + ], + "before": [ + "add", + 463, + 462, + 1, + 1, + [ + 1 + ] + ], + "index": 69, + "section": "A" + }, + { + "after": [ + "add", + 517, + 516, + 1, + 1, + [ + 103, + 31 + ] + ], + "before": [ + "add", + 517, + 516, + 1, + 1, + [ + 31 + ] + ], + "index": 66, + "section": "A" + }, + { + "after": [ + "add", + 515, + 514, + 1, + 1, + [ + 102, + 31 + ] + ], + "before": [ + "add", + 515, + 514, + 1, + 1, + [ + 31 + ] + ], + "index": 61, + "section": "A" + } + ], + "input_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236" +} diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step3-gate_move_coalesce.json b/research/complex-571-cold14-j1/data/recipes/atm3-step3-gate_move_coalesce.json new file mode 100644 index 0000000000..ac941259cb --- /dev/null +++ b/research/complex-571-cold14-j1/data/recipes/atm3-step3-gate_move_coalesce.json @@ -0,0 +1,85 @@ +{ + "after": { + "1": 2484, + "2": 492, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 491, + 490, + 1, + 1, + [ + 96, + 25 + ] + ], + "before": [ + "add", + 491, + 490, + 1, + 1, + [ + 25 + ] + ], + "index": 35, + "section": "A" + }, + { + "after": [ + "add", + 493, + 492, + 1, + 1, + [ + 97, + 25 + ] + ], + "before": [ + "add", + 493, + 492, + 1, + 1, + [ + 25 + ] + ], + "index": 48, + "section": "A" + } + ], + "input_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472", + "moves": [ + { + "from": 33, + "section": "A", + "to": 35 + }, + { + "from": 46, + "section": "A", + "to": 48 + } + ] +} diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step4-hyperplane_end.json b/research/complex-571-cold14-j1/data/recipes/atm3-step4-hyperplane_end.json new file mode 100644 index 0000000000..8b3ce2d2e0 --- /dev/null +++ b/research/complex-571-cold14-j1/data/recipes/atm3-step4-hyperplane_end.json @@ -0,0 +1,649 @@ +{ + "changes": [ + { + "helper": 448, + "cleanup_index": 686, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 449, + "cleanup_index": 685, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 450, + "cleanup_index": 684, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 451, + "cleanup_index": 683, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 452, + "cleanup_index": 682, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 453, + "cleanup_index": 681, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 454, + "cleanup_index": 680, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 455, + "cleanup_index": 679, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 456, + "cleanup_index": 678, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 457, + "cleanup_index": 677, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 458, + "cleanup_index": 676, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 459, + "cleanup_index": 675, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 460, + "cleanup_index": 670, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 461, + "cleanup_index": 669, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 470, + "cleanup_index": 660, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 471, + "cleanup_index": 659, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 472, + "cleanup_index": 654, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 473, + "cleanup_index": 653, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 482, + "cleanup_index": 644, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 483, + "cleanup_index": 643, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 496, + "cleanup_index": 621, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 497, + "cleanup_index": 620, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 520, + "cleanup_index": 579, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 521, + "cleanup_index": 578, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 544, + "cleanup_index": 545, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 545, + "cleanup_index": 544, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 568, + "cleanup_index": 513, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 569, + "cleanup_index": 512, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 580, + "cleanup_index": 497, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 581, + "cleanup_index": 496, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 590, + "cleanup_index": 481, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 591, + "cleanup_index": 480, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 592, + "cleanup_index": 475, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 593, + "cleanup_index": 474, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 602, + "cleanup_index": 465, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 603, + "cleanup_index": 464, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 604, + "cleanup_index": 459, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 605, + "cleanup_index": 458, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 606, + "cleanup_index": 457, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 607, + "cleanup_index": 456, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 609, + "cleanup_index": 454, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 611, + "cleanup_index": 452, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 612, + "cleanup_index": 451, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 613, + "cleanup_index": 450, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 614, + "cleanup_index": 449, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 615, + "cleanup_index": 448, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + } + ], + "output_content_sha256": "b228d41a906042f10b0d5169c9fd011d175e6a4fee41156d24ffc253cfe4aee6" +} diff --git a/research/complex-571-cold14-j1/data/recipes/atm3-step5-cold_end.json.gz b/research/complex-571-cold14-j1/data/recipes/atm3-step5-cold_end.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8cc84ee0dc8daeea521f07edba7d8d5e36d4a4a GIT binary patch literal 32701 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 new frame), frame fields only on scalar events, report changes limited.""" + assert source.keys()==word.keys() + for section in source: + if section in ('A','cut','B','cleanup','precondition'): + assert len(source[section])==len(word[section]) + assert all(x[:-1]==y[:-1]for x,y in zip(source[section],word[section])),'scalar operation changed' + elif section not in ('start_extra','report'):assert source[section]==word[section],'fixed field changed: '+section + entrances=dict(source['start_extra']) + for r in recipes: + k=str(r['pivot']);assert sorted(entrances[k])==sorted(r['old_frame']) and len(r['new_frame'])==len(r['old_frame'])+1,'wrong old entrance '+k + entrances[k]=word['start_extra'][k];assert sorted(entrances[k])==sorted(r['new_frame']),'wrong new entrance '+k + assert word['start_extra']==entrances,'entrance changed outside the recipe' + allowed={'local_profile','local_rank_mass','entrance_rank','entering_helpers','width_inventory'} + assert source['report'].keys()==word['report'].keys() and all(source['report'][k]==word['report'][k]for k in source['report']if k not in allowed) +def promote(word,s,out,tag): + src,builder,deps=PROMOTER;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + for f in deps:ref(src+':'+f) + run(tag+'-construction',ref(src+':'+builder),'--word',word,'--recipes',recipe,'--gk-dir',GK,'--out',out) + a,b,r=read(word),read(out/'FULL-WORD.json.gz'),read(recipe);frame_only(a,b,r) + import copy + rejected=[] + for name,mut in (('reverted_promotion',lambda w:w['start_extra'].__setitem__(str(r[0]['pivot']),list(r[0]['old_frame']))), + ('scalar_operation_changed',lambda w:w['B'][0].insert(0,'mutated')),('extra_entrance_changed',lambda w:w['start_extra'].__setitem__(next(k for k in w['start_extra']if k not in{str(x['pivot'])for x in r}),[])), + ('fixed_field_changed',lambda w:w.__setitem__('cut',w['cut'][:-1]))): + w=copy.deepcopy(b);mut(w) + try:frame_only(a,w,r) + except(AssertionError,KeyError,IndexError,TypeError):rejected.append(name) + else:raise AssertionError('frame-only control accepted: '+name) + dump(out/'FRAME-ONLY-CONTROLS.json',dict(status='PASS_FRAME_ONLY_PROMOTION_TRANSFER',promotions=len(r),controls=rejected)) + omissions(out/'FRAME-ONLY-CONTROLS.json',s,tag) +JOINT=('joint_prefix',('code/build_joint_prefix.py','code/audit_joint_prefix.py','code/audit_multicold_controls.py')) +def joint_prefix(word,s,out,tag): + """PR575's unchanged joint-prefix constructor with its paired audits: all-kernel omissions, rank-five omissions and + the independent literal-prefix/coverage audit (variant and kernel recipe named in the step).""" + src,(builder,audit,omit)=JOINT;recipe=ref(s['recipe']);kern=ref(s['kernel_recipes']);pinned(s,'recipe_sha256',sha(recipe),tag);pinned(s,'kernel_recipes_sha256',sha(kern),tag) + assert s['variant'] in ('eightcold','width7') + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--variant',s['variant'],'--gk-dir',GK,'--out',out) + shutil.copyfile(RAW.parent/'PROMOTION.json',out/'PROMOTION.json') + run(tag+'-all-kernel-omissions',ref(src+':'+omit),'--word',out/'FULL-WORD.json.gz','--recipe',kern,'--out',out/'ALL-KERNEL-CONTROLS.json') + run(tag+'-rank5-omissions',B/'code/audit_promoted_scalar.py',out/'FULL-WORD.json.gz',SEL,out/'RANK5-CONTROLS.json') + run(tag+'-independent-joint-prefix-and-coverage',ref(src+':'+audit),'--source',word,'--word',out/'FULL-WORD.json.gz','--recipe',recipe,'--variant',s['variant'],'--kernel-recipes',kern,'--controls',out/'ALL-KERNEL-CONTROLS.json','--rank5-controls',out/'RANK5-CONTROLS.json','--promotion',out/'PROMOTION.json','--selection',SEL,'--out',out/'JOINT-PREFIX-AUDIT.json') + j=read(out/'JOINT-PREFIX-AUDIT.json');assert j['status']=='PASS_INDEPENDENT_LITERAL_PREFIX_AND_FINAL_KERNEL_COVERAGE' + c=read(out/'ALL-KERNEL-CONTROLS.json');assert all(x['forward_rejected'] and x['reflected_rejected'] for x in c['controls']) + omissions(out/'ALL-KERNEL-CONTROLS.json',s,tag);pinned(s,'rank5_controls',len(read(out/'RANK5-CONTROLS.json')['controls']),tag) + pinned(s,'joint_negative_controls',len(j['negative_controls_rejected']),tag) +COAL=('frame_coalescing','code/build_frames.py') +def frame_coalesce(word,s,out,tag): + """PR583's unchanged frame-coalescence constructor (it re-checks profiles, scalar operations, widths and helper + responses and rejects every omission/over-promotion control), plus an independent check that only the recipe's + gate frames changed (old -> new) and every other field of the word is identical.""" + src,builder=COAL;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_SIX_EXACT_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz');ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'frame changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')) +def gate_move_coalesce(word,s,out,tag): + """This package's code/build_gate_moves.py (PR583's constructor extended by commuting gate moves): every passed gate + must commute, helper responses and widths are unchanged, cleanup follows the inherited inverse rule, and every + omission/over-promotion/unmoved control is rejected; then the same independent comparison as frame_coalesce.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_gate_moves.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes'])+len(r['moves']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz') + for m in r['moves']:L=x[m['section']];L.insert(m['to'],L.pop(m['from'])) + ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','cleanup','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'gate changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + meta=('width_inventory','entering_helpers','entrance_rank');assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')+meta) + sys.path.insert(0,str(GK));import gk_common as GC;GC.V=112;ws=GC.widths_of(y) + assert y['report']['width_inventory']=={str(k):v for k,v in sorted(Counter(ws).items())} and y['report']['entering_helpers']==sum(v<9 for v in ws) and y['report']['entrance_rank']==sum(9-v for v in ws),'descriptive width metadata not normalized' +def hyperplane_end(word,s,out,tag): + """This package's code/build_hpe.py: cleanup gates that commute with the whole skipped cleanup prefix run right after B + at the join frame U of their registers, and the helper ends at U (residual T_U T_E^-1, width |U|-|E|; Lemma C, nested + children, Lemma A). Paired audit: code/hpe_controls_atc.py (exact replay of the reordered program plus HPE raw-word + mutations). Then an independent comparison: only early_cleanup, helper_final and the paid profile change.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_hpe.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/hpe_controls_atc.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'HPE-ATC-CONTROLS.json');assert c['status']=='PASS_HPE_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'early_cleanup','helper_final'} and 'early_cleanup' not in x and all(x[k]==y[k]for k in x if k!='report') + assert y['early_cleanup']==[[z['cleanup_index'],z['frame']]for z in r['changes']] and y['helper_final']=={str(z['helper']):z['frame']for z in r['changes']} + assert x['report'].keys()==y['report'].keys() and all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','width_inventory')) + inv=Counter({int(k):n for k,n in x['report']['width_inventory'].items()}) + for z in r['changes']:e=len(x['start_extra'][str(z['helper'])]);inv[9-e]-=1;inv[len(z['frame'])-e]+=1 + assert y['report']['width_inventory']=={str(k):n for k,n in sorted(inv.items())if n},'descriptive width metadata not |final|-|start|' +def cold_end(word,s,out,tag): + """This package's code/build_cold_end.py: cold helpers end at a low-dimensional frame U (width |U|) under a refactored + exact cleanup: a rank-0 premix at the head of A, multi-gate lower-frame cleanup gates in the early tail and an exact + dyadic FULL remainder that touches no helper ending below FULL. Paired audit: code/cold_end_controls.py (raw-word + mutations of premix placement, lower-frame gates, remainder, cold ends and marker, each rejected by the extended + transport audit). Then an independent comparison: only A's head, the cleanup, early_cleanup, helper_final, the + refactored_cleanup marker and the paid profile / width metadata change, and every inherited HPE end is kept.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_cold_end.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/cold_end_controls.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'COLD-END-CONTROLS.json');assert c['status']=='PASS_COLD_END_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'refactored_cleanup'} and 'refactored_cleanup' not in x + assert all(x[k]==y[k]for k in x if k not in('A','cleanup','early_cleanup','helper_final','report')) + st=lambda h:sorted(x['start_extra'].get(str(h),[]));assert all(2*x['report']['v']<=h and st(h)==sorted(e[-1]) for e in r['premix'] for h in [e[1]]+([e[2]] if e[0]=='add' else [])) + assert y['A']==r['premix']+x['A'] and y['cleanup']==r['cleanup'] and y['early_cleanup']==r['early_cleanup'] + ee=r.get('entering_ends',{});assert y['helper_final']==dict(x['helper_final'],**r['cold_ends'],**ee) and not (set(r['cold_ends'])|set(ee))&set(x['helper_final']) + assert all(h not in x['start_extra'] for h in r['cold_ends']) and all(h in x['start_extra'] for h in ee) and not set(ee)&set(r['cold_ends']) + assert x['report'].keys()==y['report'].keys() and all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','width_inventory')) + inv=Counter({int(k):n for k,n in x['report']['width_inventory'].items()}) + for h,f in r['cold_ends'].items():inv[9]-=1;inv[len(f)]+=1 + for h,f in ee.items():e=len(x['start_extra'][h]);inv[9-e]-=1;inv[len(f)-e]+=1 + assert y['report']['width_inventory']=={str(k):n for k,n in sorted(inv.items())if n},'descriptive width metadata not |final|-|start|' +STEPS={'cold_end':cold_end,'hyperplane_end':hyperplane_end,'cold_kernel':cold_kernel,'multicut':multicut,'greedy_kernels':multicut,'promote':promote,'joint_prefix':joint_prefix,'frame_coalesce':frame_coalesce,'gate_move_coalesce':gate_move_coalesce} +def build_word(pid,d): + base=d['base'];assert base['kind']in('frozen558_promoted','source_file'),base['kind'] + word=RAW if base['kind']=='frozen558_promoted' else ref(base['file']) + pinned(base,'content_sha256',content(word),pid+'.base') + for i,s in enumerate(d['steps']): + tag='%s-step%d-%s'%(pid,i,s['type']);out=O/tag + if s['type']=='frozen558_scalar_audits': + # inherited static44 and rank-five omission audits on a frozen558-descended word + out.mkdir();run(tag+'-static44',F/'complex-local/static44/audit_scalar.py',word,SEL,out/'STATIC44-SCALAR-AUDIT.json') + shutil.copyfile(RAW.parent/'PROMOTION.json',word.parent/'PROMOTION.json') + run(tag+'-rank5',B/'code/audit_promoted_scalar.py',word,SEL,out/'PROMOTED-SCALAR-AUDIT.json');continue + assert s['type'] in STEPS,'step type not allowlisted: '+s['type'] + pinned(s,'input_content_sha256',content(word),tag) + STEPS[s['type']](word,s,out,tag);word=out/'FULL-WORD.json.gz' + pinned(s,'output_content_sha256',content(word),tag) + pinned(d,'word_content_sha256',content(word),pid) + return word +def localize(pid,word): + local=O/(pid+'-local') + # HPE words (helper_final present) use this package's generalised native chain; every other word the unchanged vendor531 one + hp='helper_final' in read(word);NC=(lambda f:P/'code'/('hpe_'+f))if hp else(lambda f:V/'code'/f) + run(pid+'-all-columns-native-frames',NC('audit_and_transport.py'),'--raw',word,'--routing',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz','--out',local) + run(pid+'-both-reflected-ledgers',NC('emit_local.py'),local) + run(pid+'-independent-local-controls',NC('audit_local.py'),local) + run(pid+'-normalized-wrappers',NC('adapters_local.py'),local/'CANONICAL-WORD.json.gz',local/'RESIDUAL-ADAPTERS.json',local/'WRAPPER-CHECKS.json') + run(pid+'-all-phase-edges',B/'code/phases_full.py',local,V/'vendor/clifford') + r=BUILD['providers'][pid].get('retained_local') + if r: # a pinned retained local must be reproduced byte for byte (phase review up to timing) + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','WRAPPER-CHECKS.json','CLIFFORD-RECIPES.json'): + assert sha(local/name)==sha(ref(r+'/'+name)),(pid,name) + fresh,old=read(local/'CLIFFORD-REVIEW.json'),read(ref(r+'/CLIFFORD-REVIEW.json')) + assert {k:v for k,v in fresh.items()if k!='seconds'}=={k:v for k,v in old.items()if k!='seconds'} + return local +reuse=dict(x.split('=',1)for x in a.reuse_local) +words={} +def provider(pid): + word=words[pid]=build_word(pid,BUILD['providers'][pid]) + return Path(reuse[pid]).resolve()if pid in reuse else localize(pid,word) +with ThreadPoolExecutor(max(1,min(a.jobs,len(BUILD['providers']))))as pool: + futures={pid:pool.submit(provider,pid)for pid in sorted(BUILD['providers'])};locals_={pid:f.result()for pid,f in futures.items()} +dump(O/'LOCALS.json',dict(locals={pid:str(l)for pid,l in locals_.items()},words={pid:str(w)for pid,w in words.items()},baseline=str(baseline),discovered=discovered)) +if a.until=='locals':print('LOCALS READY');raise SystemExit(0) +assert not DISCOVER +G=O/'mixed-global' +run('bind-providers',P/'code/bind_providers_portable.py','--baseline',baseline,*[x for pid,l in sorted(locals_.items())for x in('--provider','%s=%s'%(pid,l))],'--plan',P/'data/PLAN.json','--out',G) +run('emit-controller',P/'code/emit_allcold.py','--base',G/'base','--owners',P/'data/OWNERS.json.gz','--plan',G/'PLAN.json','--out',G/'hosted') +(G/'audit').mkdir() +run('independent-controller-and-controls',P/'code/audit_allcold.py',G/'base',G/'hosted',G/'audit/ASYNC-AUDIT.json','--mutation-controls') +run('fresh-invoice',P/'code/invoice_allcold.py','--base',G/'base','--hosted',G/'hosted','--audit',G/'audit','--out',G/'audit','--retained-invoice',V/'evidence/audit/PREFIX-AND-INVOICE.json') +run('conservative-and-native-exact-assembly',P/'code/assemble.py',S,G,O/'ASSEMBLY.json') +run('admission-controls',P/'code/assembly_controls.py','--source-package',S,'--owner',G/'audit/OWNERS-AND-PROFILE.json','--invoice',G/'audit/PREFIX-AND-INVOICE.json','--out',O/'ASSEMBLY-CONTROLS.json') +run('phase-timing-portability-controls',P/'code/phase_timing_controls.py',S,G/'base',G/'audit',O/'PHASE-TIMING-CONTROLS.json') +run('actual-recompression-and-rebound-controls',P/'code/generated_identity_controls.py','--base',G/'base','--audit',G/'audit','--out',O/'GENERATED-IDENTITY-CONTROLS.json') +X=SPEC['expected'] +for pid,local in locals_.items(): + r=read(local/'INDEPENDENT-LOCAL-REPLAY.json');ph=read(local/'CLIFFORD-REVIEW.json') + assert len(r['negative_controls_rejected'])==SPEC['providers'][pid]['native_negative_controls'] and r['paid_profiles']['forward']==r['paid_profiles']['backward'] + assert ph['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' and ph['all_child_equalities_include_global_phase']is True and ph['directed_edges']==SPEC['providers'][pid]['phase_edges'] and ph['endpoint_adapters']==224 +assert len(read(G/'audit/ASYNC-AUDIT.json')['mutations_rejected'])==X['mutations_rejected'] +assert len(read(O/'ASSEMBLY-CONTROLS.json')['rejected_controls'])==X['assembly_controls_rejected'] +z=read(O/'ASSEMBLY.json');assert Q(z['kappa_decimal'])==Q(X['kappa_decimal']) and Q(z['conservative_kappa_decimal'])==Q(X['conservative_kappa_decimal']) +assert {str(k):v for k,v in z['complex_profile'].items()}==X['global_profile'] and z['provider_counts']==X['provider_counts'] +r=dict(status=SPEC['build']['status'],kappa=z['kappa'],kappa_decimal=z['kappa_decimal'],complex_lower=z['complex_lower'],bit_lower=z['bit_lower'],conservative_kappa_decimal=z['conservative_kappa_decimal'],conservative_complex_lower=z['conservative_complex_lower'],global_profile=z['complex_profile'],provider_counts=z['provider_counts'],surcharge_model=z['surcharge_model'],seconds=time.monotonic()-start,reused=dict(baseline=bool(a.reuse_baseline),locals=sorted(reuse)),scope=z['scope']);dump(O/'RESULT.json',r) +paths=['PHASE-TIMING-CONTROLS.json','GENERATED-IDENTITY-CONTROLS.json','mixed-global/audit/IDLE-REMAINDER-FRAMES.json','RESULT.json','ASSEMBLY.json','ASSEMBLY-CONTROLS.json','mixed-global/BINDING.json','mixed-global/audit/ASYNC-AUDIT.json','mixed-global/audit/OWNERS-AND-PROFILE.json','mixed-global/audit/PREFIX-AND-INVOICE.json'] +paths+=sorted(f.relative_to(O).as_posix()for f in O.glob('*-step*/*.json')) +for pid in sorted(set(locals_)-set(reuse)): + for fn in ('INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json','WRAPPER-CHECKS.json'):paths.append(pid+'-local/'+fn) +dump(O/'RECEIPT.json',dict(status=r['status'],steps=steps,artifacts={name:sha(O/name)for name in paths},manifest_sha256=sha(P/'MANIFEST.json'),spec_sha256=sha(SPECFILE),source_manifest_sha256={n:sha(SRC[n]/'MANIFEST.json')for n in SRC})) +print(json.dumps(r,indent=2)) diff --git a/research/complex-571-cold14-j1/verify.sh b/research/complex-571-cold14-j1/verify.sh new file mode 100644 index 0000000000..ed72f5b506 --- /dev/null +++ b/research/complex-571-cold14-j1/verify.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# Official replay of complex-571-cold14-j1 from data/SPEC.json (standard library only, assertions on). +# usage: research/complex-571-cold14-j1/verify.sh WORKDIR [SOURCE_ROOT] +# SOURCE_ROOT holds worktrees pr568 pr569 pr571 pr575 pr583 at the pinned commits (default: ..). +set -eu +WORK=${1:?usage: verify.sh WORKDIR [SOURCE_ROOT]} +SRC=${2:-..} +HERE=$(cd "$(dirname "$0")" && pwd) +exec python3 -B "$HERE/verify.py" --work "$WORK" \ + --source multicold="$SRC/pr568/research/complex-multicold" \ + --source structural_gain="$SRC/pr571/research/structural-gain" \ + --source larger_gain="$SRC/pr569/research/larger-gain" \ + --source joint_prefix="$SRC/pr575/research/complex-joint-prefix" \ + --source frame_coalescing="$SRC/pr583/research/kernel-frame-coalescing"