From 42c3aefc16e2a89fe8518703e7da2acdd954cd7b Mon Sep 17 00:00:00 2001 From: Rohan Arun Date: Tue, 10 Nov 2026 14:04:28 +0000 Subject: [PATCH] Document fixed caller query and native HOST repair limits --- .../LICENSE | 201 + .../PROVENANCE.json | 81 + .../README.md | 29 + .../SHA256.json | 42 + .../SOURCES.json | 18 + .../TASK.json | 89 + .../VERIFY.json | 39 + ...R6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json | 1 + .../PR6824-TWO-ADD-HOST-OBSTRUCTION.json | 18 + .../PR6824-TWO-CONTACT-DARK-REACHABILITY.json | 7 + .../PR6824-TWO-EDIT-MIXED-CANCELLATION.json | 113 + .../PR7000-CENTRAL-QUERY-SIGN-RANK.json | 282 + .../PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json | 29 + .../PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json | 6 + .../PR7002-75-JOB-COMPOSITION-PRICE.json | 28 + .../PR7002-CHRONOLOGICAL-IDLE-GROUPS.json | 221 + .../PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json | 2503 ++ .../PR7002-NONCOORDINATE-IDLE-WORD.json | 2289 ++ .../PR7004-QUERY-FAMILY-TARGET-PRICE.json | 61 + .../notices/PR6824-NOTICE | 5 + .../notices/PR7000-NOTICE | 9 + .../notices/PR7001-NOTICE | 26 + .../notices/PR7002-NOTICE | 15 + .../notices/PR7004-NOTICE | 5 + .../replay/PR7000-CALLER.json | 1 + .../replay/PR7001-RESULT.json | 19787 ++++++++++++++++ .../replay/PR7004-RESULT.json | 668 + .../certify_6824_two_add_obstruction.py | 29 + .../replay/certify_7000_sign_query_floor.py | 47 + .../connected7002/COALESCING-WINDOW.json | 109 + .../replay/connected7002/COST.json | 163 + .../replay/connected7002/idle_coalescing.py | 192 + .../connected7002/inputs/base_invoice.json | 61 + .../replay/connected7002/root_L18.json | 1 + ...onstruct_7002_chronological_idle_groups.py | 92 + .../construct_7002_noncoordinate_idle.py | 124 + .../replay/jclib_6936.py | 331 + .../replay/package/verify.py | 15 + .../replay/price_7002_75_job_composition.py | 36 + .../replay/price_7004_query_families.py | 34 + .../replay/reprice_7002_host.py | 58 + .../replay/screen_6824_dark_two_contact.py | 123 + .../replay/screen_6824_mixed_first_order.py | 108 + .../replay/screen_6824_two_edit_mixed.py | 157 + .../replay/screen_7000_central_query_rank.py | 63 + .../replay/screen_7000_query_host_contacts.py | 85 + ...screen_7000_transported_idle_projectors.py | 88 + .../search_6824_host_entrance_contacts.py | 136 + .../search_7002_idle_projector_order.py | 53 + .../replay/supplier6824/F6824.json.gz | Bin 0 -> 88202 bytes .../replay/supplier6824/native.py | 133 + .../verify.py | 55 + 52 files changed, 28866 insertions(+) create mode 100644 research/fixed-caller-query-and-host-limits/LICENSE create mode 100644 research/fixed-caller-query-and-host-limits/PROVENANCE.json create mode 100644 research/fixed-caller-query-and-host-limits/README.md create mode 100644 research/fixed-caller-query-and-host-limits/SHA256.json create mode 100644 research/fixed-caller-query-and-host-limits/SOURCES.json create mode 100644 research/fixed-caller-query-and-host-limits/TASK.json create mode 100644 research/fixed-caller-query-and-host-limits/VERIFY.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-ADD-HOST-OBSTRUCTION.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-CONTACT-DARK-REACHABILITY.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-EDIT-MIXED-CANCELLATION.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7000-CENTRAL-QUERY-SIGN-RANK.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7002-75-JOB-COMPOSITION-PRICE.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7002-CHRONOLOGICAL-IDLE-GROUPS.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7002-NONCOORDINATE-IDLE-WORD.json create mode 100644 research/fixed-caller-query-and-host-limits/expected/PR7004-QUERY-FAMILY-TARGET-PRICE.json create mode 100644 research/fixed-caller-query-and-host-limits/notices/PR6824-NOTICE create mode 100644 research/fixed-caller-query-and-host-limits/notices/PR7000-NOTICE create mode 100644 research/fixed-caller-query-and-host-limits/notices/PR7001-NOTICE create mode 100644 research/fixed-caller-query-and-host-limits/notices/PR7002-NOTICE create mode 100644 research/fixed-caller-query-and-host-limits/notices/PR7004-NOTICE create mode 100644 research/fixed-caller-query-and-host-limits/replay/PR7000-CALLER.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/PR7001-RESULT.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/PR7004-RESULT.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/certify_6824_two_add_obstruction.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/certify_7000_sign_query_floor.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/connected7002/COALESCING-WINDOW.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/connected7002/COST.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/connected7002/idle_coalescing.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/connected7002/inputs/base_invoice.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/connected7002/root_L18.json create mode 100644 research/fixed-caller-query-and-host-limits/replay/construct_7002_chronological_idle_groups.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/construct_7002_noncoordinate_idle.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/jclib_6936.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/package/verify.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/price_7002_75_job_composition.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/price_7004_query_families.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/reprice_7002_host.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_6824_dark_two_contact.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_6824_mixed_first_order.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_6824_two_edit_mixed.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_7000_central_query_rank.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_7000_query_host_contacts.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/screen_7000_transported_idle_projectors.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/search_6824_host_entrance_contacts.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/search_7002_idle_projector_order.py create mode 100644 research/fixed-caller-query-and-host-limits/replay/supplier6824/F6824.json.gz create mode 100644 research/fixed-caller-query-and-host-limits/replay/supplier6824/native.py create mode 100644 research/fixed-caller-query-and-host-limits/verify.py diff --git a/research/fixed-caller-query-and-host-limits/LICENSE b/research/fixed-caller-query-and-host-limits/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/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/fixed-caller-query-and-host-limits/PROVENANCE.json b/research/fixed-caller-query-and-host-limits/PROVENANCE.json new file mode 100644 index 0000000000..f04268077a --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/PROVENANCE.json @@ -0,0 +1,81 @@ +{ + "upstream_files": [ + { + "pr": 7000, + "head": "93effe2a135bf57b9e484cb630d8dd057159aec9", + "path": "research/shared-wire-split-composition/data/caller.json", + "vendored": "PR7000-CALLER.json", + "sha256": "3828d53e80ea97e8b866320f081af20b6b93bfebd58b95b56b85a7afe151af5e" + }, + { + "pr": 7001, + "head": "d777f3a0aa2878bea0478918923dabcf86b9878b", + "path": "research/paired-query-only-bit/EFREE-RESULT.json", + "vendored": "PR7001-RESULT.json", + "sha256": "a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b" + }, + { + "pr": 7002, + "head": "ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "path": "research/connected-l18-root-caller/COALESCING-WINDOW.json", + "vendored": "connected7002/COALESCING-WINDOW.json", + "sha256": "86eb8ec70f899637089a741548659f433854fa3a8b2532937eb0679d89e8114f" + }, + { + "pr": 7002, + "head": "ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "path": "research/connected-l18-root-caller/COST.json", + "vendored": "connected7002/COST.json", + "sha256": "4ccdea7cdbc7d5553a21ddd3b10a1973ce9ae8e5e7724513faee81fa4922322a" + }, + { + "pr": 7002, + "head": "ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "path": "research/connected-l18-root-caller/inputs/base_invoice.json", + "vendored": "connected7002/inputs/base_invoice.json", + "sha256": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6" + }, + { + "pr": 7002, + "head": "ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "path": "research/connected-l18-root-caller/root_L18.json", + "vendored": "connected7002/root_L18.json", + "sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34" + }, + { + "pr": 7002, + "head": "ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "path": "research/connected-l18-root-caller/idle_coalescing.py", + "vendored": "connected7002/idle_coalescing.py", + "sha256": "7f4b45b1d197b45284d73141b21af518fe39fd58fecfaeec29dd1feda13d2fd0" + }, + { + "pr": 7004, + "head": "2ee11a4460f23abf06d16b12f18c8ef9aca889f1", + "path": "research/peer-move-retiming/RESULT.json", + "vendored": "PR7004-RESULT.json", + "sha256": "555310519298a04dc00dc72b34073e4ad868620e7abb7a009d520ced27a2c4ba" + }, + { + "pr": 6824, + "head": "2a7ca44fbda3abaa4df355b183ed7d7478eef7c1", + "path": "research/p104-shared-carrier-input-lift/native.py", + "vendored": "supplier6824/native.py", + "sha256": "9994a38b2ddf3d6208be92728e1cc6b80aac5b3773aa79fac147ccf60c1db556" + }, + { + "pr": 6980, + "head": "617903497387a98f7ca929ad0b6928dd32abffec", + "path": "research/p104-query-only-interval/reference/jclib_6936.py", + "vendored": "jclib_6936.py", + "sha256": "bdbd89da0125a41514ea10330bccd25de5dd626ac8b2d671c88dc2e4b8fb93c4" + } + ], + "generated_word": { + "vendored": "supplier6824/F6824.json.gz", + "pr": 6824, + "head": "2a7ca44fbda3abaa4df355b183ed7d7478eef7c1", + "sha256": "8016ff736f25dc6d1a14f47da271c9e0ebd70a5e158e44d3ac51c00bb949816d", + "scope": "Normalized generated word. Replay checks all endpoints and the paid and helper histograms against the retained #7002 invoice. The hook uses the generated word as its input." + } +} diff --git a/research/fixed-caller-query-and-host-limits/README.md b/research/fixed-caller-query-and-host-limits/README.md new file mode 100644 index 0000000000..6b9a821891 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/README.md @@ -0,0 +1,29 @@ +# Fixed caller query and native HOST repair limits + +This follow-up to [PR #7098](https://github.com/CrocSwap/integer-mult-bounds/pull/7098) records three bounded results from the search for κ = .005 and ultimately .01. The results are about the specified normalized operators and tariffs. There is no new exponent claim. + +## Results + +- **Fixed central interval of #7000.** Between the first and last central QUERY in each branch there is no native J. The required operator difference at q and −q has rank four in each branch under the exact finite-field specialization. Any sign-even step contributes zero to the telescoping product difference, and each permitted QUERY contributes rank at most one. Four QUERYs per branch are therefore necessary to preserve those interval operators over the dyadic formal ring. All eight literal omissions change the operator. A separate prefix-transport screen found zero proportional source or range directions among 300 tested query/query and query/native pairs. That screen addresses the directions at their original prefixes. +- **Whole #7000 caller and the #7004/#7001 tariffs.** At unit stage weights the sign-relative map is −I on 38 roles in each branch. It requires at least 39 rank-one transvections. Eighteen native J calls contribute at most 36, leaving a global floor of three QUERYs per branch under the retained factorization. Even a hypothetical saving of one QUERY in each branch leaves the complex signed moment at approximately −462.571 at .005. The unchanged BIT moment is approximately −444.063. At .004 those values are −48.708 and −57.182. The two deletions are granted for pricing only. +- **Fixed-chronology #6824 HOST repair.** For the specified same-port rank-one repair, no insertion of up to two distinct-register coframed ADDs achieves the normalized endpoint on any of the 104 ports. Replay first checks the original endpoint and the paid and helper histograms. The first-order census excludes all direct X←Y sensitivity. The two-add expansion then forces the mixed term to supply this entry. If both intervening factors survive, the change has rank two. Exact cancellation and scratch reachability checks cover the remaining degenerate cases. This uses the fixed scalar chronology and endpoint. +- **Connected #7002 idle schedule.** The revised projector allocation reduces 181 idle jobs to 75 per port in the normalized 18-stage schedule, versus 76 in #7098. Exact commutation and both signed role-level controls are replayed. The additional saving across 104 ports is about 5.697 at .005. The composed F+H1 raw complex moment still encloses −814.90413 at .005 and −502.85167 at .004. A strictly positive raw .005 moment would require at least 815 further rank-one cost equivalents at fixed targets. Physical packing and ordinary work, BIT, precision and the outer reduction remain separate obligations. + +## Reproduction + +```sh +python3 -B scripts/research_package.py --package research/fixed-caller-query-and-host-limits +``` + +The three registered checks hash the inputs and replay the operator bounds, projector allocation and rational price checks, and the fixed-chronology census. They compare regenerated JSON with the archived receipts. The normalized #6824 word is a pinned generated input. The replay checks its endpoint and inventory directly. It does not regenerate that word from the upstream construction chain. These checks do not reproduce the complete physical suppliers or the conditional multiplication theorem. + +For the 39-factor bound, rank of −I minus I first forces at least 38 factors. With exactly 38, their update directions must form a basis. In this basis only the first-applied transvection updates the first coordinate, and its square-zero condition keeps that diagonal entry at +1. All subsequent transvections leave that coordinate unchanged, contradicting −I. + +## Open next questions + +- Can a changed native macro supply more independent sign-sensitive directions? Start by certifying the full arbitrary-input operator of one replacement macro in both signs and inventory every paid step. Retaining the current two-shear macro leaves the global query floor. +- Can a changed entrance implement the HOST boundary within budget? Start with a new chronological frame path and recheck the full normalized word before lowering it. Two added coframed ADDs on the current word are excluded, and the concrete idle savings leave a substantial deficit. + +## Credit + +Rohan Arun with substantial OpenAI Codex assistance. [#7000](https://github.com/CrocSwap/integer-mult-bounds/pull/7000), [#7001](https://github.com/CrocSwap/integer-mult-bounds/pull/7001), [#7002](https://github.com/CrocSwap/integer-mult-bounds/pull/7002) and [#6980](https://github.com/CrocSwap/integer-mult-bounds/pull/6980) are by Jerry Chen / CubeJerry. [#6824](https://github.com/CrocSwap/integer-mult-bounds/pull/6824) is by DreamingOfClouds and retains the native verifier and constructive lineage credited upstream. [#7004](https://github.com/CrocSwap/integer-mult-bounds/pull/7004) is by ToikY. See the vendored notices and exact inputs in `PROVENANCE.json`. Apache-2.0. diff --git a/research/fixed-caller-query-and-host-limits/SHA256.json b/research/fixed-caller-query-and-host-limits/SHA256.json new file mode 100644 index 0000000000..2676f8b5e9 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/SHA256.json @@ -0,0 +1,42 @@ +{ + "PROVENANCE.json": "0d8acbb6a6f558931e2aa234aa10eab1f7e9913479502034668cb93b5f2cd186", + "expected/PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json": "c164c1f833be0b4cffab3fb93f7d0dd6becb5912f584f7891a5ee0313eda8ded", + "expected/PR6824-TWO-ADD-HOST-OBSTRUCTION.json": "811e827474ea20caa0c1d024e8b5aadf23b9401abcdffd459a28adf41add1092", + "expected/PR6824-TWO-CONTACT-DARK-REACHABILITY.json": "e7d7c508e07e8031cdb5198f6e67250b97350944d793c1ef0acd066a149d53b7", + "expected/PR6824-TWO-EDIT-MIXED-CANCELLATION.json": "f135748ff2c2ee325bf7503df1f200426f73eb2752efde6cb90cd66f0c494a72", + "expected/PR7000-CENTRAL-QUERY-SIGN-RANK.json": "77021d6d9aa3e0a5ff27735b8ed809ab752b4796f2f1fb71dc869d76205b4a61", + "expected/PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json": "6e3639e7510ceda5eafa75da30b5ea18f0a8f77b4b44694e1ea80036b44126cf", + "expected/PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json": "637906ede30ae82082282fec9d5358c72ecdc102c2a4991efdd0c954c40b28e1", + "expected/PR7002-75-JOB-COMPOSITION-PRICE.json": "439a6d1cf685cd7f0f56724f9f9aeddf59f83791b94d9e4efc21b913eda91598", + "expected/PR7002-CHRONOLOGICAL-IDLE-GROUPS.json": "7b20506428a97139c0d5e5cb0e79c8e0d764f4d5033c487e9bd0394c12b371be", + "expected/PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json": "e0a40d80c7e9a52b3d3156b6128c8b44d0d8326967a10f0ae00527d0f121e268", + "expected/PR7002-NONCOORDINATE-IDLE-WORD.json": "d136d12485d348112b7c7d690b4df7e8f6e50596b6f35c4662ab666ce5fedf8f", + "expected/PR7004-QUERY-FAMILY-TARGET-PRICE.json": "3e405ce18bb219f81f77077087fd200fb06961e3e99d1a2b91219b6be2efb994", + "replay/PR7000-CALLER.json": "3828d53e80ea97e8b866320f081af20b6b93bfebd58b95b56b85a7afe151af5e", + "replay/PR7001-RESULT.json": "a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b", + "replay/PR7004-RESULT.json": "555310519298a04dc00dc72b34073e4ad868620e7abb7a009d520ced27a2c4ba", + "replay/certify_6824_two_add_obstruction.py": "0810f9c1f7f014772b227f54ee997073e49b3e5e1e012a2f574ed3ac367ab4eb", + "replay/certify_7000_sign_query_floor.py": "865ffb698489df50ba377b0f6f3302c7ccffb6f27dd454ace857e84fb89c917e", + "replay/connected7002/COALESCING-WINDOW.json": "86eb8ec70f899637089a741548659f433854fa3a8b2532937eb0679d89e8114f", + "replay/connected7002/COST.json": "4ccdea7cdbc7d5553a21ddd3b10a1973ce9ae8e5e7724513faee81fa4922322a", + "replay/connected7002/idle_coalescing.py": "7f4b45b1d197b45284d73141b21af518fe39fd58fecfaeec29dd1feda13d2fd0", + "replay/connected7002/inputs/base_invoice.json": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6", + "replay/connected7002/root_L18.json": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "replay/construct_7002_chronological_idle_groups.py": "08748b3e3df9aa1d1cf30a33e3b185b5af3ce5b4fda17c2cc425194e165b7eec", + "replay/construct_7002_noncoordinate_idle.py": "54c29d107f8784591727b203d7072884d576d57c30a1ed179f7c84af13fc4372", + "replay/jclib_6936.py": "bdbd89da0125a41514ea10330bccd25de5dd626ac8b2d671c88dc2e4b8fb93c4", + "replay/package/verify.py": "5cd51c2489ab862162a6f649715fef6567c25f17735c018bc4b5e59fd2e601f5", + "replay/price_7002_75_job_composition.py": "ac58b6f8db3335db07879fc28585b509e2945c09dc170e99a306c4de5de24cd6", + "replay/price_7004_query_families.py": "1adcbe429f9be2cbf7ea0c006cc1973ade10ebcb9d030ac8da0f942bf2e74686", + "replay/reprice_7002_host.py": "68fff36e060ca22d0e6d90aa3284fcaf37d203a25b190cf20429150e43bcfbf1", + "replay/screen_6824_dark_two_contact.py": "c56a775ac7c916fa36632e9a1174eb079ef529d00d0f0f9ea8fa72435e032556", + "replay/screen_6824_mixed_first_order.py": "faaafe302c03a16286a9176676babe26f95651ef9665d32cf95d0bbd0e7d5f98", + "replay/screen_6824_two_edit_mixed.py": "f8e358d1dbc96e111904cfab15a3004ec0cd094ee8317b2657dcacba591b3cb5", + "replay/screen_7000_central_query_rank.py": "2c15bdd2e209343908ce739a0abc0b3298ab355cd7d408f19c14c3fd480aae1d", + "replay/screen_7000_query_host_contacts.py": "471f41db34c38506a7636d5d9ca77559e4e79e214f64fbc0ca297e2908b2f195", + "replay/screen_7000_transported_idle_projectors.py": "9e18ed5d8e0d4b52f3c4b23b5406cf9e897095f1d88900838ac30a963b3054dc", + "replay/search_6824_host_entrance_contacts.py": "d36725c17610a8b939de58b947b4da882731eff4a64cf1f4ac2feef1548c555a", + "replay/search_7002_idle_projector_order.py": "4240199b9b42765e116eaff6b65c804c886ee5c87501eff3f1c8d5827489ca2e", + "replay/supplier6824/F6824.json.gz": "8016ff736f25dc6d1a14f47da271c9e0ebd70a5e158e44d3ac51c00bb949816d", + "replay/supplier6824/native.py": "9994a38b2ddf3d6208be92728e1cc6b80aac5b3773aa79fac147ccf60c1db556" +} diff --git a/research/fixed-caller-query-and-host-limits/SOURCES.json b/research/fixed-caller-query-and-host-limits/SOURCES.json new file mode 100644 index 0000000000..68fe2b9c1b --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/SOURCES.json @@ -0,0 +1,18 @@ +{ + "schema_version": 1, + "base_commit": "f16923d466a6aba912299882e0545564d2ba7bb2", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + } + ] +} diff --git a/research/fixed-caller-query-and-host-limits/TASK.json b/research/fixed-caller-query-and-host-limits/TASK.json new file mode 100644 index 0000000000..495b63fcfb --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/TASK.json @@ -0,0 +1,89 @@ +{ + "schema_version": 1, + "task_id": "joint-query-controller", + "priority_revision": 8, + "base_commit": "f16923d466a6aba912299882e0545564d2ba7bb2", + "original_card": { + "id": "joint-query-controller", + "question": "Can a changed query demand or caller remove real work while satisfying native chronology and restoration?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "A source-bound arbitrary-input identity and legal producer/consumer boundary with the complete paid and productive target invoice, including restoration, ownership, native alignment and extra charges. Price under the actual current model; historical ceiling.py assumptions must be established before use. A favorable optimistic relaxation keeps a route open but is not a completed supplier. A scoped local result remains useful; expansion requires the family-level budget gate.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "Choose an exact caller and a new demand/interface hypothesis. Read the scoped #5617/#5631/#5649/#5747 and #5720/#5745 objections before rebuilding an excluded schedule. Compare the complete matched source/consumer protocols including all retained helper outputs. For an active-mode injection, first check #5745: its canonical delivery claim repays the eight removed centre jobs. Audit that exact claim or change its channel/feedback hypothesis; do not repeat the same free-injection search. Stop if the full favorable budget fails or the required restored output is unobservable.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "query demand", + "active mode", + "5720", + "5745", + "5747", + "caller" + ], + "existing_checks": [ + { + "scope": "PR #4166: author-checked installed producer/service/return/bridge connection; native-component comparison loses.", + "evidence": "research/qq16-caller-install/README.md", + "remaining": "Complete matched physical protocol bill, or changed source-compatible demand/circuit; no affordable supplier yet.", + "status": "author-checked", + "source_commit": "0b082d22a0e9a442d264ab0633e35ef26c790630", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "refined", + "actual_scope": "Exact query bounds on the fixed #7000 caller, a two-ADD #6824 entrance obstruction, and the normalized #7002 idle schedule and tariff.", + "scope_change_reason": "Use matched source operators and tariffs to identify which small fixed-interface changes cannot close the target budget.", + "bottleneck_link": "The replacement needs new sign-sensitive capacity and enough productive rank surplus to pay its complete bill.", + "stop_rule": "Close only the explicitly stated operator families and budgets.", + "outcome": "negative-result", + "evidence": "README.md, verify.py, expected/, PROVENANCE.json", + "author": "Rohan Arun", + "ai_assistance": "Substantial OpenAI Codex assistance.", + "open_questions": [ + { + "question": "Can a changed native macro supply more independent sign-sensitive directions?", + "why_it_matters": "The fixed two-shear macro leaves a query floor.", + "first_step": "Replay one replacement macro on every input in both signs and recount paid jobs.", + "blocked_by": "The tested central interval already requires four queries." + }, + { + "question": "Can a changed entrance implement HOST within budget?", + "why_it_matters": "Actual idle grouping still leaves an 815-equivalent raw complex deficit at .005.", + "first_step": "Synthesize a new chronological frame path and replay the full normalized endpoint.", + "blocked_by": "The existing word admits no two-ADD coframe repair." + } + ] +} diff --git a/research/fixed-caller-query-and-host-limits/VERIFY.json b/research/fixed-caller-query-and-host-limits/VERIFY.json new file mode 100644 index 0000000000..2115d11ff9 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/VERIFY.json @@ -0,0 +1,39 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "caller" + ], + "timeout_seconds": 240, + "checks": "Exact query sign ranks, transport contacts, and signed tariff bounds." + }, + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "idle" + ], + "timeout_seconds": 240, + "checks": "Normalized projector allocation and exact raw moment enclosure." + }, + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "host" + ], + "timeout_seconds": 600, + "checks": "Exact first-order and two-edit scans on the pinned normalized word." + } + ] +} diff --git a/research/fixed-caller-query-and-host-limits/expected/PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json b/research/fixed-caller-query-and-host-limits/expected/PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json new file mode 100644 index 0000000000..c939660aab --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json @@ -0,0 +1 @@ +{"ports": {"0": {"contacts_by_support": [], "compact_directions": []}, "1": {"contacts_by_support": [], "compact_directions": []}, "2": {"contacts_by_support": [], "compact_directions": []}, "4": {"contacts_by_support": [], "compact_directions": []}, "5": {"contacts_by_support": [], "compact_directions": []}, "6": {"contacts_by_support": [], "compact_directions": []}, "7": {"contacts_by_support": [], "compact_directions": []}, "8": {"contacts_by_support": [], "compact_directions": []}, "9": {"contacts_by_support": [], "compact_directions": []}, "10": {"contacts_by_support": [], "compact_directions": []}, "11": {"contacts_by_support": [], "compact_directions": []}, "12": {"contacts_by_support": [], "compact_directions": []}, "13": {"contacts_by_support": [], "compact_directions": []}, "15": {"contacts_by_support": [], "compact_directions": []}, "16": {"contacts_by_support": [], "compact_directions": []}, "17": {"contacts_by_support": [], "compact_directions": []}, "18": {"contacts_by_support": [], "compact_directions": []}, "19": {"contacts_by_support": [], "compact_directions": []}, "20": {"contacts_by_support": [], "compact_directions": []}, "22": {"contacts_by_support": [], "compact_directions": []}, "23": {"contacts_by_support": [], "compact_directions": []}, "24": {"contacts_by_support": [], "compact_directions": []}, "25": {"contacts_by_support": [], "compact_directions": []}, "26": {"contacts_by_support": [], "compact_directions": []}, "27": {"contacts_by_support": [], "compact_directions": []}, "28": {"contacts_by_support": [], "compact_directions": []}, "29": {"contacts_by_support": [], "compact_directions": []}, "30": {"contacts_by_support": [], "compact_directions": []}, "31": {"contacts_by_support": [], "compact_directions": []}, "32": {"contacts_by_support": [], "compact_directions": []}, "33": {"contacts_by_support": [], "compact_directions": []}, "35": {"contacts_by_support": [], "compact_directions": []}, "36": {"contacts_by_support": [], "compact_directions": []}, "37": {"contacts_by_support": [], "compact_directions": []}, "38": {"contacts_by_support": [], "compact_directions": []}, "40": {"contacts_by_support": [], "compact_directions": []}, "41": {"contacts_by_support": [], "compact_directions": []}, "42": {"contacts_by_support": [], "compact_directions": []}, "43": {"contacts_by_support": [], "compact_directions": []}, "44": {"contacts_by_support": [], "compact_directions": []}, "45": {"contacts_by_support": [], "compact_directions": []}, "46": {"contacts_by_support": [], "compact_directions": []}, "47": {"contacts_by_support": [], "compact_directions": []}, "48": {"contacts_by_support": [], "compact_directions": []}, "49": {"contacts_by_support": [], "compact_directions": []}, "50": {"contacts_by_support": [], "compact_directions": []}, "51": {"contacts_by_support": [], "compact_directions": []}, "52": {"contacts_by_support": [], "compact_directions": []}, "53": {"contacts_by_support": [], "compact_directions": []}, "54": {"contacts_by_support": [], "compact_directions": []}, "55": {"contacts_by_support": [], "compact_directions": []}, "56": {"contacts_by_support": [], "compact_directions": []}, "57": {"contacts_by_support": [], "compact_directions": []}, "58": {"contacts_by_support": [], "compact_directions": []}, "59": {"contacts_by_support": [], "compact_directions": []}, "60": {"contacts_by_support": [], "compact_directions": []}, "62": {"contacts_by_support": [], "compact_directions": []}, "63": {"contacts_by_support": [], "compact_directions": []}, "64": {"contacts_by_support": [], "compact_directions": []}, "65": {"contacts_by_support": [], "compact_directions": []}, "66": {"contacts_by_support": [], "compact_directions": []}, "67": {"contacts_by_support": [], "compact_directions": []}, "68": {"contacts_by_support": [], "compact_directions": []}, "69": {"contacts_by_support": [], "compact_directions": []}, "70": {"contacts_by_support": [], "compact_directions": []}, "71": {"contacts_by_support": [], "compact_directions": []}, "72": {"contacts_by_support": [], "compact_directions": []}, "73": {"contacts_by_support": [], "compact_directions": []}, "74": {"contacts_by_support": [], "compact_directions": []}, "75": {"contacts_by_support": [], "compact_directions": []}, "77": {"contacts_by_support": [], "compact_directions": []}, "78": {"contacts_by_support": [], "compact_directions": []}, "79": {"contacts_by_support": [], "compact_directions": []}, "80": {"contacts_by_support": [], "compact_directions": []}, "81": {"contacts_by_support": [], "compact_directions": []}, "82": {"contacts_by_support": [], "compact_directions": []}, "83": {"contacts_by_support": [], "compact_directions": []}, "84": {"contacts_by_support": [], "compact_directions": []}, "85": {"contacts_by_support": [], "compact_directions": []}, "86": {"contacts_by_support": [], "compact_directions": []}, "87": {"contacts_by_support": [], "compact_directions": []}, "88": {"contacts_by_support": [], "compact_directions": []}, "89": {"contacts_by_support": [], "compact_directions": []}, "90": {"contacts_by_support": [], "compact_directions": []}, "91": {"contacts_by_support": [], "compact_directions": []}, "92": {"contacts_by_support": [], "compact_directions": []}, "94": {"contacts_by_support": [], "compact_directions": []}, "95": {"contacts_by_support": [], "compact_directions": []}, "96": {"contacts_by_support": [], "compact_directions": []}, "97": {"contacts_by_support": [], "compact_directions": []}, "98": {"contacts_by_support": [], "compact_directions": []}, "99": {"contacts_by_support": [], "compact_directions": []}, "100": {"contacts_by_support": [], "compact_directions": []}, "101": {"contacts_by_support": [], "compact_directions": []}, "102": {"contacts_by_support": [], "compact_directions": []}, "103": {"contacts_by_support": [], "compact_directions": []}, "104": {"contacts_by_support": [], "compact_directions": []}, "105": {"contacts_by_support": [], "compact_directions": []}, "106": {"contacts_by_support": [], "compact_directions": []}, "107": {"contacts_by_support": [], "compact_directions": []}, "108": {"contacts_by_support": [], "compact_directions": []}, "109": {"contacts_by_support": [], "compact_directions": []}, "110": {"contacts_by_support": [], "compact_directions": []}, "111": {"contacts_by_support": [], "compact_directions": []}}, "scope": "Exact first-order contacts on fixed normalized chronology. Large support contacts counted only. Extra tensor entries and higher-order interactions still have to cancel."} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-ADD-HOST-OBSTRUCTION.json b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-ADD-HOST-OBSTRUCTION.json new file mode 100644 index 0000000000..72959a1407 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-ADD-HOST-OBSTRUCTION.json @@ -0,0 +1,18 @@ +{ + "status": "PASS_FIXED_CHRONOLOGY_TWO_ADD_HOST_OBSTRUCTION", + "ports": 104, + "evidence": { + "first_order": "PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json", + "one_zero": "PR6824-TWO-EDIT-MIXED-CANCELLATION.json", + "both_zero": "PR6824-TWO-CONTACT-DARK-REACHABILITY.json" + }, + "proof": [ + "Two additions at ordered cuts give endpoint delta c1 B1 A1 + c2 B2 A2 + c1 c2 h B2 A1, where A are baseline donor rows, B are baseline suffix columns and h is the interposed scalar transfer.", + "To have nonzero x,y coefficient, the mixed term must supply it because no baseline single ADD has nonzero x,y derivative. Hence B2[x] and A1[y] are nonzero, B1[x] and A2[y] are zero, and the interposed coefficient is nonzero.", + "If B1 and A2 are both nonzero, the two suffix columns are independent (their x coordinates differ by zero/nonzero), and the rows A1 and A2 + c1 h A1 are independent (A2 has no y). The endpoint delta has rank two, contradicting the rank-one repair.", + "If only B1 is zero, B2 must be an isolated X+Y suffix and the non-Y part of A1 must cancel the nonzero A2. The chronological mixed-cancellation census excludes every such signature.", + "If only A2 is zero, A1 must be pure Y and the nonzero B1 must match the residual after normalizing B2 at X. The chronological mixed-cancellation census excludes every such signature.", + "If B1 and A2 are both zero, the pure-Y first donor and isolated X+Y second sink must be connected via the dark scratch path. The generous support transfer scan excludes it." + ], + "scope": "Exact normalized scalar circuit with the fixed chronological MOVE/COPY/INIT/CLEAR schedule. The required repair is one specified same-port rank-one F-to-HOST entrance transvection. At most two newly inserted distinct-register coframe ADDs. Changing MOVE timing or chart shape, scalings, cross-port block outputs, or adding three or more contacts is outside scope." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-CONTACT-DARK-REACHABILITY.json b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-CONTACT-DARK-REACHABILITY.json new file mode 100644 index 0000000000..4fac77ddea --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-CONTACT-DARK-REACHABILITY.json @@ -0,0 +1,7 @@ +{ + "reachable_ports": {}, + "dark_entry_registers": 1, + "potential_dark_exit_ports": 0, + "cuts": 18623, + "scope": "Necessary path condition. First edit reads pure Y into a baseline suffix-zero register; second edit reads a baseline-zero source into an isolated X+Y suffix. Existing linear dependencies are granted even if their coefficients cancel. Baseline COPY is modeled as transfer with zero destination." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-EDIT-MIXED-CANCELLATION.json b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-EDIT-MIXED-CANCELLATION.json new file mode 100644 index 0000000000..e903d50b67 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR6824-TWO-EDIT-MIXED-CANCELLATION.json @@ -0,0 +1,113 @@ +{ + "prefix_signature_counts": { + "82": 72, + "0": 501, + "1": 136, + "2": 154, + "4": 130, + "5": 112, + "6": 131, + "7": 302, + "8": 98, + "9": 174, + "10": 207, + "11": 69, + "12": 242, + "13": 391, + "15": 141, + "16": 326, + "17": 65, + "18": 123, + "19": 66, + "20": 183, + "22": 111, + "23": 68, + "24": 236, + "25": 151, + "26": 95, + "27": 487, + "28": 202, + "29": 110, + "30": 126, + "31": 239, + "32": 70, + "33": 241, + "35": 17, + "36": 355, + "37": 116, + "38": 68, + "40": 67, + "41": 12, + "42": 723, + "43": 71, + "44": 332, + "45": 17, + "46": 179, + "47": 149, + "48": 72, + "49": 241, + "50": 71, + "51": 374, + "52": 25, + "53": 136, + "54": 57, + "55": 276, + "56": 117, + "57": 296, + "58": 204, + "59": 112, + "60": 125, + "62": 185, + "63": 65, + "64": 63, + "65": 110, + "66": 104, + "67": 95, + "68": 132, + "69": 114, + "70": 277, + "71": 65, + "72": 125, + "73": 61, + "74": 202, + "75": 69, + "77": 68, + "78": 69, + "79": 313, + "80": 164, + "81": 103, + "83": 204, + "84": 63, + "85": 119, + "86": 95, + "87": 42, + "88": 163, + "89": 123, + "90": 63, + "91": 277, + "92": 102, + "94": 311, + "95": 103, + "96": 108, + "97": 65, + "98": 117, + "99": 69, + "100": 117, + "101": 277, + "102": 60, + "103": 70, + "104": 65, + "105": 718, + "106": 12, + "107": 232, + "108": 69, + "109": 108, + "110": 113, + "111": 404 + }, + "tested_later_isolated_sink_ports": 104, + "tested_later_zero_source_ports": 104, + "first_suffix_zero_candidates": {}, + "second_donor_zero_candidates": {}, + "scope": "Necessary temporal cancellation matches for the one-zero-factor cases of two coframe ADDs. Transfer amplitude, COPY legality and full endpoint replay still required for survivors. Both-zero dark path tested separately." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7000-CENTRAL-QUERY-SIGN-RANK.json b/research/fixed-caller-query-and-host-limits/expected/PR7000-CENTRAL-QUERY-SIGN-RANK.json new file mode 100644 index 0000000000..123b30d792 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7000-CENTRAL-QUERY-SIGN-RANK.json @@ -0,0 +1,282 @@ +{ + "source_sha256": "3828d53e80ea97e8b866320f081af20b6b93bfebd58b95b56b85a7afe151af5e", + "prime": 2147483629, + "branches": { + "A": { + "query_indices": [ + 532, + 538, + 549, + 717 + ], + "tested_differences": [ + { + "q": 1, + "stage_values": { + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1 + }, + "rank": 4, + "pivot_columns": [ + 0, + 2, + 19, + 20 + ] + }, + { + "q": 1, + "stage_values": { + "1": 42628720, + "2": 658182651, + "3": 542191716, + "4": 251413995, + "5": 956912165, + "6": 953225032, + "7": 2044045994, + "8": 1088794337, + "9": 1730610827, + "10": 534202141, + "11": 1632347269, + "12": 2051884149, + "13": 74566505, + "14": 1703735303, + "15": 1204015065, + "16": 1625319335, + "17": 599967768, + "18": 1133836870 + }, + "rank": 4, + "pivot_columns": [ + 0, + 2, + 19, + 20 + ] + }, + { + "q": 1518275076, + "stage_values": { + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1 + }, + "rank": 4, + "pivot_columns": [ + 0, + 2, + 19, + 20 + ] + }, + { + "q": 1518275076, + "stage_values": { + "1": 341910843, + "2": 2104325677, + "3": 159767649, + "4": 902561379, + "5": 59484417, + "6": 1335370517, + "7": 1577311538, + "8": 302664532, + "9": 286485654, + "10": 2027263919, + "11": 1698402509, + "12": 206362991, + "13": 875902737, + "14": 569277415, + "15": 119860073, + "16": 2022938178, + "17": 1004872545, + "18": 1808673014 + }, + "rank": 4, + "pivot_columns": [ + 0, + 2, + 19, + 20 + ] + } + ], + "fixed_interval_query_lower_bound": 4, + "literal_omission_negative_controls": [ + 0, + 6, + 17, + 185 + ] + }, + "B": { + "query_indices": [ + 1079, + 1157, + 1190, + 2091 + ], + "tested_differences": [ + { + "q": 1, + "stage_values": { + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1 + }, + "rank": 4, + "pivot_columns": [ + 38, + 39, + 40, + 41 + ] + }, + { + "q": 1, + "stage_values": { + "1": 917768279, + "2": 1843444028, + "3": 1145820542, + "4": 1110064911, + "5": 1911322794, + "6": 292004977, + "7": 1378978860, + "8": 22862112, + "9": 422592694, + "10": 262678509, + "11": 1470061717, + "12": 539376086, + "13": 1115773558, + "14": 1341551033, + "15": 1720863636, + "16": 978732232, + "17": 102128237, + "18": 754790939 + }, + "rank": 4, + "pivot_columns": [ + 38, + 39, + 40, + 41 + ] + }, + { + "q": 1518275076, + "stage_values": { + "1": 1, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 1, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 1, + "16": 1, + "17": 1, + "18": 1 + }, + "rank": 4, + "pivot_columns": [ + 38, + 39, + 40, + 41 + ] + }, + { + "q": 1518275076, + "stage_values": { + "1": 1058886400, + "2": 303974971, + "3": 1884634545, + "4": 1866939806, + "5": 1523890482, + "6": 1150608862, + "7": 639463024, + "8": 1328381080, + "9": 530589251, + "10": 909610971, + "11": 2015779255, + "12": 1370693450, + "13": 1812631943, + "14": 345220238, + "15": 2027617720, + "16": 1048154315, + "17": 289255931, + "18": 1842365285 + }, + "rank": 4, + "pivot_columns": [ + 38, + 39, + 40, + 41 + ] + } + ], + "fixed_interval_query_lower_bound": 4, + "literal_omission_negative_controls": [ + 0, + 78, + 111, + 1012 + ] + } + }, + "proof": "Each even ordinary map is equal at q and -q. Each odd query changes its sign, so its two maps differ by a rank-one matrix. A telescoping product difference has rank at most the sum of those ranks. A finite-field specialization where the required difference has rank r proves at least r queries for this fixed interval over the dyadic operator ring.", + "scope": "Preserves the full input/output operator of the central interval. Moving a QUERY across a J call, changing the boundary operator or making new sign-sensitive native calls is outside the bound." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json b/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json new file mode 100644 index 0000000000..357b7b7c2c --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json @@ -0,0 +1,29 @@ +{ + "source_sha256": "3828d53e80ea97e8b866320f081af20b6b93bfebd58b95b56b85a7afe151af5e", + "types": { + "A": { + "roles": 38, + "ports": 96, + "native_calls": 18, + "current_queries": 4, + "minimum_queries_with_current_HOST_factorization": 3, + "maximum_removed_queries": 1 + }, + "B": { + "roles": 38, + "ports": 8, + "native_calls": 18, + "current_queries": 4, + "minimum_queries_with_current_HOST_factorization": 3, + "maximum_removed_queries": 1 + } + }, + "proof": [ + "Specialize D_j=1 and compare the complete q=-1 map to the q=1 map. Both targets are scalar signs on all 38 roles, so their relative map is -I.", + "Ordinary ADD, SWAP, SCALE and LAMBDA events agree between the two signs. Each QUERY shear changes its coefficient sign; its relative factor is a rank-one transvection.", + "At a J event each branch consists of two elementary sign-sensitive shears and sign-independent D_j factors. Factoring the two signed full products by telescoping yields a product of conjugates of these elementary relative factors.", + "A product of rank-one transvections giving -I in dimension n needs at least n+1 factors: rank(M-I) forces at least n independent directions, and with exactly n the first updated row in that basis keeps diagonal coefficient +1 to the end.", + "Therefore each branch needs at least 39 sign-sensitive transvections. With 18 native events contributing at most two each, at least three QUERY events remain per branch." + ], + "scope": "Fixed 38-role targets and native factorization, with even ordinary operators. New native macros, extra degrees of freedom, changed targets or further physical relations may fall outside the bound." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json b/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json new file mode 100644 index 0000000000..5a662466c9 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7000-QUERY-HOST-TRANSPORT-CONTACTS.json @@ -0,0 +1,6 @@ +{ + "tested_pairs": 300, + "matches": [], + "sample_count": 8, + "scope": "Conjugated shear image and source directions at the original prefixes in the fixed operator word. Exact finite-field evaluations exclude proportionality over the dyadic formal ring if any evaluation differs. General resynthesis is outside this screen." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7002-75-JOB-COMPOSITION-PRICE.json b/research/fixed-caller-query-and-host-limits/expected/PR7002-75-JOB-COMPOSITION-PRICE.json new file mode 100644 index 0000000000..e521e59ae6 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7002-75-JOB-COMPOSITION-PRICE.json @@ -0,0 +1,28 @@ +{ + "jobs_per_port": 75, + "tests": { + "1/250": { + "exact_104_port_saving": [ + "571129386331237500496356243721/125000000000000000000000000000", + "7139117329140468756204453047/1562500000000000000000000000" + ], + "new_margin": [ + "-50285167377779360563856010566997/100000000000000000000000000000", + "-251425836888896802819280052795509/500000000000000000000000000000" + ], + "remaining_rank_one_equivalents": 503 + }, + "1/200": { + "exact_104_port_saving": [ + "142436399948865247532126790477/25000000000000000000000000000", + "89022749968040779707579244053/15625000000000000000000000000" + ], + "new_margin": [ + "-81490413070956168953734354253433/100000000000000000000000000000", + "-407452065354780844768671771227689/500000000000000000000000000000" + ], + "remaining_rank_one_equivalents": 815 + } + }, + "scope": "Exact normalized schedule with the retained F+H1 tariff. Physical packed IDLE and basis costs, BIT and outer admission remain open." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7002-CHRONOLOGICAL-IDLE-GROUPS.json b/research/fixed-caller-query-and-host-limits/expected/PR7002-CHRONOLOGICAL-IDLE-GROUPS.json new file mode 100644 index 0000000000..bb15ab9691 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7002-CHRONOLOGICAL-IDLE-GROUPS.json @@ -0,0 +1,221 @@ +{ + "stage_count": 18, + "old_jobs": 181, + "new_jobs": 121, + "paid_idle_rank_profile": { + "8": 105, + "56": 4, + "40": 2, + "32": 4, + "16": 2, + "24": 2, + "48": 2 + }, + "commuting_groups": [ + { + "role": 2, + "cut": 3, + "stages": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "role": 3, + "cut": 3, + "stages": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "role": 5, + "cut": 6, + "stages": [ + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "role": 6, + "cut": 6, + "stages": [ + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "role": 8, + "cut": 9, + "stages": [ + 4, + 5, + 6, + 7 + ] + }, + { + "role": 9, + "cut": 9, + "stages": [ + 4, + 5, + 6, + 7 + ] + }, + { + "role": 11, + "cut": 12, + "stages": [ + 6, + 7 + ] + }, + { + "role": 12, + "cut": 12, + "stages": [ + 6, + 7 + ] + }, + { + "role": 14, + "cut": 15, + "stages": [ + 7 + ] + }, + { + "role": 15, + "cut": 15, + "stages": [ + 7 + ] + }, + { + "role": 23, + "cut": 0, + "stages": [ + 9 + ] + }, + { + "role": 24, + "cut": 0, + "stages": [ + 9 + ] + }, + { + "role": 26, + "cut": 0, + "stages": [ + 9, + 10, + 11 + ] + }, + { + "role": 27, + "cut": 0, + "stages": [ + 9, + 10, + 11 + ] + }, + { + "role": 29, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12 + ] + }, + { + "role": 30, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12 + ] + }, + { + "role": 32, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "role": 33, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "role": 35, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + }, + { + "role": 36, + "cut": 0, + "stages": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + } + ], + "per_port_saving_at_005": [ + "4.87313163684216460139832230867568012633778428", + "4.87313163684216460139832230867568012634082200" + ], + "scope": "Constructed commuting normalized root schedule, universal over stage variables. Grouped jobs require the retained whole-mask IDLE tariff and physical adapters. No native price reduction, outer admission or kappa claim." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json b/research/fixed-caller-query-and-host-limits/expected/PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json new file mode 100644 index 0000000000..c057d28a02 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json @@ -0,0 +1,2503 @@ +{ + "trials": [ + { + "seed": 0, + "strength": 0, + "paid_moment_diagnostic": "1424.3326278371382677657970999979", + "jobs": 76 + }, + { + "seed": 1, + "strength": 0, + "paid_moment_diagnostic": "1424.2778446063887042090539743092", + "jobs": 75 + }, + { + "seed": 2, + "strength": 0.3333333333333333, + "paid_moment_diagnostic": "1424.2778446063887042090539743092", + "jobs": 75 + }, + { + "seed": 3, + "strength": 0.6666666666666666, + "paid_moment_diagnostic": "1424.2778446063887042090539743092", + "jobs": 75 + }, + { + "seed": 4, + "strength": 1.0, + "paid_moment_diagnostic": "1424.3326278371382677657970999979", + "jobs": 76 + }, + { + "seed": 5, + "strength": 1.3333333333333333, + "paid_moment_diagnostic": "1424.3326278371382677657970999979", + "jobs": 76 + }, + { + "seed": 6, + "strength": 1.6666666666666667, + "paid_moment_diagnostic": "1424.5696727125188955991531091148", + "jobs": 78 + }, + { + "seed": 7, + "strength": 2.0, + "paid_moment_diagnostic": "1425.1234754750954333743249680503", + "jobs": 84 + }, + { + "seed": 8, + "strength": 2.3333333333333335, + "paid_moment_diagnostic": "1424.7356878892300101814349850343", + "jobs": 79 + }, + { + "seed": 9, + "strength": 2.6666666666666665, + "paid_moment_diagnostic": "1425.3159373456904123118929893015", + "jobs": 83 + }, + { + "seed": 10, + "strength": 3.0, + "paid_moment_diagnostic": "1424.5674453337279460394138443143", + "jobs": 77 + }, + { + "seed": 11, + "strength": 3.3333333333333335, + "paid_moment_diagnostic": "1425.1663265873943686311593550680", + "jobs": 83 + }, + { + "seed": 12, + "strength": 3.6666666666666665, + "paid_moment_diagnostic": "1425.0553248064076500515991914749", + "jobs": 83 + }, + { + "seed": 13, + "strength": 4.0, + "paid_moment_diagnostic": "1425.8747792702803357195777569233", + "jobs": 86 + }, + { + "seed": 14, + "strength": 4.333333333333333, + "paid_moment_diagnostic": "1425.3271671923186978317518072258", + "jobs": 86 + }, + { + "seed": 15, + "strength": 4.666666666666667, + "paid_moment_diagnostic": "1425.1872146820361837342598469202", + "jobs": 84 + }, + { + "seed": 16, + "strength": 5.0, + "paid_moment_diagnostic": "1425.6990909385444227772793478704", + "jobs": 89 + }, + { + "seed": 17, + "strength": 5.333333333333333, + "paid_moment_diagnostic": "1425.3169798193119051035905599955", + "jobs": 85 + }, + { + "seed": 18, + "strength": 5.666666666666667, + "paid_moment_diagnostic": "1426.0055693387950063984450672787", + "jobs": 92 + }, + { + "seed": 19, + "strength": 6.0, + "paid_moment_diagnostic": "1426.0006901507121282244372554190", + "jobs": 89 + }, + { + "seed": 20, + "strength": 6.333333333333333, + "paid_moment_diagnostic": "1426.0542396552427553778738986295", + "jobs": 92 + }, + { + "seed": 21, + "strength": 6.666666666666667, + "paid_moment_diagnostic": "1425.8822437781919429672140754006", + "jobs": 89 + } + ], + "best_seed": 1, + "rank_histogram": { + "64": 3, + "56": 4, + "48": 4, + "40": 4, + "32": 4, + "24": 4, + "16": 5, + "8": 47 + }, + "104_port_advantage_at_005_diagnostic": "5.6974559979546099012850716248", + "best_projectors": [ + [ + 9, + 16, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ] + ], + [ + 9, + 16, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0" + ] + ], + [ + 0, + 7, + [ + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 15, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 15, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0" + ] + ], + [ + 1, + 7, + [ + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 1, + 7, + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 14, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 14, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ] + ], + [ + 2, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 2, + 7, + [ + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 13, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 13, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 3, + 7, + [ + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 3, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 12, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 12, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 4, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 4, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 11, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 11, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 5, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 5, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "-1/2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1/2", + "0", + "0", + "1", + "-1/2", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "2", + "0", + "0", + "-2", + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 6, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 6, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ] + ], + "scope": "Bounded deterministic seed/order search on exact projector construction. Exact role-level relocation controls on the best profile; cost comparison diagnostic only." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7002-NONCOORDINATE-IDLE-WORD.json b/research/fixed-caller-query-and-host-limits/expected/PR7002-NONCOORDINATE-IDLE-WORD.json new file mode 100644 index 0000000000..8b539d9bb6 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7002-NONCOORDINATE-IDLE-WORD.json @@ -0,0 +1,2289 @@ +{ + "idle_rank_profile": { + "64": 3, + "56": 4, + "48": 4, + "40": 4, + "32": 4, + "24": 4, + "16": 4, + "8": 49 + }, + "base_jobs": 181, + "projectors": [ + [ + 0, + 7, + [ + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 16, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ] + ], + [ + 9, + 16, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0" + ] + ], + [ + 1, + 7, + [ + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 1, + 7, + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 15, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 15, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0" + ] + ], + [ + 2, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 2, + 7, + [ + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 14, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 14, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ] + ], + [ + 3, + 7, + [ + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 3, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 13, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 13, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 4, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 4, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 12, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 12, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 5, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 5, + 7, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 11, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 11, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 5, + 6, + [ + "1", + "2", + "0", + "0", + "2", + "0", + "0", + "2", + "0", + "0", + "1", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + [ + 9, + 10, + [ + "-1/2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1/2", + "0", + "0", + "1", + "-1/2", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "2", + "0", + "0", + "-2", + "-2", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ] + ], + "per_port_saved_interval": [ + "8.69021065208131648934273669117805262146729220", + "8.69021065208131648934273669117805262147063589" + ], + "104_port_saving_over_coordinate_lower": "396.976217584871796346219095780246739493152900", + "scope": "Exact normalized role-level relocation by orthogonal projectors, with all-column rational controls. Requires physical whole-idle composition, ordinary map costs, and the native HOST construction." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/expected/PR7004-QUERY-FAMILY-TARGET-PRICE.json b/research/fixed-caller-query-and-host-limits/expected/PR7004-QUERY-FAMILY-TARGET-PRICE.json new file mode 100644 index 0000000000..fd266f33eb --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/expected/PR7004-QUERY-FAMILY-TARGET-PRICE.json @@ -0,0 +1,61 @@ +{ + "queries_by_family": { + "A": 4, + "B": 4 + }, + "ports": { + "A": 96, + "B": 8 + }, + "target_prices": { + "1/250": { + "complex": { + "signed_moment": [ + "-3817697581201197574586481817537/25000000000000000000000000000", + "-7635395162402395149172963628807/50000000000000000000000000000" + ], + "minimum_rank_one_equivalent": 153, + "after_one_A_query_removed": [ + "-1417697581201197574586481817537/25000000000000000000000000000", + "-2835395162402395149172963628807/50000000000000000000000000000" + ], + "after_one_A_and_one_B_query_removed": [ + "-1217697581201197574586481817537/25000000000000000000000000000", + "-2435395162402395149172963628807/50000000000000000000000000000" + ] + }, + "bit": { + "signed_moment": [ + "-28590782599305515084697355000647/500000000000000000000000000000", + "-1786923912456594692793584683623/31250000000000000000000000000" + ], + "minimum_rank_one_equivalent": 58 + } + }, + "1/200": { + "complex": { + "signed_moment": [ + "-35410681731602114045612534057089/62500000000000000000000000000", + "-141642726926408456182450136197021/250000000000000000000000000000" + ], + "minimum_rank_one_equivalent": 567, + "after_one_A_query_removed": [ + "-29410681731602114045612534057089/62500000000000000000000000000", + "-117642726926408456182450136197021/250000000000000000000000000000" + ], + "after_one_A_and_one_B_query_removed": [ + "-28910681731602114045612534057089/62500000000000000000000000000", + "-115642726926408456182450136197021/250000000000000000000000000000" + ] + }, + "bit": { + "signed_moment": [ + "-111015804108084910246186692934791/250000000000000000000000000000", + "-222031608216169820492373385806903/500000000000000000000000000000" + ], + "minimum_rank_one_equivalent": 445 + } + } + }, + "scope": "Exact raw-moment bounds with fixed targets, using source-bound complex and BIT invoices. Query removal is a hypothetical change and not an operator identity, physical or outer admission." +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/notices/PR6824-NOTICE b/research/fixed-caller-query-and-host-limits/notices/PR6824-NOTICE new file mode 100644 index 0000000000..4f06037678 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/notices/PR6824-NOTICE @@ -0,0 +1,5 @@ +Native main-retiming/helper retirement extension by Jerry Chen / @CubeJerry, with substantial OpenAI Codex assistance and separate source-bound review. Apache-2.0. + +Original retained headers, licenses and notices remain unchanged. See retained/caller/NOTICE for the full native/caller/compiler/interval lineage; Ali Romman supplies the helper-basis mechanism, DreamingOfClouds the #6702 native source, and zxv the #6726 caller. + +Shared-carrier input-lift step (lift.py, LIFT.json, PROOF.md) by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. Apache-2.0. The input-lift move class follows Ali Romman's #6349 line of work. diff --git a/research/fixed-caller-query-and-host-limits/notices/PR7000-NOTICE b/research/fixed-caller-query-and-host-limits/notices/PR7000-NOTICE new file mode 100644 index 0000000000..a3687d65a0 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/notices/PR7000-NOTICE @@ -0,0 +1,9 @@ +New shared-wire composition, seventeenth wire, and two enabling splits: developed with substantial OpenAI assistance, 2026. Apache-2.0. + +Frozen predecessor native words and odd verifier: DreamingOfClouds, with Claude Opus 5.5 (Anthropic), from #6936 and #6937. + +Retained Clifford compiler and exact native interpreter retain their original headers and lineage from #6833: native source by DreamingOfClouds; independent-helper mechanism by Ali Romman; inventory, retiming and helper-retirement extensions by Jerry Chen / @CubeJerry with OpenAI assistance. + +Helper-split lemma: Ali Romman (#5599). Shared native applications: CubeJerry (#6916). Caller blocks: CubeJerry (#6912). Owned-rise argument: CubeJerry (#6914). Width-2 phase convention: unpaidmoon (#6930). Odd-grid precedent: icekylinx (#104). + +The higher-level caller and BIT integration require their own source attribution and pins. diff --git a/research/fixed-caller-query-and-host-limits/notices/PR7001-NOTICE b/research/fixed-caller-query-and-host-limits/notices/PR7001-NOTICE new file mode 100644 index 0000000000..32c2936ea0 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/notices/PR7001-NOTICE @@ -0,0 +1,26 @@ +Paired E-free BIT specialization and complete accounting, with substantial +OpenAI Codex assistance, for the integer-multiplication research project. +Apache-2.0; LICENSE is retained from the source project. + +DreamingOfClouds (Claude Opus assistance) receives credit for #6834's chain-root +BIT caller, #6937's E-free roots and the underlying two-chain construction. +@CubeJerry (OpenAI assistance) receives credit for #6980's four-input three-query +identity, separated interval replacement and QUERY-only caller. The complete +#6980 proof is retained byte-for-byte in data/6980_PROOF.md. + +The new contribution specializes that existing caller to the actual #6726 BIT +native, supplies the parity-driven pairing of two real 111-port invocations, +and checks the complete E-free finite/compiler/ordinary budget from the selected +ordinary backend. No general QUERY-only mechanism, chain root or new raw kappa +is claimed as new here. + +independent/bit_review.py and independent/interval_gate.py were written by a +separate OpenAI Codex research worker for an implementation-independent scalar +and arithmetic audit. This is model-run checking, not external human review. + +zxv and retained predecessor authors receive credit for #6726's source-native +export, integer-before-mod2 transfer, complete source checking and admission +framework. Ali Romman and Cinna Davis retain the root/native lineage credit. +The copied arithmetic and native checker retain their original headers; see +retained/NOTICE. The selected .0034 backend retains the source and contributor +credits in data/selected_record.json and data/selected_review.md. diff --git a/research/fixed-caller-query-and-host-limits/notices/PR7002-NOTICE b/research/fixed-caller-query-and-host-limits/notices/PR7002-NOTICE new file mode 100644 index 0000000000..f5d981b979 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/notices/PR7002-NOTICE @@ -0,0 +1,15 @@ +Connected L18 root geometry and emitted caller: substantial OpenAI Codex-assisted research. +Apache-2.0; no human or maintainer review. + +Prior complete-sign/single-chain mechanism and sector normalization: DreamingOfClouds, +including PR6842, PR6936 and PR6937, prepared with Claude Opus 5.5 via Claude Code. +Retained type A root: @CubeJerry (Jerry Chen), PR6912. Caller and native lineage +includes Ali Romman, unpaidmoon and icekylinx, as credited by PR6936. +Independent root, tariff and reverse replay implementations were prepared separately +with OpenAI Codex assistance and import no primary construction/replay code. +Input JSON exports are copied without modification and pinned in INPUT-PINS.json. + +The vendored companion native word retains its complete attribution in inputs/NATIVE-NOTICE. +Its new shared-wire composition, seventeenth wire and enabling splits were developed with +substantial OpenAI assistance in2026, Apache-2.0; predecessor native/compiler lineage +remains DreamingOfClouds, Ali Romman and Jerry Chen / @CubeJerry as recorded there. diff --git a/research/fixed-caller-query-and-host-limits/notices/PR7004-NOTICE b/research/fixed-caller-query-and-host-limits/notices/PR7004-NOTICE new file mode 100644 index 0000000000..a773fca904 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/notices/PR7004-NOTICE @@ -0,0 +1,5 @@ +The peer retiming builds on the #7003 stop-fusion contribution prepared for +ToikY, DreamingOfClouds' #6932 retiming and #6936/#6937 words, and CubeJerry's +#7000 shared-wire composition and #7001 paired BIT construction. Original +source licenses and notices remain attached to the predecessor packages. +Prepared for ToikY with substantial OpenAI Codex assistance. Apache-2.0. diff --git a/research/fixed-caller-query-and-host-limits/replay/PR7000-CALLER.json b/research/fixed-caller-query-and-host-limits/replay/PR7000-CALLER.json new file mode 100644 index 0000000000..cf55f42710 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/PR7000-CALLER.json @@ -0,0 +1 @@ +{"schema":"mixed-root-caller/1","stages":18,"ambient_rank":153,"roles":76,"types":{"A":{"form":"two-chain-HOST2","roles":38,"offset":0,"ports":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,36,37,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"alpha2":"-1","beta2":"0","diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]]},"B":{"form":"hosted-HOST","roles":38,"offset":38,"ports":[15,17,27,34,35,42,47,55],"diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]],"pairs":[[0,1,"-1","1/2","-1/2"],[2,3,"-1","1/2","-1/2"],[4,5,"-1","1/2","-1/2"],[6,7,"-1","1/2","-1/2"],[8,9,"-1","1/2","-1/2"],[10,11,"-1","1/2","-1/2"],[12,13,"-1","1/2","-1/2"],[14,15,"-1","1/2","-1/2"],[16,17,"-1","1/2","-1/2"],[22,23,"-1","1/2","-1/2"],[24,25,"-1","1/2","-1/2"],[26,27,"-1","1/2","-1/2"],[28,29,"-1","1/2","-1/2"],[30,31,"-1","1/2","-1/2"],[32,33,"-1","1/2","-1/2"],[34,35,"-1","1/2","-1/2"],[36,37,"-1","1/2","-1/2"],[38,39,"-1","1/2","-1/2"]]}},"events":[["A","ADD",0,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","SWAP",19,20],["A","SCALE",20,"-1"],["A","LAMBDA",19,1],["B","ADD",40,41,"-2"],["B","ADD",39,41,"1"],["B","ADD",38,41,"2"],["B","ADD",39,40,"1"],["B","ADD",38,40,"1"],["B","ADD",38,39,"-2"],["B","SCALE",39,"256"],["B","ADD",41,39,"-1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"1/64"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["J",1,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",1,2,"1"],["A","ADD",0,2,"-1"],["A","SCALE",1,"-1"],["A","SWAP",1,2],["A","ADD",2,0,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"1"],["A","ADD",19,21,"-1"],["A","SCALE",20,"-1"],["A","SWAP",20,21],["A","SCALE",19,"-1"],["A","ADD",21,19,"1"],["A","SWAP",19,20],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[1]],["B","IDLE_ONE",41,[1]],["B","ADD",42,43,"-2"],["B","ADD",40,43,"-2"],["B","ADD",39,43,"-256"],["B","ADD",38,43,"-128"],["B","ADD",41,42,"1"],["B","ADD",40,42,"-2"],["B","ADD",39,42,"-256"],["B","ADD",39,41,"256"],["B","ADD",38,41,"-128"],["B","ADD",38,40,"-128"],["B","ADD",41,40,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",43,39,"-1/128"],["B","ADD",42,39,"1/128"],["B","ADD",41,39,"1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",43,38,"1/128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",2,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[2,3,4,5,6,7,8,9]],["A","ADD",1,3,"1"],["A","ADD",0,3,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,3],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[2,3,4,5,6,7,8,9]],["A","ADD",20,22,"1"],["A","ADD",19,22,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,22],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",41,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",42,[2]],["B","IDLE_ONE",43,[2]],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",39,45,"-256"],["B","ADD",38,45,"-128"],["B","ADD",43,44,"1"],["B","ADD",42,44,"-2"],["B","ADD",39,44,"-256"],["B","ADD",39,43,"256"],["B","ADD",38,43,"-128"],["B","ADD",38,42,"-128"],["B","ADD",43,42,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",45,39,"-1/128"],["B","ADD",44,39,"1/128"],["B","ADD",43,39,"1/128"],["B","ADD",42,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",45,38,"1/128"],["B","ADD",43,38,"-1/128"],["B","ADD",42,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",3,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",3,[3,4,5,6,7,8,9]],["A","ADD",1,4,"1"],["A","ADD",0,4,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,4],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",22,[3,4,5,6,7,8,9]],["A","ADD",20,23,"1"],["A","ADD",19,23,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,23],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",42,[3,4,5,6,7,8,9]],["B","IDLE_ONE",43,[3,4,5,6,7,8,9]],["B","IDLE_ONE",44,[3]],["B","IDLE_ONE",45,[3]],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",39,47,"-256"],["B","ADD",38,47,"-128"],["B","ADD",45,46,"1"],["B","ADD",44,46,"-2"],["B","ADD",39,46,"-256"],["B","ADD",39,45,"256"],["B","ADD",38,45,"-128"],["B","ADD",38,44,"-128"],["B","ADD",45,44,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",47,39,"-1/128"],["B","ADD",46,39,"1/128"],["B","ADD",45,39,"1/128"],["B","ADD",44,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",47,38,"1/128"],["B","ADD",45,38,"-1/128"],["B","ADD",44,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",4,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",4,[4,5,6,7,8,9]],["A","ADD",1,5,"1"],["A","ADD",0,5,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,5],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",23,[4,5,6,7,8,9]],["A","ADD",20,24,"1"],["A","ADD",19,24,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,24],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",44,[4,5,6,7,8,9]],["B","IDLE_ONE",45,[4,5,6,7,8,9]],["B","IDLE_ONE",46,[4]],["B","IDLE_ONE",47,[4]],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",39,49,"-256"],["B","ADD",38,49,"-128"],["B","ADD",47,48,"1"],["B","ADD",46,48,"-2"],["B","ADD",39,48,"-256"],["B","ADD",39,47,"256"],["B","ADD",38,47,"-128"],["B","ADD",38,46,"-128"],["B","ADD",47,46,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",49,39,"-1/128"],["B","ADD",48,39,"1/128"],["B","ADD",47,39,"1/128"],["B","ADD",46,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",49,38,"1/128"],["B","ADD",47,38,"-1/128"],["B","ADD",46,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",5,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",5,[5,6,7,8,9]],["A","ADD",1,6,"1"],["A","ADD",0,6,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,6],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",24,[5,6,7,8,9]],["A","ADD",20,25,"1"],["A","ADD",19,25,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,25],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",46,[5,6,7,8,9]],["B","IDLE_ONE",47,[5,6,7,8,9]],["B","IDLE_ONE",48,[5]],["B","IDLE_ONE",49,[5]],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",39,51,"-256"],["B","ADD",38,51,"-128"],["B","ADD",49,50,"1"],["B","ADD",48,50,"-2"],["B","ADD",39,50,"-256"],["B","ADD",39,49,"256"],["B","ADD",38,49,"-128"],["B","ADD",38,48,"-128"],["B","ADD",49,48,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",51,39,"-1/128"],["B","ADD",50,39,"1/128"],["B","ADD",49,39,"1/128"],["B","ADD",48,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",51,38,"1/128"],["B","ADD",49,38,"-1/128"],["B","ADD",48,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",6,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",6,[6,7,8,9]],["A","ADD",1,7,"1"],["A","ADD",0,7,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,7],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",25,[6,7,8,9]],["A","ADD",20,26,"1"],["A","ADD",19,26,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,26],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",48,[6,7,8,9]],["B","IDLE_ONE",49,[6,7,8,9]],["B","IDLE_ONE",50,[6]],["B","IDLE_ONE",51,[6]],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",39,53,"-256"],["B","ADD",38,53,"-128"],["B","ADD",51,52,"1"],["B","ADD",50,52,"-2"],["B","ADD",39,52,"-256"],["B","ADD",39,51,"256"],["B","ADD",38,51,"-128"],["B","ADD",38,50,"-128"],["B","ADD",51,50,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",53,39,"-1/128"],["B","ADD",52,39,"1/128"],["B","ADD",51,39,"1/128"],["B","ADD",50,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",53,38,"1/128"],["B","ADD",51,38,"-1/128"],["B","ADD",50,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",7,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",7,[7,8,9]],["A","ADD",1,8,"1"],["A","ADD",0,8,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,8],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",26,[7,8,9]],["A","ADD",20,27,"1"],["A","ADD",19,27,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,27],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",50,[7,8,9]],["B","IDLE_ONE",51,[7,8,9]],["B","IDLE_ONE",52,[7]],["B","IDLE_ONE",53,[7]],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",39,55,"-256"],["B","ADD",38,55,"-128"],["B","ADD",53,54,"1"],["B","ADD",52,54,"-2"],["B","ADD",39,54,"-256"],["B","ADD",39,53,"256"],["B","ADD",38,53,"-128"],["B","ADD",38,52,"-128"],["B","ADD",53,52,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",55,39,"-1/128"],["B","ADD",54,39,"1/128"],["B","ADD",53,39,"1/128"],["B","ADD",52,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",55,38,"1/128"],["B","ADD",53,38,"-1/128"],["B","ADD",52,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",8,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",8,[8,9]],["A","ADD",1,9,"1"],["A","ADD",0,9,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,9],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",27,[8,9]],["A","ADD",20,28,"1"],["A","ADD",19,28,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,28],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",52,[8,9]],["B","IDLE_ONE",53,[8,9]],["B","IDLE_ONE",54,[8]],["B","IDLE_ONE",55,[8]],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",39,57,"-256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"1"],["B","ADD",54,56,"-2"],["B","ADD",39,56,"-256"],["B","ADD",39,55,"256"],["B","ADD",38,55,"-128"],["B","ADD",38,54,"-128"],["B","ADD",55,54,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",57,39,"-1/128"],["B","ADD",56,39,"1/128"],["B","ADD",55,39,"1/128"],["B","ADD",54,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",57,38,"1/128"],["B","ADD",55,38,"-1/128"],["B","ADD",54,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",9,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",9,[9]],["A","SWAP",9,8],["A","SWAP",9,7],["A","SWAP",9,6],["A","SWAP",9,5],["A","SWAP",9,4],["A","SWAP",9,3],["A","SWAP",9,2],["A","ADD",0,1,"1"],["A","SCALE",1,"-1"],["A","SWAP",9,1],["A","ADD",18,0,"1"],["A","ADD",17,0,"1"],["A","ADD",16,0,"1"],["A","ADD",15,0,"1"],["A","ADD",14,0,"1"],["A","ADD",13,0,"1"],["A","ADD",12,0,"1"],["A","ADD",11,0,"1"],["A","ADD",10,0,"1"],["A","ADD",8,0,"1"],["A","ADD",7,0,"1"],["A","ADD",6,0,"1"],["A","ADD",5,0,"1"],["A","ADD",4,0,"1"],["A","ADD",3,0,"1"],["A","ADD",2,0,"1"],["A","ADD",1,0,"1"],["A","LAMBDA",0,1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",28,[9]],["A","SWAP",28,27],["A","SWAP",28,26],["A","SWAP",28,25],["A","SWAP",28,24],["A","SWAP",28,23],["A","SWAP",28,22],["A","SWAP",28,21],["A","ADD",19,20,"1"],["A","SCALE",20,"-1"],["A","SWAP",28,20],["A","ADD",37,19,"1"],["A","ADD",36,19,"1"],["A","ADD",35,19,"1"],["A","ADD",34,19,"1"],["A","ADD",33,19,"1"],["A","ADD",32,19,"1"],["A","ADD",31,19,"1"],["A","ADD",30,19,"1"],["A","ADD",29,19,"1"],["A","ADD",27,19,"1"],["A","ADD",26,19,"1"],["A","ADD",25,19,"1"],["A","ADD",24,19,"1"],["A","ADD",23,19,"1"],["A","ADD",22,19,"1"],["A","ADD",21,19,"1"],["A","ADD",20,19,"1"],["A","LAMBDA",19,1],["A","ADD",2,1,"-1"],["A","ADD",3,1,"-1"],["A","ADD",4,1,"-1"],["A","ADD",5,1,"-1"],["A","ADD",6,1,"-1"],["A","ADD",7,1,"-1"],["A","ADD",8,1,"-1"],["A","ADD",9,1,"-1"],["A","ADD",10,1,"-1"],["A","ADD",11,1,"-1"],["A","ADD",12,1,"-1"],["A","ADD",13,1,"-1"],["A","ADD",14,1,"-1"],["A","ADD",15,1,"-1"],["A","ADD",16,1,"-1"],["A","ADD",17,1,"-1"],["A","ADD",18,1,"-1"],["A","ADD",2,3,"-1"],["A","ADD",2,4,"1"],["A","ADD",2,5,"-1"],["A","ADD",2,6,"1"],["A","ADD",2,7,"-1"],["A","ADD",2,8,"1"],["A","ADD",2,9,"-1"],["A","ADD",2,10,"1"],["A","ADD",2,11,"-1"],["A","ADD",2,12,"1"],["A","ADD",2,13,"-1"],["A","ADD",2,14,"1"],["A","ADD",2,15,"-1"],["A","ADD",2,16,"1"],["A","ADD",2,17,"-1"],["A","ADD",2,18,"1"],["A","LAMBDA",2,1],["A","ADD",0,2,"-1"],["A","SWAP",0,1],["A","SWAP",19,1],["A","ADD",19,2,"1"],["A","LAMBDA",2,1],["A","LAMBDA",2,1],["A","LAMBDA",0,1],["A","LAMBDA",0,1],["A","ADD",1,0,"1"],["A","LAMBDA",0,-1],["A","LAMBDA",0,-1],["A","QUERY",0,19,-1],["A","LAMBDA",0,1],["A","LAMBDA",0,1],["A","ADD",1,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",0,-1],["A","QUERY",19,1,-1],["A","LAMBDA",0,1],["A","LAMBDA",0,1],["A","ADD",1,0,"1"],["A","LAMBDA",0,-1],["A","LAMBDA",0,-1],["A","LAMBDA",19,1],["A","LAMBDA",19,1],["A","ADD",2,19,"-1"],["A","LAMBDA",19,-1],["A","LAMBDA",19,-1],["A","QUERY",1,2,-1],["A","LAMBDA",19,1],["A","LAMBDA",19,1],["A","ADD",2,19,"1"],["A","LAMBDA",19,-1],["A","LAMBDA",19,-1],["A","LAMBDA",1,1],["A","LAMBDA",1,1],["A","ADD",0,1,"-1"],["A","LAMBDA",2,1],["A","LAMBDA",2,1],["A","LAMBDA",2,-1],["A","ADD",2,3,"1"],["A","ADD",2,4,"-1"],["A","ADD",2,5,"1"],["A","ADD",2,6,"-1"],["A","ADD",2,7,"1"],["A","ADD",2,8,"-1"],["A","ADD",2,9,"1"],["A","ADD",2,10,"-1"],["A","ADD",2,11,"1"],["A","ADD",2,12,"-1"],["A","ADD",2,13,"1"],["A","ADD",2,14,"-1"],["A","ADD",2,15,"1"],["A","ADD",2,16,"-1"],["A","ADD",2,17,"1"],["A","ADD",2,18,"-1"],["A","ADD",2,1,"1"],["A","ADD",3,1,"1"],["A","ADD",4,1,"1"],["A","ADD",5,1,"1"],["A","ADD",6,1,"1"],["A","ADD",7,1,"1"],["A","ADD",8,1,"1"],["A","ADD",9,1,"1"],["A","ADD",10,1,"1"],["A","ADD",11,1,"1"],["A","ADD",12,1,"1"],["A","ADD",13,1,"1"],["A","ADD",14,1,"1"],["A","ADD",15,1,"1"],["A","ADD",16,1,"1"],["A","ADD",17,1,"1"],["A","ADD",18,1,"1"],["A","ADD",1,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",1,10,"-1"],["A","ADD",1,9,"1"],["A","ADD",1,8,"-1"],["A","ADD",1,7,"1"],["A","ADD",1,6,"-1"],["A","ADD",1,5,"1"],["A","ADD",1,4,"-1"],["A","ADD",1,3,"1"],["A","ADD",1,2,"-1"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","ADD",17,0,"-1"],["A","ADD",16,0,"-1"],["A","ADD",15,0,"-1"],["A","ADD",14,0,"-1"],["A","ADD",13,0,"-1"],["A","ADD",12,0,"-1"],["A","ADD",11,0,"-1"],["A","ADD",10,0,"-1"],["A","ADD",9,0,"-1"],["A","ADD",8,0,"-1"],["A","ADD",7,0,"-1"],["A","ADD",6,0,"-1"],["A","ADD",5,0,"-1"],["A","ADD",4,0,"-1"],["A","ADD",3,0,"-1"],["A","ADD",2,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",0,1],["A","ADD",1,18,"-1"],["A","ADD",0,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",0,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",0,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",0,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",0,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",0,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",0,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",0,11,"1"],["A","ADD",1,10,"-1"],["A","SCALE",10,"-1"],["A","ADD",1,9,"1"],["A","ADD",0,9,"1"],["A","SWAP",18,9],["A","ADD",1,8,"-1"],["A","ADD",0,8,"-1"],["A","SWAP",17,8],["A","ADD",1,7,"1"],["A","ADD",0,7,"1"],["A","SWAP",16,7],["A","ADD",1,6,"-1"],["A","ADD",0,6,"-1"],["A","SWAP",15,6],["A","ADD",1,5,"1"],["A","ADD",0,5,"1"],["A","SWAP",14,5],["A","ADD",1,4,"-1"],["A","ADD",0,4,"-1"],["A","SWAP",13,4],["A","ADD",1,3,"1"],["A","ADD",0,3,"1"],["A","SWAP",12,3],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SWAP",11,2],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","SWAP",10,1],["A","SWAP",1,0],["A","ADD",0,1,"2"],["A","LAMBDA",0,-1],["A","ADD",20,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",20,29,"-1"],["A","ADD",20,28,"1"],["A","ADD",20,27,"-1"],["A","ADD",20,26,"1"],["A","ADD",20,25,"-1"],["A","ADD",20,24,"1"],["A","ADD",20,23,"-1"],["A","ADD",20,22,"1"],["A","ADD",20,21,"-1"],["A","SCALE",20,"-1"],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","ADD",36,19,"-1"],["A","ADD",35,19,"-1"],["A","ADD",34,19,"-1"],["A","ADD",33,19,"-1"],["A","ADD",32,19,"-1"],["A","ADD",31,19,"-1"],["A","ADD",30,19,"-1"],["A","ADD",29,19,"-1"],["A","ADD",28,19,"-1"],["A","ADD",27,19,"-1"],["A","ADD",26,19,"-1"],["A","ADD",25,19,"-1"],["A","ADD",24,19,"-1"],["A","ADD",23,19,"-1"],["A","ADD",22,19,"-1"],["A","ADD",21,19,"-1"],["A","LAMBDA",19,-1],["A","QUERY",19,20,-1],["A","LAMBDA",19,1],["A","ADD",20,37,"-1"],["A","ADD",19,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",19,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",19,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",19,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",19,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",19,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",19,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",19,30,"1"],["A","ADD",20,29,"-1"],["A","SCALE",29,"-1"],["A","ADD",20,28,"1"],["A","ADD",19,28,"1"],["A","SWAP",37,28],["A","ADD",20,27,"-1"],["A","ADD",19,27,"-1"],["A","SWAP",36,27],["A","ADD",20,26,"1"],["A","ADD",19,26,"1"],["A","SWAP",35,26],["A","ADD",20,25,"-1"],["A","ADD",19,25,"-1"],["A","SWAP",34,25],["A","ADD",20,24,"1"],["A","ADD",19,24,"1"],["A","SWAP",33,24],["A","ADD",20,23,"-1"],["A","ADD",19,23,"-1"],["A","SWAP",32,23],["A","ADD",20,22,"1"],["A","ADD",19,22,"1"],["A","SWAP",31,22],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SWAP",30,21],["A","ADD",19,20,"-1"],["A","SCALE",20,"-1"],["A","SWAP",29,20],["A","SCALE",19,"-1"],["A","SWAP",20,19],["A","ADD",19,20,"-2"],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",54,[9]],["B","IDLE_ONE",55,[9]],["B","IDLE_ONE",56,[9]],["B","IDLE_ONE",57,[9]],["B","ADD",56,75,"1"],["B","ADD",55,75,"1"],["B","ADD",53,75,"1"],["B","ADD",51,75,"1"],["B","ADD",49,75,"1"],["B","ADD",47,75,"1"],["B","ADD",45,75,"1"],["B","ADD",43,75,"1"],["B","ADD",41,75,"1"],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","ADD",56,73,"-1"],["B","ADD",55,73,"-1"],["B","ADD",53,73,"-1"],["B","ADD",51,73,"-1"],["B","ADD",49,73,"-1"],["B","ADD",47,73,"-1"],["B","ADD",45,73,"-1"],["B","ADD",43,73,"-1"],["B","ADD",41,73,"-1"],["B","ADD",39,73,"128"],["B","ADD",38,73,"-64"],["B","ADD",56,72,"2"],["B","ADD",55,72,"2"],["B","ADD",53,72,"2"],["B","ADD",51,72,"2"],["B","ADD",49,72,"2"],["B","ADD",47,72,"2"],["B","ADD",45,72,"2"],["B","ADD",43,72,"2"],["B","ADD",41,72,"2"],["B","ADD",39,72,"-256"],["B","ADD",38,72,"128"],["B","ADD",56,71,"-1"],["B","ADD",55,71,"-1"],["B","ADD",53,71,"-1"],["B","ADD",51,71,"-1"],["B","ADD",49,71,"-1"],["B","ADD",47,71,"-1"],["B","ADD",45,71,"-1"],["B","ADD",43,71,"-1"],["B","ADD",41,71,"-1"],["B","ADD",39,71,"128"],["B","ADD",38,71,"-64"],["B","ADD",56,69,"1"],["B","ADD",55,69,"1"],["B","ADD",53,69,"1"],["B","ADD",51,69,"1"],["B","ADD",49,69,"1"],["B","ADD",47,69,"1"],["B","ADD",45,69,"1"],["B","ADD",43,69,"1"],["B","ADD",41,69,"1"],["B","ADD",39,69,"-128"],["B","ADD",38,69,"64"],["B","ADD",56,68,"-2"],["B","ADD",55,68,"-2"],["B","ADD",53,68,"-2"],["B","ADD",51,68,"-2"],["B","ADD",49,68,"-2"],["B","ADD",47,68,"-2"],["B","ADD",45,68,"-2"],["B","ADD",43,68,"-2"],["B","ADD",41,68,"-2"],["B","ADD",39,68,"256"],["B","ADD",38,68,"-128"],["B","ADD",56,67,"1"],["B","ADD",55,67,"1"],["B","ADD",53,67,"1"],["B","ADD",51,67,"1"],["B","ADD",49,67,"1"],["B","ADD",47,67,"1"],["B","ADD",45,67,"1"],["B","ADD",43,67,"1"],["B","ADD",41,67,"1"],["B","ADD",39,67,"-128"],["B","ADD",38,67,"64"],["B","ADD",56,65,"-1"],["B","ADD",55,65,"-1"],["B","ADD",53,65,"-1"],["B","ADD",51,65,"-1"],["B","ADD",49,65,"-1"],["B","ADD",47,65,"-1"],["B","ADD",45,65,"-1"],["B","ADD",43,65,"-1"],["B","ADD",41,65,"-1"],["B","ADD",39,65,"128"],["B","ADD",38,65,"-64"],["B","ADD",56,64,"2"],["B","ADD",55,64,"2"],["B","ADD",53,64,"2"],["B","ADD",51,64,"2"],["B","ADD",49,64,"2"],["B","ADD",47,64,"2"],["B","ADD",45,64,"2"],["B","ADD",43,64,"2"],["B","ADD",41,64,"2"],["B","ADD",39,64,"-256"],["B","ADD",38,64,"128"],["B","ADD",56,63,"-1"],["B","ADD",55,63,"-1"],["B","ADD",53,63,"-1"],["B","ADD",51,63,"-1"],["B","ADD",49,63,"-1"],["B","ADD",47,63,"-1"],["B","ADD",45,63,"-1"],["B","ADD",43,63,"-1"],["B","ADD",41,63,"-1"],["B","ADD",39,63,"128"],["B","ADD",38,63,"-64"],["B","ADD",56,61,"1"],["B","ADD",55,61,"1"],["B","ADD",53,61,"1"],["B","ADD",51,61,"1"],["B","ADD",49,61,"1"],["B","ADD",47,61,"1"],["B","ADD",45,61,"1"],["B","ADD",43,61,"1"],["B","ADD",41,61,"1"],["B","ADD",39,61,"-128"],["B","ADD",38,61,"64"],["B","ADD",56,60,"-2"],["B","ADD",55,60,"-2"],["B","ADD",53,60,"-2"],["B","ADD",51,60,"-2"],["B","ADD",49,60,"-2"],["B","ADD",47,60,"-2"],["B","ADD",45,60,"-2"],["B","ADD",43,60,"-2"],["B","ADD",41,60,"-2"],["B","ADD",39,60,"256"],["B","ADD",38,60,"-128"],["B","ADD",56,59,"1"],["B","ADD",55,59,"1"],["B","ADD",53,59,"1"],["B","ADD",51,59,"1"],["B","ADD",49,59,"1"],["B","ADD",47,59,"1"],["B","ADD",45,59,"1"],["B","ADD",43,59,"1"],["B","ADD",41,59,"1"],["B","ADD",39,59,"-128"],["B","ADD",38,59,"64"],["B","ADD",39,57,"256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"-3/2"],["B","ADD",53,56,"-1"],["B","ADD",51,56,"-1"],["B","ADD",49,56,"-1"],["B","ADD",47,56,"-1"],["B","ADD",45,56,"-1"],["B","ADD",43,56,"-1"],["B","ADD",41,56,"-1"],["B","ADD",39,56,"128"],["B","ADD",38,56,"-64"],["B","SCALE",56,"1/2"],["B","ADD",53,55,"-1"],["B","ADD",51,55,"-1"],["B","ADD",49,55,"-1"],["B","ADD",47,55,"-1"],["B","ADD",45,55,"-1"],["B","ADD",43,55,"-1"],["B","ADD",41,55,"-1"],["B","ADD",39,55,"128"],["B","ADD",38,55,"64"],["B","SCALE",55,"-1"],["B","ADD",57,55,"1"],["B","SWAP",55,56],["B","ADD",53,54,"1/2"],["B","ADD",51,54,"1/2"],["B","ADD",49,54,"1/2"],["B","ADD",47,54,"1/2"],["B","ADD",45,54,"1/2"],["B","ADD",43,54,"1/2"],["B","ADD",41,54,"1/2"],["B","ADD",39,54,"-64"],["B","ADD",38,54,"-32"],["B","ADD",57,54,"1/2"],["B","ADD",56,54,"1/2"],["B","ADD",55,54,"1/2"],["B","ADD",51,52,"-1/2"],["B","ADD",49,52,"-1/2"],["B","ADD",47,52,"-1/2"],["B","ADD",45,52,"-1/2"],["B","ADD",43,52,"-1/2"],["B","ADD",41,52,"-1/2"],["B","ADD",39,52,"64"],["B","ADD",38,52,"32"],["B","ADD",57,52,"-1/2"],["B","ADD",56,52,"-1/2"],["B","ADD",55,52,"-1/2"],["B","ADD",53,52,"-1/2"],["B","ADD",49,51,"-1"],["B","ADD",47,51,"-2"],["B","ADD",45,51,"-1"],["B","ADD",43,51,"-1"],["B","ADD",41,51,"-1"],["B","ADD",39,51,"128"],["B","ADD",38,51,"64"],["B","ADD",57,51,"-1"],["B","ADD",56,51,"-1"],["B","ADD",55,51,"-1"],["B","ADD",53,51,"-1"],["B","ADD",47,50,"1/2"],["B","ADD",51,50,"-1/2"],["B","ADD",47,49,"-1"],["B","ADD",45,49,"-1"],["B","ADD",43,49,"-1"],["B","ADD",41,49,"-1"],["B","ADD",39,49,"128"],["B","ADD",38,49,"64"],["B","SCALE",49,"-1"],["B","ADD",57,49,"1"],["B","ADD",56,49,"1"],["B","ADD",55,49,"1"],["B","ADD",53,49,"1"],["B","SWAP",49,51],["B","ADD",47,48,"-1/2"],["B","ADD",49,48,"1/2"],["B","ADD",45,47,"-1"],["B","ADD",43,47,"-1"],["B","ADD",41,47,"-1"],["B","ADD",39,47,"128"],["B","ADD",38,47,"64"],["B","SCALE",47,"-1"],["B","ADD",57,47,"1"],["B","ADD",56,47,"1"],["B","ADD",55,47,"1"],["B","ADD",53,47,"1"],["B","ADD",51,47,"1"],["B","SWAP",47,49],["B","ADD",45,46,"1/2"],["B","ADD",43,46,"1/2"],["B","ADD",41,46,"1/2"],["B","ADD",39,46,"-64"],["B","ADD",38,46,"-32"],["B","ADD",57,46,"1/2"],["B","ADD",56,46,"1/2"],["B","ADD",55,46,"1/2"],["B","ADD",53,46,"1/2"],["B","ADD",51,46,"1/2"],["B","ADD",49,46,"1/2"],["B","ADD",47,46,"1/2"],["B","ADD",43,44,"-1/2"],["B","ADD",41,44,"-1/2"],["B","ADD",39,44,"64"],["B","ADD",38,44,"32"],["B","ADD",57,44,"-1/2"],["B","ADD",56,44,"-1/2"],["B","ADD",55,44,"-1/2"],["B","ADD",53,44,"-1/2"],["B","ADD",51,44,"-1/2"],["B","ADD",49,44,"-1/2"],["B","ADD",47,44,"-1/2"],["B","ADD",45,44,"-1/2"],["B","ADD",41,43,"-1"],["B","ADD",39,43,"128"],["B","ADD",38,43,"64"],["B","SCALE",43,"2"],["B","ADD",57,43,"-1/2"],["B","ADD",56,43,"-1/2"],["B","ADD",55,43,"-1/2"],["B","ADD",53,43,"-1/2"],["B","ADD",51,43,"-1/2"],["B","ADD",49,43,"-1/2"],["B","ADD",47,43,"-1/2"],["B","ADD",45,43,"-1/2"],["B","ADD",43,42,"-1"],["B","ADD",39,41,"128"],["B","ADD",38,41,"64"],["B","SCALE",41,"-1"],["B","ADD",57,41,"1"],["B","ADD",56,41,"1"],["B","ADD",55,41,"1"],["B","ADD",53,41,"1"],["B","ADD",51,41,"1"],["B","ADD",49,41,"1"],["B","ADD",47,41,"1"],["B","ADD",45,41,"1"],["B","SWAP",41,43],["B","ADD",41,40,"1"],["B","ADD",38,39,"-1/2"],["B","SCALE",39,"1/128"],["B","ADD",57,39,"1"],["B","ADD",56,39,"1"],["B","ADD",55,39,"1"],["B","ADD",53,39,"1"],["B","ADD",51,39,"1"],["B","ADD",49,39,"1"],["B","ADD",47,39,"1"],["B","ADD",45,39,"1"],["B","ADD",43,39,"1"],["B","SWAP",39,41],["B","SCALE",38,"1/128"],["B","ADD",57,38,"2"],["B","ADD",56,38,"2"],["B","ADD",55,38,"1"],["B","ADD",53,38,"1"],["B","ADD",51,38,"1"],["B","ADD",49,38,"1"],["B","ADD",47,38,"1"],["B","ADD",45,38,"1"],["B","ADD",43,38,"1"],["B","ADD",41,38,"1"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"-1"],["B","ADD",39,73,"1"],["B","ADD",39,72,"-2"],["B","ADD",39,71,"1"],["B","ADD",39,69,"-1"],["B","ADD",39,68,"2"],["B","ADD",39,67,"-1"],["B","ADD",39,65,"1"],["B","ADD",39,64,"-2"],["B","ADD",39,63,"1"],["B","ADD",39,61,"-1"],["B","ADD",39,60,"2"],["B","ADD",39,59,"-1"],["B","ADD",39,56,"-1"],["B","ADD",39,55,"2"],["B","ADD",39,54,"-1"],["B","ADD",39,52,"1"],["B","ADD",39,51,"-2"],["B","ADD",39,50,"1"],["B","ADD",39,48,"-1"],["B","ADD",39,47,"2"],["B","ADD",39,46,"-1"],["B","ADD",39,44,"1"],["B","ADD",39,43,"-2"],["B","ADD",39,42,"1"],["B","ADD",39,40,"-1"],["B","ADD",38,39,"-1"],["B","ADD",57,39,"-1"],["B","ADD",56,39,"-2"],["B","ADD",55,39,"-1"],["B","ADD",54,39,"-2"],["B","ADD",53,39,"-1"],["B","ADD",52,39,"-2"],["B","ADD",51,39,"-1"],["B","ADD",50,39,"-2"],["B","ADD",49,39,"-1"],["B","ADD",48,39,"-2"],["B","ADD",47,39,"-1"],["B","ADD",46,39,"-2"],["B","ADD",45,39,"-1"],["B","ADD",44,39,"-2"],["B","ADD",43,39,"-1"],["B","ADD",42,39,"-2"],["B","ADD",41,39,"-1"],["B","ADD",40,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",74,38,"-1"],["B","ADD",72,38,"-1"],["B","ADD",70,38,"-1"],["B","ADD",68,38,"-1"],["B","ADD",66,38,"-1"],["B","ADD",64,38,"-1"],["B","ADD",62,38,"-1"],["B","ADD",60,38,"-1"],["B","ADD",58,38,"-1"],["B","ADD",57,38,"-1"],["B","ADD",56,38,"-2"],["B","ADD",55,38,"-1"],["B","ADD",54,38,"-2"],["B","ADD",53,38,"-1"],["B","ADD",52,38,"-2"],["B","ADD",51,38,"-1"],["B","ADD",50,38,"-2"],["B","ADD",49,38,"-1"],["B","ADD",48,38,"-2"],["B","ADD",47,38,"-1"],["B","ADD",46,38,"-2"],["B","ADD",45,38,"-1"],["B","ADD",44,38,"-2"],["B","ADD",43,38,"-1"],["B","ADD",42,38,"-2"],["B","ADD",41,38,"-1"],["B","ADD",40,38,"-2"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","SCALE",38,"2"],["B","ADD",75,38,"-1"],["B","ADD",74,38,"-1/2"],["B","ADD",73,38,"-1"],["B","ADD",72,38,"-1/2"],["B","ADD",71,38,"-1"],["B","ADD",70,38,"-1/2"],["B","ADD",69,38,"-1"],["B","ADD",68,38,"-1/2"],["B","ADD",67,38,"-1"],["B","ADD",66,38,"-1/2"],["B","ADD",65,38,"-1"],["B","ADD",64,38,"-1/2"],["B","ADD",63,38,"-1"],["B","ADD",62,38,"-1/2"],["B","ADD",61,38,"-1"],["B","ADD",60,38,"-1/2"],["B","ADD",59,38,"-1"],["B","ADD",58,38,"-1/2"],["B","ADD",57,38,"-1/2"],["B","ADD",55,38,"-1/2"],["B","ADD",53,38,"-1/2"],["B","ADD",51,38,"-1/2"],["B","ADD",49,38,"-1/2"],["B","ADD",47,38,"-1/2"],["B","ADD",45,38,"-1/2"],["B","ADD",43,38,"-1/2"],["B","ADD",41,38,"-1/2"],["B","ADD",39,38,"1/2"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"-1"],["B","ADD",71,75,"-1"],["B","ADD",70,75,"-1"],["B","ADD",69,75,"-1"],["B","ADD",68,75,"-1"],["B","ADD",67,75,"-1"],["B","ADD",66,75,"-1"],["B","ADD",65,75,"-1"],["B","ADD",64,75,"-1"],["B","ADD",63,75,"-1"],["B","ADD",62,75,"-1"],["B","ADD",61,75,"-1"],["B","ADD",60,75,"-1"],["B","ADD",59,75,"-1"],["B","ADD",58,75,"-1"],["B","ADD",56,75,"1"],["B","ADD",54,75,"1"],["B","ADD",52,75,"1"],["B","ADD",50,75,"1"],["B","ADD",48,75,"1"],["B","ADD",46,75,"1"],["B","ADD",44,75,"1"],["B","ADD",42,75,"1"],["B","ADD",40,75,"1"],["B","ADD",38,75,"1"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"2"],["B","ADD",72,74,"2"],["B","ADD",71,74,"2"],["B","ADD",70,74,"2"],["B","ADD",69,74,"2"],["B","ADD",68,74,"2"],["B","ADD",67,74,"2"],["B","ADD",66,74,"2"],["B","ADD",65,74,"2"],["B","ADD",64,74,"2"],["B","ADD",63,74,"2"],["B","ADD",62,74,"2"],["B","ADD",61,74,"2"],["B","ADD",60,74,"2"],["B","ADD",59,74,"2"],["B","ADD",58,74,"2"],["B","ADD",56,74,"-2"],["B","ADD",54,74,"-2"],["B","ADD",52,74,"-2"],["B","ADD",50,74,"-2"],["B","ADD",48,74,"-2"],["B","ADD",46,74,"-2"],["B","ADD",44,74,"-2"],["B","ADD",42,74,"-2"],["B","ADD",40,74,"-2"],["B","ADD",38,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"3/2"],["B","SWAP",74,75],["B","ADD",71,72,"-1/2"],["B","ADD",70,72,"-1"],["B","ADD",69,72,"-1"],["B","ADD",68,72,"-1"],["B","ADD",67,72,"-1"],["B","ADD",66,72,"-1"],["B","ADD",65,72,"-1"],["B","ADD",64,72,"-1"],["B","ADD",63,72,"-1"],["B","ADD",62,72,"-1"],["B","ADD",61,72,"-1"],["B","ADD",60,72,"-1"],["B","ADD",59,72,"-1"],["B","ADD",58,72,"-1"],["B","ADD",56,72,"1"],["B","ADD",54,72,"1"],["B","ADD",52,72,"1"],["B","ADD",50,72,"1"],["B","ADD",48,72,"1"],["B","ADD",46,72,"1"],["B","ADD",44,72,"1"],["B","ADD",42,72,"1"],["B","ADD",40,72,"1"],["B","ADD",38,72,"1"],["B","SCALE",72,"-1/2"],["B","ADD",75,72,"2"],["B","ADD",74,72,"2"],["B","ADD",73,72,"2"],["B","ADD",70,71,"2"],["B","ADD",69,71,"2"],["B","ADD",68,71,"2"],["B","ADD",67,71,"2"],["B","ADD",66,71,"2"],["B","ADD",65,71,"2"],["B","ADD",64,71,"2"],["B","ADD",63,71,"2"],["B","ADD",62,71,"2"],["B","ADD",61,71,"2"],["B","ADD",60,71,"2"],["B","ADD",59,71,"2"],["B","ADD",58,71,"2"],["B","ADD",56,71,"-2"],["B","ADD",54,71,"-2"],["B","ADD",52,71,"-2"],["B","ADD",50,71,"-2"],["B","ADD",48,71,"-2"],["B","ADD",46,71,"-2"],["B","ADD",44,71,"-2"],["B","ADD",42,71,"-2"],["B","ADD",40,71,"-2"],["B","ADD",38,71,"-2"],["B","SCALE",71,"2"],["B","ADD",75,71,"1"],["B","ADD",74,71,"1"],["B","ADD",73,71,"1"],["B","ADD",72,71,"3/2"],["B","SWAP",71,72],["B","ADD",69,70,"-1"],["B","ADD",68,70,"-1/2"],["B","ADD",67,70,"-1"],["B","ADD",66,70,"-1"],["B","ADD",65,70,"-1"],["B","ADD",64,70,"-1"],["B","ADD",63,70,"-1"],["B","ADD",62,70,"-1"],["B","ADD",61,70,"-1"],["B","ADD",60,70,"-1"],["B","ADD",59,70,"-1"],["B","ADD",58,70,"-1"],["B","ADD",56,70,"1"],["B","ADD",54,70,"1"],["B","ADD",52,70,"1"],["B","ADD",50,70,"1"],["B","ADD",48,70,"1"],["B","ADD",46,70,"1"],["B","ADD",44,70,"1"],["B","ADD",42,70,"1"],["B","ADD",40,70,"1"],["B","ADD",38,70,"1"],["B","SCALE",70,"-1/2"],["B","ADD",75,70,"2"],["B","ADD",74,70,"2"],["B","ADD",73,70,"2"],["B","ADD",72,70,"2"],["B","ADD",71,70,"2"],["B","ADD",68,69,"1/2"],["B","ADD",67,69,"-1"],["B","ADD",66,69,"-1"],["B","ADD",65,69,"-1"],["B","ADD",64,69,"-1"],["B","ADD",63,69,"-1"],["B","ADD",62,69,"-1"],["B","ADD",61,69,"-1"],["B","ADD",60,69,"-1"],["B","ADD",59,69,"-1"],["B","ADD",58,69,"-1"],["B","ADD",56,69,"1"],["B","ADD",54,69,"1"],["B","ADD",52,69,"1"],["B","ADD",50,69,"1"],["B","ADD",48,69,"1"],["B","ADD",46,69,"1"],["B","ADD",44,69,"1"],["B","ADD",42,69,"1"],["B","ADD",40,69,"1"],["B","ADD",38,69,"1"],["B","SCALE",69,"-1"],["B","ADD",75,69,"1"],["B","ADD",74,69,"1"],["B","ADD",73,69,"1"],["B","ADD",72,69,"1"],["B","ADD",71,69,"1"],["B","ADD",70,69,"3/2"],["B","SWAP",69,70],["B","ADD",67,68,"2"],["B","ADD",66,68,"2"],["B","ADD",65,68,"2"],["B","ADD",64,68,"2"],["B","ADD",63,68,"2"],["B","ADD",62,68,"2"],["B","ADD",61,68,"2"],["B","ADD",60,68,"2"],["B","ADD",59,68,"2"],["B","ADD",58,68,"2"],["B","ADD",56,68,"-2"],["B","ADD",54,68,"-2"],["B","ADD",52,68,"-2"],["B","ADD",50,68,"-2"],["B","ADD",48,68,"-2"],["B","ADD",46,68,"-2"],["B","ADD",44,68,"-2"],["B","ADD",42,68,"-2"],["B","ADD",40,68,"-2"],["B","ADD",38,68,"-2"],["B","SCALE",68,"2"],["B","ADD",75,68,"1"],["B","ADD",74,68,"1"],["B","ADD",73,68,"1"],["B","ADD",72,68,"1"],["B","ADD",71,68,"1"],["B","ADD",70,68,"1"],["B","ADD",69,68,"3/2"],["B","SWAP",68,69],["B","ADD",66,67,"-1/2"],["B","ADD",65,67,"-1"],["B","ADD",64,67,"-1"],["B","ADD",63,67,"-1"],["B","ADD",62,67,"-1"],["B","ADD",61,67,"-1"],["B","ADD",60,67,"-1"],["B","ADD",59,67,"-1"],["B","ADD",58,67,"-1"],["B","ADD",56,67,"1"],["B","ADD",54,67,"1"],["B","ADD",52,67,"1"],["B","ADD",50,67,"1"],["B","ADD",48,67,"1"],["B","ADD",46,67,"1"],["B","ADD",44,67,"1"],["B","ADD",42,67,"1"],["B","ADD",40,67,"1"],["B","ADD",38,67,"1"],["B","SCALE",67,"-1/2"],["B","ADD",75,67,"2"],["B","ADD",74,67,"2"],["B","ADD",73,67,"2"],["B","ADD",72,67,"2"],["B","ADD",71,67,"2"],["B","ADD",70,67,"2"],["B","ADD",69,67,"2"],["B","ADD",68,67,"2"],["B","ADD",65,66,"2"],["B","ADD",64,66,"2"],["B","ADD",63,66,"2"],["B","ADD",62,66,"2"],["B","ADD",61,66,"2"],["B","ADD",60,66,"2"],["B","ADD",59,66,"2"],["B","ADD",58,66,"2"],["B","ADD",56,66,"-2"],["B","ADD",54,66,"-2"],["B","ADD",52,66,"-2"],["B","ADD",50,66,"-2"],["B","ADD",48,66,"-2"],["B","ADD",46,66,"-2"],["B","ADD",44,66,"-2"],["B","ADD",42,66,"-2"],["B","ADD",40,66,"-2"],["B","ADD",38,66,"-2"],["B","SCALE",66,"2"],["B","ADD",75,66,"1"],["B","ADD",74,66,"1"],["B","ADD",73,66,"1"],["B","ADD",72,66,"1"],["B","ADD",71,66,"1"],["B","ADD",70,66,"1"],["B","ADD",69,66,"1"],["B","ADD",68,66,"1"],["B","ADD",67,66,"3/2"],["B","SWAP",66,67],["B","ADD",63,64,"-1/2"],["B","ADD",62,64,"-1"],["B","ADD",61,64,"-1"],["B","ADD",60,64,"-1"],["B","ADD",59,64,"-1"],["B","ADD",58,64,"-1"],["B","ADD",56,64,"1"],["B","ADD",54,64,"1"],["B","ADD",52,64,"1"],["B","ADD",50,64,"1"],["B","ADD",48,64,"1"],["B","ADD",46,64,"1"],["B","ADD",44,64,"1"],["B","ADD",42,64,"1"],["B","ADD",40,64,"1"],["B","ADD",38,64,"1"],["B","SCALE",64,"-1/2"],["B","ADD",75,64,"2"],["B","ADD",74,64,"2"],["B","ADD",73,64,"2"],["B","ADD",72,64,"2"],["B","ADD",71,64,"2"],["B","ADD",70,64,"2"],["B","ADD",69,64,"2"],["B","ADD",68,64,"2"],["B","ADD",67,64,"2"],["B","ADD",66,64,"2"],["B","ADD",65,64,"2"],["B","ADD",62,63,"2"],["B","ADD",61,63,"2"],["B","ADD",60,63,"2"],["B","ADD",59,63,"2"],["B","ADD",58,63,"2"],["B","ADD",56,63,"-2"],["B","ADD",54,63,"-2"],["B","ADD",52,63,"-2"],["B","ADD",50,63,"-2"],["B","ADD",48,63,"-2"],["B","ADD",46,63,"-2"],["B","ADD",44,63,"-2"],["B","ADD",42,63,"-2"],["B","ADD",40,63,"-2"],["B","ADD",38,63,"-2"],["B","SCALE",63,"2"],["B","ADD",75,63,"1"],["B","ADD",74,63,"1"],["B","ADD",73,63,"1"],["B","ADD",72,63,"1"],["B","ADD",71,63,"1"],["B","ADD",70,63,"1"],["B","ADD",69,63,"1"],["B","ADD",68,63,"1"],["B","ADD",67,63,"1"],["B","ADD",66,63,"1"],["B","ADD",65,63,"1"],["B","ADD",64,63,"3/2"],["B","SWAP",63,64],["B","ADD",61,62,"-1"],["B","ADD",60,62,"-1/2"],["B","ADD",59,62,"-1"],["B","ADD",58,62,"-1"],["B","ADD",56,62,"1"],["B","ADD",54,62,"1"],["B","ADD",52,62,"1"],["B","ADD",50,62,"1"],["B","ADD",48,62,"1"],["B","ADD",46,62,"1"],["B","ADD",44,62,"1"],["B","ADD",42,62,"1"],["B","ADD",40,62,"1"],["B","ADD",38,62,"1"],["B","SCALE",62,"-1/2"],["B","ADD",75,62,"2"],["B","ADD",74,62,"2"],["B","ADD",73,62,"2"],["B","ADD",72,62,"2"],["B","ADD",71,62,"2"],["B","ADD",70,62,"2"],["B","ADD",69,62,"2"],["B","ADD",68,62,"2"],["B","ADD",67,62,"2"],["B","ADD",66,62,"2"],["B","ADD",65,62,"2"],["B","ADD",64,62,"2"],["B","ADD",63,62,"2"],["B","ADD",60,61,"1/2"],["B","ADD",59,61,"-1"],["B","ADD",58,61,"-1"],["B","ADD",56,61,"1"],["B","ADD",54,61,"1"],["B","ADD",52,61,"1"],["B","ADD",50,61,"1"],["B","ADD",48,61,"1"],["B","ADD",46,61,"1"],["B","ADD",44,61,"1"],["B","ADD",42,61,"1"],["B","ADD",40,61,"1"],["B","ADD",38,61,"1"],["B","SCALE",61,"-1"],["B","ADD",75,61,"1"],["B","ADD",74,61,"1"],["B","ADD",73,61,"1"],["B","ADD",72,61,"1"],["B","ADD",71,61,"1"],["B","ADD",70,61,"1"],["B","ADD",69,61,"1"],["B","ADD",68,61,"1"],["B","ADD",67,61,"1"],["B","ADD",66,61,"1"],["B","ADD",65,61,"1"],["B","ADD",64,61,"1"],["B","ADD",63,61,"1"],["B","ADD",62,61,"3/2"],["B","SWAP",61,62],["B","ADD",59,60,"2"],["B","ADD",58,60,"2"],["B","ADD",56,60,"-2"],["B","ADD",54,60,"-2"],["B","ADD",52,60,"-2"],["B","ADD",50,60,"-2"],["B","ADD",48,60,"-2"],["B","ADD",46,60,"-2"],["B","ADD",44,60,"-2"],["B","ADD",42,60,"-2"],["B","ADD",40,60,"-2"],["B","ADD",38,60,"-2"],["B","SCALE",60,"2"],["B","ADD",75,60,"1"],["B","ADD",74,60,"1"],["B","ADD",73,60,"1"],["B","ADD",72,60,"1"],["B","ADD",71,60,"1"],["B","ADD",70,60,"1"],["B","ADD",69,60,"1"],["B","ADD",68,60,"1"],["B","ADD",67,60,"1"],["B","ADD",66,60,"1"],["B","ADD",65,60,"1"],["B","ADD",64,60,"1"],["B","ADD",63,60,"1"],["B","ADD",62,60,"1"],["B","ADD",61,60,"3/2"],["B","SWAP",60,61],["B","ADD",58,59,"-1/2"],["B","ADD",56,59,"1"],["B","ADD",54,59,"1"],["B","ADD",52,59,"1"],["B","ADD",50,59,"1"],["B","ADD",48,59,"1"],["B","ADD",46,59,"1"],["B","ADD",44,59,"1"],["B","ADD",42,59,"1"],["B","ADD",40,59,"1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-1/2"],["B","ADD",75,59,"2"],["B","ADD",74,59,"2"],["B","ADD",73,59,"2"],["B","ADD",72,59,"2"],["B","ADD",71,59,"2"],["B","ADD",70,59,"2"],["B","ADD",69,59,"2"],["B","ADD",68,59,"2"],["B","ADD",67,59,"2"],["B","ADD",66,59,"2"],["B","ADD",65,59,"2"],["B","ADD",64,59,"2"],["B","ADD",63,59,"2"],["B","ADD",62,59,"2"],["B","ADD",61,59,"2"],["B","ADD",60,59,"2"],["B","ADD",56,58,"-2"],["B","ADD",54,58,"-2"],["B","ADD",52,58,"-2"],["B","ADD",50,58,"-2"],["B","ADD",48,58,"-2"],["B","ADD",46,58,"-2"],["B","ADD",44,58,"-2"],["B","ADD",42,58,"-2"],["B","ADD",40,58,"-2"],["B","ADD",38,58,"-2"],["B","SCALE",58,"2"],["B","ADD",75,58,"1"],["B","ADD",74,58,"1"],["B","ADD",73,58,"1"],["B","ADD",72,58,"1"],["B","ADD",71,58,"1"],["B","ADD",70,58,"1"],["B","ADD",69,58,"1"],["B","ADD",68,58,"1"],["B","ADD",67,58,"1"],["B","ADD",66,58,"1"],["B","ADD",65,58,"1"],["B","ADD",64,58,"1"],["B","ADD",63,58,"1"],["B","ADD",62,58,"1"],["B","ADD",61,58,"1"],["B","ADD",60,58,"1"],["B","ADD",59,58,"3/2"],["B","SWAP",58,59],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",52,57,"-2"],["B","ADD",50,57,"-2"],["B","ADD",48,57,"-2"],["B","ADD",46,57,"-2"],["B","ADD",44,57,"-2"],["B","ADD",42,57,"-2"],["B","ADD",40,57,"-2"],["B","ADD",38,57,"-2"],["B","ADD",75,57,"2"],["B","ADD",74,57,"2"],["B","ADD",73,57,"2"],["B","ADD",72,57,"2"],["B","ADD",71,57,"2"],["B","ADD",70,57,"2"],["B","ADD",69,57,"2"],["B","ADD",68,57,"2"],["B","ADD",67,57,"2"],["B","ADD",66,57,"2"],["B","ADD",65,57,"2"],["B","ADD",64,57,"2"],["B","ADD",63,57,"2"],["B","ADD",62,57,"2"],["B","ADD",61,57,"2"],["B","ADD",60,57,"2"],["B","ADD",59,57,"2"],["B","ADD",58,57,"2"],["B","ADD",54,56,"-2"],["B","ADD",52,56,"-2"],["B","ADD",50,56,"-2"],["B","ADD",48,56,"-2"],["B","ADD",46,56,"-2"],["B","ADD",44,56,"-2"],["B","ADD",42,56,"-2"],["B","ADD",40,56,"-2"],["B","ADD",38,56,"-2"],["B","SCALE",56,"-1"],["B","ADD",75,56,"-2"],["B","ADD",74,56,"-2"],["B","ADD",73,56,"-2"],["B","ADD",72,56,"-2"],["B","ADD",71,56,"-2"],["B","ADD",70,56,"-2"],["B","ADD",69,56,"-2"],["B","ADD",68,56,"-2"],["B","ADD",67,56,"-2"],["B","ADD",66,56,"-2"],["B","ADD",65,56,"-2"],["B","ADD",64,56,"-2"],["B","ADD",63,56,"-2"],["B","ADD",62,56,"-2"],["B","ADD",61,56,"-2"],["B","ADD",60,56,"-2"],["B","ADD",59,56,"-2"],["B","ADD",58,56,"-2"],["B","ADD",54,55,"2"],["B","ADD",52,55,"2"],["B","ADD",50,55,"2"],["B","ADD",48,55,"2"],["B","ADD",46,55,"2"],["B","ADD",44,55,"2"],["B","ADD",42,55,"2"],["B","ADD",40,55,"2"],["B","ADD",38,55,"2"],["B","ADD",75,55,"-2"],["B","ADD",74,55,"-2"],["B","ADD",73,55,"-2"],["B","ADD",72,55,"-2"],["B","ADD",71,55,"-2"],["B","ADD",70,55,"-2"],["B","ADD",69,55,"-2"],["B","ADD",68,55,"-2"],["B","ADD",67,55,"-2"],["B","ADD",66,55,"-2"],["B","ADD",65,55,"-2"],["B","ADD",64,55,"-2"],["B","ADD",63,55,"-2"],["B","ADD",62,55,"-2"],["B","ADD",61,55,"-2"],["B","ADD",60,55,"-2"],["B","ADD",59,55,"-2"],["B","ADD",58,55,"-2"],["B","ADD",56,55,"2"],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",48,53,"-2"],["B","ADD",46,53,"-2"],["B","ADD",44,53,"-2"],["B","ADD",42,53,"-2"],["B","ADD",40,53,"-2"],["B","ADD",38,53,"-2"],["B","ADD",75,53,"2"],["B","ADD",74,53,"2"],["B","ADD",73,53,"2"],["B","ADD",72,53,"2"],["B","ADD",71,53,"2"],["B","ADD",70,53,"2"],["B","ADD",69,53,"2"],["B","ADD",68,53,"2"],["B","ADD",67,53,"2"],["B","ADD",66,53,"2"],["B","ADD",65,53,"2"],["B","ADD",64,53,"2"],["B","ADD",63,53,"2"],["B","ADD",62,53,"2"],["B","ADD",61,53,"2"],["B","ADD",60,53,"2"],["B","ADD",59,53,"2"],["B","ADD",58,53,"2"],["B","ADD",56,53,"-2"],["B","ADD",54,53,"-2"],["B","ADD",50,52,"-2"],["B","ADD",48,52,"-2"],["B","ADD",46,52,"-2"],["B","ADD",44,52,"-2"],["B","ADD",42,52,"-2"],["B","ADD",40,52,"-2"],["B","ADD",38,52,"-2"],["B","SCALE",52,"-1"],["B","ADD",75,52,"-2"],["B","ADD",74,52,"-2"],["B","ADD",73,52,"-2"],["B","ADD",72,52,"-2"],["B","ADD",71,52,"-2"],["B","ADD",70,52,"-2"],["B","ADD",69,52,"-2"],["B","ADD",68,52,"-2"],["B","ADD",67,52,"-2"],["B","ADD",66,52,"-2"],["B","ADD",65,52,"-2"],["B","ADD",64,52,"-2"],["B","ADD",63,52,"-2"],["B","ADD",62,52,"-2"],["B","ADD",61,52,"-2"],["B","ADD",60,52,"-2"],["B","ADD",59,52,"-2"],["B","ADD",58,52,"-2"],["B","ADD",56,52,"2"],["B","ADD",54,52,"2"],["B","ADD",50,51,"2"],["B","ADD",48,51,"2"],["B","ADD",46,51,"2"],["B","ADD",44,51,"2"],["B","ADD",42,51,"2"],["B","ADD",40,51,"2"],["B","ADD",38,51,"2"],["B","ADD",75,51,"-2"],["B","ADD",74,51,"-2"],["B","ADD",73,51,"-2"],["B","ADD",72,51,"-2"],["B","ADD",71,51,"-2"],["B","ADD",70,51,"-2"],["B","ADD",69,51,"-2"],["B","ADD",68,51,"-2"],["B","ADD",67,51,"-2"],["B","ADD",66,51,"-2"],["B","ADD",65,51,"-2"],["B","ADD",64,51,"-2"],["B","ADD",63,51,"-2"],["B","ADD",62,51,"-2"],["B","ADD",61,51,"-2"],["B","ADD",60,51,"-2"],["B","ADD",59,51,"-2"],["B","ADD",58,51,"-2"],["B","ADD",56,51,"2"],["B","ADD",54,51,"2"],["B","ADD",52,51,"2"],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",44,49,"-2"],["B","ADD",42,49,"-2"],["B","ADD",40,49,"-2"],["B","ADD",38,49,"-2"],["B","ADD",75,49,"2"],["B","ADD",74,49,"2"],["B","ADD",73,49,"2"],["B","ADD",72,49,"2"],["B","ADD",71,49,"2"],["B","ADD",70,49,"2"],["B","ADD",69,49,"2"],["B","ADD",68,49,"2"],["B","ADD",67,49,"2"],["B","ADD",66,49,"2"],["B","ADD",65,49,"2"],["B","ADD",64,49,"2"],["B","ADD",63,49,"2"],["B","ADD",62,49,"2"],["B","ADD",61,49,"2"],["B","ADD",60,49,"2"],["B","ADD",59,49,"2"],["B","ADD",58,49,"2"],["B","ADD",56,49,"-2"],["B","ADD",54,49,"-2"],["B","ADD",52,49,"-2"],["B","ADD",50,49,"-2"],["B","ADD",46,48,"-2"],["B","ADD",44,48,"-2"],["B","ADD",42,48,"-2"],["B","ADD",40,48,"-2"],["B","ADD",38,48,"-2"],["B","SCALE",48,"-1"],["B","ADD",75,48,"-2"],["B","ADD",74,48,"-2"],["B","ADD",73,48,"-2"],["B","ADD",72,48,"-2"],["B","ADD",71,48,"-2"],["B","ADD",70,48,"-2"],["B","ADD",69,48,"-2"],["B","ADD",68,48,"-2"],["B","ADD",67,48,"-2"],["B","ADD",66,48,"-2"],["B","ADD",65,48,"-2"],["B","ADD",64,48,"-2"],["B","ADD",63,48,"-2"],["B","ADD",62,48,"-2"],["B","ADD",61,48,"-2"],["B","ADD",60,48,"-2"],["B","ADD",59,48,"-2"],["B","ADD",58,48,"-2"],["B","ADD",56,48,"2"],["B","ADD",54,48,"2"],["B","ADD",52,48,"2"],["B","ADD",50,48,"2"],["B","ADD",46,47,"2"],["B","ADD",44,47,"2"],["B","ADD",42,47,"2"],["B","ADD",40,47,"2"],["B","ADD",38,47,"2"],["B","ADD",75,47,"-2"],["B","ADD",74,47,"-2"],["B","ADD",73,47,"-2"],["B","ADD",72,47,"-2"],["B","ADD",71,47,"-2"],["B","ADD",70,47,"-2"],["B","ADD",69,47,"-2"],["B","ADD",68,47,"-2"],["B","ADD",67,47,"-2"],["B","ADD",66,47,"-2"],["B","ADD",65,47,"-2"],["B","ADD",64,47,"-2"],["B","ADD",63,47,"-2"],["B","ADD",62,47,"-2"],["B","ADD",61,47,"-2"],["B","ADD",60,47,"-2"],["B","ADD",59,47,"-2"],["B","ADD",58,47,"-2"],["B","ADD",56,47,"2"],["B","ADD",54,47,"2"],["B","ADD",52,47,"2"],["B","ADD",50,47,"2"],["B","ADD",48,47,"2"],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",40,45,"-2"],["B","ADD",38,45,"-2"],["B","ADD",75,45,"2"],["B","ADD",74,45,"2"],["B","ADD",73,45,"2"],["B","ADD",72,45,"2"],["B","ADD",71,45,"2"],["B","ADD",70,45,"2"],["B","ADD",69,45,"2"],["B","ADD",68,45,"2"],["B","ADD",67,45,"2"],["B","ADD",66,45,"2"],["B","ADD",65,45,"2"],["B","ADD",64,45,"2"],["B","ADD",63,45,"2"],["B","ADD",62,45,"2"],["B","ADD",61,45,"2"],["B","ADD",60,45,"2"],["B","ADD",59,45,"2"],["B","ADD",58,45,"2"],["B","ADD",56,45,"-2"],["B","ADD",54,45,"-2"],["B","ADD",52,45,"-2"],["B","ADD",50,45,"-2"],["B","ADD",48,45,"-2"],["B","ADD",46,45,"-2"],["B","ADD",42,44,"-2"],["B","ADD",40,44,"-2"],["B","ADD",38,44,"-2"],["B","SCALE",44,"-1"],["B","ADD",75,44,"-2"],["B","ADD",74,44,"-2"],["B","ADD",73,44,"-2"],["B","ADD",72,44,"-2"],["B","ADD",71,44,"-2"],["B","ADD",70,44,"-2"],["B","ADD",69,44,"-2"],["B","ADD",68,44,"-2"],["B","ADD",67,44,"-2"],["B","ADD",66,44,"-2"],["B","ADD",65,44,"-2"],["B","ADD",64,44,"-2"],["B","ADD",63,44,"-2"],["B","ADD",62,44,"-2"],["B","ADD",61,44,"-2"],["B","ADD",60,44,"-2"],["B","ADD",59,44,"-2"],["B","ADD",58,44,"-2"],["B","ADD",56,44,"2"],["B","ADD",54,44,"2"],["B","ADD",52,44,"2"],["B","ADD",50,44,"2"],["B","ADD",48,44,"2"],["B","ADD",46,44,"2"],["B","ADD",42,43,"2"],["B","ADD",40,43,"2"],["B","ADD",38,43,"2"],["B","ADD",75,43,"-2"],["B","ADD",74,43,"-2"],["B","ADD",73,43,"-2"],["B","ADD",72,43,"-2"],["B","ADD",71,43,"-2"],["B","ADD",70,43,"-2"],["B","ADD",69,43,"-2"],["B","ADD",68,43,"-2"],["B","ADD",67,43,"-2"],["B","ADD",66,43,"-2"],["B","ADD",65,43,"-2"],["B","ADD",64,43,"-2"],["B","ADD",63,43,"-2"],["B","ADD",62,43,"-2"],["B","ADD",61,43,"-2"],["B","ADD",60,43,"-2"],["B","ADD",59,43,"-2"],["B","ADD",58,43,"-2"],["B","ADD",56,43,"2"],["B","ADD",54,43,"2"],["B","ADD",52,43,"2"],["B","ADD",50,43,"2"],["B","ADD",48,43,"2"],["B","ADD",46,43,"2"],["B","ADD",44,43,"2"],["B","ADD",40,41,"-2"],["B","ADD",38,41,"-2"],["B","ADD",75,41,"2"],["B","ADD",74,41,"2"],["B","ADD",73,41,"2"],["B","ADD",72,41,"2"],["B","ADD",71,41,"2"],["B","ADD",70,41,"2"],["B","ADD",69,41,"2"],["B","ADD",68,41,"2"],["B","ADD",67,41,"2"],["B","ADD",66,41,"2"],["B","ADD",65,41,"2"],["B","ADD",64,41,"2"],["B","ADD",63,41,"2"],["B","ADD",62,41,"2"],["B","ADD",61,41,"2"],["B","ADD",60,41,"2"],["B","ADD",59,41,"2"],["B","ADD",58,41,"2"],["B","ADD",56,41,"-2"],["B","ADD",54,41,"-2"],["B","ADD",52,41,"-2"],["B","ADD",50,41,"-2"],["B","ADD",48,41,"-2"],["B","ADD",46,41,"-2"],["B","ADD",44,41,"-2"],["B","ADD",42,41,"-2"],["B","ADD",38,40,"-2"],["B","SCALE",40,"-1"],["B","ADD",75,40,"-2"],["B","ADD",74,40,"-2"],["B","ADD",73,40,"-2"],["B","ADD",72,40,"-2"],["B","ADD",71,40,"-2"],["B","ADD",70,40,"-2"],["B","ADD",69,40,"-2"],["B","ADD",68,40,"-2"],["B","ADD",67,40,"-2"],["B","ADD",66,40,"-2"],["B","ADD",65,40,"-2"],["B","ADD",64,40,"-2"],["B","ADD",63,40,"-2"],["B","ADD",62,40,"-2"],["B","ADD",61,40,"-2"],["B","ADD",60,40,"-2"],["B","ADD",59,40,"-2"],["B","ADD",58,40,"-2"],["B","ADD",56,40,"2"],["B","ADD",54,40,"2"],["B","ADD",52,40,"2"],["B","ADD",50,40,"2"],["B","ADD",48,40,"2"],["B","ADD",46,40,"2"],["B","ADD",44,40,"2"],["B","ADD",42,40,"2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-2"],["B","ADD",73,39,"-2"],["B","ADD",72,39,"-2"],["B","ADD",71,39,"-2"],["B","ADD",70,39,"-2"],["B","ADD",69,39,"-2"],["B","ADD",68,39,"-2"],["B","ADD",67,39,"-2"],["B","ADD",66,39,"-2"],["B","ADD",65,39,"-2"],["B","ADD",64,39,"-2"],["B","ADD",63,39,"-2"],["B","ADD",62,39,"-2"],["B","ADD",61,39,"-2"],["B","ADD",60,39,"-2"],["B","ADD",59,39,"-2"],["B","ADD",58,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","ADD",73,38,"2"],["B","ADD",72,38,"2"],["B","ADD",71,38,"2"],["B","ADD",70,38,"2"],["B","ADD",69,38,"2"],["B","ADD",68,38,"2"],["B","ADD",67,38,"2"],["B","ADD",66,38,"2"],["B","ADD",65,38,"2"],["B","ADD",64,38,"2"],["B","ADD",63,38,"2"],["B","ADD",62,38,"2"],["B","ADD",61,38,"2"],["B","ADD",60,38,"2"],["B","ADD",59,38,"2"],["B","ADD",58,38,"2"],["B","ADD",56,38,"-2"],["B","ADD",54,38,"-2"],["B","ADD",52,38,"-2"],["B","ADD",50,38,"-2"],["B","ADD",48,38,"-2"],["B","ADD",46,38,"-2"],["B","ADD",44,38,"-2"],["B","ADD",42,38,"-2"],["B","ADD",40,38,"-2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"1"],["B","ADD",72,74,"-1"],["B","ADD",70,74,"-1"],["B","ADD",68,74,"-1"],["B","ADD",66,74,"-1"],["B","ADD",64,74,"-1"],["B","ADD",62,74,"-1"],["B","ADD",58,74,"-1/2"],["B","ADD",39,74,"1"],["B","SWAP",73,75],["B","ADD",39,72,"1"],["B","SWAP",72,74],["B","ADD",39,71,"-1"],["B","ADD",39,70,"1"],["B","ADD",39,68,"-1"],["B","ADD",39,67,"1"],["B","ADD",39,66,"-1"],["B","SWAP",65,69],["B","ADD",39,64,"1"],["B","SWAP",64,68],["B","ADD",39,63,"-1"],["B","SWAP",63,71],["B","ADD",39,62,"1"],["B","SWAP",62,70],["B","SWAP",61,75],["B","ADD",39,60,"-1"],["B","SWAP",60,74],["B","ADD",58,59,"-1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-2"],["B","ADD",75,59,"1"],["B","ADD",74,59,"1"],["B","SWAP",59,73],["B","SCALE",58,"-2"],["B","ADD",72,58,"-1"],["B","ADD",70,58,"1"],["B","ADD",68,58,"1"],["B","ADD",66,58,"1"],["B","ADD",64,58,"1"],["B","ADD",62,58,"1"],["B","ADD",60,58,"1"],["B","ADD",39,57,"-1"],["B","ADD",39,56,"1"],["B","ADD",39,55,"-1"],["B","ADD",39,53,"1"],["B","ADD",39,52,"-1"],["B","ADD",39,51,"1"],["B","ADD",39,49,"-1"],["B","ADD",39,48,"1"],["B","ADD",39,47,"-1"],["B","ADD",39,45,"1"],["B","ADD",39,44,"-1"],["B","ADD",39,43,"1"],["B","ADD",39,41,"-1"],["B","ADD",39,40,"1"],["B","ADD",38,39,"1"],["B","SCALE",39,"-128"],["B","ADD",72,39,"1/64"],["B","ADD",70,39,"-1/64"],["B","ADD",68,39,"-1/64"],["B","ADD",66,39,"-1/64"],["B","ADD",64,39,"-1/64"],["B","ADD",62,39,"-1/64"],["B","ADD",60,39,"-1/64"],["B","ADD",58,39,"-1/64"],["B","SCALE",38,"128"],["B","ADD",75,38,"1/32"],["B","ADD",74,38,"1/64"],["B","ADD",73,38,"1/32"],["B","ADD",72,38,"-1/64"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["J",10,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[10]],["A","IDLE_ONE",3,[10,11]],["A","IDLE_ONE",4,[10,11,12]],["A","IDLE_ONE",5,[10,11,12,13]],["A","IDLE_ONE",6,[10,11,12,13,14]],["A","IDLE_ONE",7,[10,11,12,13,14,15]],["A","IDLE_ONE",8,[10,11,12,13,14,15,16]],["A","IDLE_ONE",9,[10,11,12,13,14,15,16,17]],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[10]],["A","IDLE_ONE",22,[10,11]],["A","IDLE_ONE",23,[10,11,12]],["A","IDLE_ONE",24,[10,11,12,13]],["A","IDLE_ONE",25,[10,11,12,13,14]],["A","IDLE_ONE",26,[10,11,12,13,14,15]],["A","IDLE_ONE",27,[10,11,12,13,14,15,16]],["A","IDLE_ONE",28,[10,11,12,13,14,15,16,17]],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",58,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",59,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",60,[10,11,12,13,14,15,16]],["B","IDLE_ONE",61,[10,11,12,13,14,15,16]],["B","IDLE_ONE",62,[10,11,12,13,14,15]],["B","IDLE_ONE",63,[10,11,12,13,14,15]],["B","IDLE_ONE",64,[10,11,12,13,14]],["B","IDLE_ONE",65,[10,11,12,13,14]],["B","IDLE_ONE",66,[10,11,12,13]],["B","IDLE_ONE",67,[10,11,12,13]],["B","IDLE_ONE",68,[10,11,12]],["B","IDLE_ONE",69,[10,11,12]],["B","IDLE_ONE",70,[10,11]],["B","IDLE_ONE",71,[10,11]],["B","IDLE_ONE",72,[10]],["B","IDLE_ONE",73,[10]],["B","IDLE_ONE",74,[10]],["B","IDLE_ONE",75,[10]],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"1/2"],["B","ADD",39,75,"-64"],["B","SCALE",75,"1/4"],["B","ADD",72,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"1/2"],["B","ADD",72,73,"3/2"],["B","ADD",39,73,"64"],["B","ADD",38,73,"64"],["B","SCALE",73,"2"],["B","ADD",75,73,"-5/8"],["B","ADD",74,73,"-3/2"],["B","SWAP",73,75],["B","ADD",38,72,"-64"],["B","ADD",74,72,"2"],["B","ADD",73,72,"3/2"],["B","SWAP",72,73],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","SWAP",59,61],["B","SWAP",58,60],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",59,39,"1/64"],["B","ADD",58,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",59,38,"-1/64"],["B","ADD",58,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",11,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[11]],["B","IDLE_ONE",75,[11]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",61,39,"1/64"],["B","ADD",60,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",61,38,"-1/64"],["B","ADD",60,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",12,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[12]],["B","IDLE_ONE",75,[12]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",63,39,"1/64"],["B","ADD",62,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",63,38,"-1/64"],["B","ADD",62,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",13,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[13]],["B","IDLE_ONE",75,[13]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",65,39,"1/64"],["B","ADD",64,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",65,38,"-1/64"],["B","ADD",64,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",14,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[14]],["B","IDLE_ONE",75,[14]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",67,39,"1/64"],["B","ADD",66,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",67,38,"-1/64"],["B","ADD",66,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",15,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[15]],["B","IDLE_ONE",75,[15]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",69,39,"1/64"],["B","ADD",68,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",69,38,"-1/64"],["B","ADD",68,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",16,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[16]],["B","IDLE_ONE",75,[16]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",71,39,"1/64"],["B","ADD",70,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",71,38,"-1/64"],["B","ADD",70,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",17,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[17]],["B","IDLE_ONE",75,[17]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/4"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SCALE",74,"1/2"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"1"],["B","ADD",74,73,"-1/2"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1/2"],["B","ADD",73,72,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/64"],["B","ADD",74,39,"-1/128"],["B","ADD",73,39,"1/64"],["B","ADD",72,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/64"],["B","ADD",73,38,"-1/64"],["B","ADD",72,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",18,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","SWAP",2,18],["A","ADD",0,1,"-2"],["A","SWAP",1,18],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",1,-1],["A","LAMBDA",2,-1],["A","LAMBDA",3,-1],["A","LAMBDA",4,-1],["A","LAMBDA",5,-1],["A","LAMBDA",6,-1],["A","LAMBDA",7,-1],["A","LAMBDA",8,-1],["A","LAMBDA",9,-1],["A","LAMBDA",10,-1],["A","LAMBDA",11,-1],["A","LAMBDA",12,-1],["A","LAMBDA",13,-1],["A","LAMBDA",14,-1],["A","LAMBDA",15,-1],["A","LAMBDA",16,-1],["A","LAMBDA",17,-1],["A","LAMBDA",18,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","SWAP",21,37],["A","ADD",19,20,"-2"],["A","SWAP",20,37],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","LAMBDA",19,-1],["A","LAMBDA",20,-1],["A","LAMBDA",21,-1],["A","LAMBDA",22,-1],["A","LAMBDA",23,-1],["A","LAMBDA",24,-1],["A","LAMBDA",25,-1],["A","LAMBDA",26,-1],["A","LAMBDA",27,-1],["A","LAMBDA",28,-1],["A","LAMBDA",29,-1],["A","LAMBDA",30,-1],["A","LAMBDA",31,-1],["A","LAMBDA",32,-1],["A","LAMBDA",33,-1],["A","LAMBDA",34,-1],["A","LAMBDA",35,-1],["A","LAMBDA",36,-1],["A","LAMBDA",37,-1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[18]],["B","IDLE_ONE",75,[18]],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","SCALE",75,"-1"],["B","ADD",38,74,"128"],["B","SCALE",74,"-1"],["B","ADD",75,74,"2"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"1/128"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-1"],["B","SCALE",38,"1/128"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","LAMBDA",39,-1],["B","LAMBDA",40,-1],["B","LAMBDA",41,-1],["B","LAMBDA",42,-1],["B","LAMBDA",43,-1],["B","LAMBDA",44,-1],["B","LAMBDA",45,-1],["B","LAMBDA",46,-1],["B","LAMBDA",47,-1],["B","LAMBDA",48,-1],["B","LAMBDA",49,-1],["B","LAMBDA",50,-1],["B","LAMBDA",51,-1],["B","LAMBDA",52,-1],["B","LAMBDA",53,-1],["B","LAMBDA",54,-1],["B","LAMBDA",55,-1],["B","LAMBDA",56,-1],["B","LAMBDA",57,-1],["B","LAMBDA",58,-1],["B","LAMBDA",59,-1],["B","LAMBDA",60,-1],["B","LAMBDA",61,-1],["B","LAMBDA",62,-1],["B","LAMBDA",63,-1],["B","LAMBDA",64,-1],["B","LAMBDA",65,-1],["B","LAMBDA",66,-1],["B","LAMBDA",67,-1],["B","LAMBDA",68,-1],["B","LAMBDA",69,-1],["B","LAMBDA",70,-1],["B","LAMBDA",71,-1],["B","LAMBDA",72,-1],["B","LAMBDA",73,-1],["B","LAMBDA",74,-1],["B","LAMBDA",75,-1]],"ops_note":"QSELF(x, k): R[x] *= q^k, one paid rank-1 job on one register (new op; not in the retained alphabet).; source interval457..575 replaced by a three-QUERY even-basis factorization; no QSELF"} diff --git a/research/fixed-caller-query-and-host-limits/replay/PR7001-RESULT.json b/research/fixed-caller-query-and-host-limits/replay/PR7001-RESULT.json new file mode 100644 index 0000000000..575f76487f --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/PR7001-RESULT.json @@ -0,0 +1,19787 @@ +{ + "status": "PASS_PAIRED_EFREE_BIT_EXISTING_00385248", + "ordinary_admitted": "12039/3125000", + "previous_ordinary": "17/5000", + "ordinary_gain": null, + "existing_same_profile_ordinary": "12039/3125000", + "raw_tested": "385253/100000000", + "raw_crossing": [ + "19262696967/5000000000000", + "7705078787/2000000000000" + ], + "covered_saving": "19262649/5000000000", + "caller_sha256": "757b3523798f840bdb02028b23708c3416627a99ea09e7a3c4bcdc5cd0c7ce4b", + "native_source_sha256": "51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78", + "source_pins": { + "bit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "main_wire": "d360b1182b6d21b1ee2354856abcb50646ad618b", + "main": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "query_only": "617903497387a98f7ca929ad0b6928dd32abffec", + "prior_same_invoice": "79603d1f7d243f1d034613df84991673a94ad5ae" + }, + "forward_coefficients": 1444, + "reverse_coefficients": 1444, + "source": { + "public": 659, + "owned_labels": 237, + "owned_lifetimes": 237, + "peak_owned": 237, + "nonzero_owned_erasures": 237, + "checked_public_matrix_coefficients": 434281, + "exact_scalar_endpoint": "X_i\u2192X_i; Y_i\u2192Y_i+X_i; each helper independent", + "native_edges": 2871, + "charts": [ + { + "port": 0, + "input_frame": 2, + "output_frame": 525, + "basis": [ + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 1, + "input_frame": 3, + "output_frame": 526, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 2, + "input_frame": 4, + "output_frame": 527, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 3, + "input_frame": 5, + "output_frame": 528, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 4, + "input_frame": 6, + "output_frame": 529, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 5, + "input_frame": 7, + "output_frame": 530, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 6, + "input_frame": 8, + "output_frame": 531, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 7, + "input_frame": 9, + "output_frame": 532, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-1" + }, + { + "port": 8, + "input_frame": 10, + "output_frame": 533, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + -1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 9, + "input_frame": 11, + "output_frame": 534, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 10, + "input_frame": 12, + "output_frame": 535, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 11, + "input_frame": 13, + "output_frame": 536, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 12, + "input_frame": 14, + "output_frame": 537, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + -1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 13, + "input_frame": 15, + "output_frame": 538, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 14, + "input_frame": 16, + "output_frame": 539, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + -1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 15, + "input_frame": 17, + "output_frame": 540, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 16, + "input_frame": 18, + "output_frame": 541, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + -1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 17, + "input_frame": 19, + "output_frame": 542, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 18, + "input_frame": 20, + "output_frame": 543, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 19, + "input_frame": 21, + "output_frame": 544, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + -1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 20, + "input_frame": 22, + "output_frame": 545, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 21, + "input_frame": 23, + "output_frame": 546, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + -1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 22, + "input_frame": 24, + "output_frame": 547, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 23, + "input_frame": 25, + "output_frame": 548, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 24, + "input_frame": 26, + "output_frame": 549, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 25, + "input_frame": 27, + "output_frame": 550, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 26, + "input_frame": 28, + "output_frame": 551, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 27, + "input_frame": 29, + "output_frame": 552, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 28, + "input_frame": 30, + "output_frame": 553, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 29, + "input_frame": 31, + "output_frame": 554, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 30, + "input_frame": 32, + "output_frame": 555, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + -1, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 31, + "input_frame": 33, + "output_frame": 556, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 32, + "input_frame": 34, + "output_frame": 557, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + -1, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 33, + "input_frame": 35, + "output_frame": 558, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 34, + "input_frame": 36, + "output_frame": 559, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + -1, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 35, + "input_frame": 37, + "output_frame": 560, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 1, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 36, + "input_frame": 38, + "output_frame": 561, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + -1, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 37, + "input_frame": 39, + "output_frame": 562, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 1, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 38, + "input_frame": 40, + "output_frame": 563, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + -1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 39, + "input_frame": 41, + "output_frame": 564, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 40, + "input_frame": 42, + "output_frame": 565, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + -1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 41, + "input_frame": 43, + "output_frame": 566, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 42, + "input_frame": 44, + "output_frame": 567, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 43, + "input_frame": 45, + "output_frame": 568, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + -1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 44, + "input_frame": 46, + "output_frame": 569, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 45, + "input_frame": 47, + "output_frame": 570, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + -1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 46, + "input_frame": 48, + "output_frame": 571, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 47, + "input_frame": 49, + "output_frame": 572, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 48, + "input_frame": 50, + "output_frame": 573, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + -1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 49, + "input_frame": 51, + "output_frame": 574, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 50, + "input_frame": 52, + "output_frame": 575, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 51, + "input_frame": 53, + "output_frame": 576, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 52, + "input_frame": 54, + "output_frame": 577, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 53, + "input_frame": 55, + "output_frame": 578, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + -1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 54, + "input_frame": 56, + "output_frame": 579, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 55, + "input_frame": 57, + "output_frame": 580, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + 1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 56, + "input_frame": 58, + "output_frame": 581, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + -1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "1/4", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 57, + "input_frame": 59, + "output_frame": 582, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + 1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 58, + "input_frame": 60, + "output_frame": 583, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + -1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 59, + "input_frame": 61, + "output_frame": 584, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + -1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 60, + "input_frame": 62, + "output_frame": 585, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 61, + "input_frame": 63, + "output_frame": 586, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 62, + "input_frame": 64, + "output_frame": 587, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 63, + "input_frame": 65, + "output_frame": 588, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "3/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 64, + "input_frame": 66, + "output_frame": 589, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + -1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 65, + "input_frame": 67, + "output_frame": 590, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + -1, + -1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 66, + "input_frame": 68, + "output_frame": 591, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 0, + 1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 67, + "input_frame": 69, + "output_frame": 592, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 0, + -1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 68, + "input_frame": 70, + "output_frame": 593, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 0, + 1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 69, + "input_frame": 71, + "output_frame": 594, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 0, + 1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 70, + "input_frame": 72, + "output_frame": 595, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 0, + -1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 71, + "input_frame": 73, + "output_frame": 596, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 0, + 1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 72, + "input_frame": 74, + "output_frame": 597, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 0, + -1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 73, + "input_frame": 75, + "output_frame": 598, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 74, + "input_frame": 76, + "output_frame": 599, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 75, + "input_frame": 77, + "output_frame": 600, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 76, + "input_frame": 78, + "output_frame": 601, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 77, + "input_frame": 79, + "output_frame": 602, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 78, + "input_frame": 80, + "output_frame": 603, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 79, + "input_frame": 81, + "output_frame": 604, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 80, + "input_frame": 82, + "output_frame": 605, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 81, + "input_frame": 83, + "output_frame": 606, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + -1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 82, + "input_frame": 84, + "output_frame": 607, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + -1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 83, + "input_frame": 85, + "output_frame": 608, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + 1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 84, + "input_frame": 86, + "output_frame": 609, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + 1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 85, + "input_frame": 87, + "output_frame": 610, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + -1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 86, + "input_frame": 88, + "output_frame": 611, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + 1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 87, + "input_frame": 89, + "output_frame": 612, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + -1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 88, + "input_frame": 90, + "output_frame": 613, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 89, + "input_frame": 91, + "output_frame": 614, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 90, + "input_frame": 92, + "output_frame": 615, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 91, + "input_frame": 93, + "output_frame": 616, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 92, + "input_frame": 94, + "output_frame": 617, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 93, + "input_frame": 95, + "output_frame": 618, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 94, + "input_frame": 96, + "output_frame": 619, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 95, + "input_frame": 97, + "output_frame": 620, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 96, + "input_frame": 98, + "output_frame": 621, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + -1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 97, + "input_frame": 99, + "output_frame": 622, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + 1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 98, + "input_frame": 100, + "output_frame": 623, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + -1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 99, + "input_frame": 101, + "output_frame": 624, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + 1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 100, + "input_frame": 102, + "output_frame": 625, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + 1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 101, + "input_frame": 103, + "output_frame": 626, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + -1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 102, + "input_frame": 104, + "output_frame": 627, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + 1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 103, + "input_frame": 105, + "output_frame": 628, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + -1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 104, + "input_frame": 106, + "output_frame": 629, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 105, + "input_frame": 107, + "output_frame": 630, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + -1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 106, + "input_frame": 108, + "output_frame": 631, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 107, + "input_frame": 109, + "output_frame": 632, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 108, + "input_frame": 110, + "output_frame": 633, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + -1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 109, + "input_frame": 111, + "output_frame": 634, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 110, + "input_frame": 112, + "output_frame": 635, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + -1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + } + ] + }, + "native_paid": { + "1": 1386, + "2": 1253, + "3": 62, + "4": 47, + "5": 9, + "6": 104, + "7": 10 + }, + "native_helpers": { + "2": 1, + "4": 25, + "6": 1, + "8": 410 + }, + "paid": { + "1": 50340, + "2": 45108, + "3": 2232, + "4": 1692, + "5": 324, + "6": 3744, + "7": 804, + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444 + }, + "targets": { + "2": 36, + "4": 900, + "6": 36, + "8": 15204, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 444, + "127": 222 + }, + "paid_jobs": 107352, + "productive_fields": 19950, + "rank_surplus": 1506, + "native_calls": 36, + "native_instances": [ + { + "stage": 1, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage1_copy0", + "body_axes": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "stage": 1, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage1_copy1", + "body_axes": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "stage": 2, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage2_copy0", + "body_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "stage": 2, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage2_copy1", + "body_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "stage": 3, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage3_copy0", + "body_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ] + }, + { + "stage": 3, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage3_copy1", + "body_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ] + }, + { + "stage": 4, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage4_copy0", + "body_axes": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + }, + { + "stage": 4, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage4_copy1", + "body_axes": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + }, + { + "stage": 5, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage5_copy0", + "body_axes": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + }, + { + "stage": 5, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage5_copy1", + "body_axes": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + }, + { + "stage": 6, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage6_copy0", + "body_axes": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ] + }, + { + "stage": 6, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage6_copy1", + "body_axes": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ] + }, + { + "stage": 7, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage7_copy0", + "body_axes": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + { + "stage": 7, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage7_copy1", + "body_axes": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + { + "stage": 8, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage8_copy0", + "body_axes": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + }, + { + "stage": 8, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage8_copy1", + "body_axes": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + }, + { + "stage": 9, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage9_copy0", + "body_axes": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ] + }, + { + "stage": 9, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage9_copy1", + "body_axes": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ] + }, + { + "stage": 10, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage10_copy0", + "body_axes": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + }, + { + "stage": 10, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage10_copy1", + "body_axes": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + }, + { + "stage": 11, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage11_copy0", + "body_axes": [ + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ] + }, + { + "stage": 11, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage11_copy1", + "body_axes": [ + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ] + }, + { + "stage": 12, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage12_copy0", + "body_axes": [ + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ] + }, + { + "stage": 12, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage12_copy1", + "body_axes": [ + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ] + }, + { + "stage": 13, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage13_copy0", + "body_axes": [ + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ] + }, + { + "stage": 13, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage13_copy1", + "body_axes": [ + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ] + }, + { + "stage": 14, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage14_copy0", + "body_axes": [ + 92, + 93, + 94, + 95, + 96, + 97, + 98 + ] + }, + { + "stage": 14, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage14_copy1", + "body_axes": [ + 92, + 93, + 94, + 95, + 96, + 97, + 98 + ] + }, + { + "stage": 15, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage15_copy0", + "body_axes": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105 + ] + }, + { + "stage": 15, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage15_copy1", + "body_axes": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105 + ] + }, + { + "stage": 16, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage16_copy0", + "body_axes": [ + 106, + 107, + 108, + 109, + 110, + 111, + 112 + ] + }, + { + "stage": 16, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage16_copy1", + "body_axes": [ + 106, + 107, + 108, + 109, + 110, + 111, + 112 + ] + }, + { + "stage": 17, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage17_copy0", + "body_axes": [ + 113, + 114, + 115, + 116, + 117, + 118, + 119 + ] + }, + { + "stage": 17, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage17_copy1", + "body_axes": [ + 113, + 114, + 115, + 116, + 117, + 118, + 119 + ] + }, + { + "stage": 18, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage18_copy0", + "body_axes": [ + 120, + 121, + 122, + 123, + 124, + 125, + 126 + ] + }, + { + "stage": 18, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage18_copy1", + "body_axes": [ + 120, + 121, + 122, + 123, + 124, + 125, + 126 + ] + } + ], + "independent_moment_intervals": { + "385253/100000000": { + "lower": "0.0036436256394743949296533752", + "upper": "0.0036436256394743949296533753" + }, + "19262696967/5000000000000": { + "lower": "0.0000000177738444696303501702", + "upper": "0.0000000177738444696303501703" + }, + "7705078787/2000000000000": { + "lower": "-0.0000000210151754464759206813", + "upper": "-0.0000000210151754464759206812" + } + }, + "finite_admission": { + "label": "paired_efree_bit", + "source_status": "Integral caller with38independent roles; unchanged #6726 BIT native111 ports per actual call; 36actual calls; all1444forward and reverse coefficients", + "targets": { + "2": 36, + "4": 900, + "6": 36, + "8": 15204, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 444, + "127": 222 + }, + "paid": { + "1": 50340, + "2": 45108, + "3": 2232, + "4": 1692, + "5": 324, + "6": 3744, + "7": 804, + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444 + }, + "tested_saving": "385253/100000000", + "tensor_power": 768, + "cutoff_base": 15, + "floor_base": 16, + "paid_tail_offset": "1/5", + "target_tail_offset": "1/5", + "alpha": { + "lower": "0.999999987456792518482620787614", + "upper": "0.999999987456792518482620787615" + }, + "gamma": { + "lower": "0.873285149195037839608624837051", + "upper": "0.873285149195037839608624837052" + }, + "lambda": { + "lower": "0.949370882291320583076906294105", + "upper": "0.949370882291320583076906294106" + }, + "rational_upper_limits": [ + "999999987456793/1000000000000000", + "436642574597519/500000000000000", + "949370882291321/1000000000000000" + ], + "normalized_paid_plus_lost_target_upper": { + "lower": "0.999990366909821325001257063996", + "upper": "0.999990366909821325001257063997" + }, + "strict_normalized_gap": { + "lower": "0.000009633090178674998742936003", + "upper": "0.000009633090178674998742936004" + }, + "ambient": "127^768", + "maximum_paid": "15^768", + "minimum_retained_target": "16^768", + "source_public_fields": 19950, + "source_paid_calls": 107352, + "source_paid_rank_mass": 292512, + "retained_productive_fields": "W = sum over target tuples with product >= 16^768 of their multiplicities", + "specialized_owned_fields": "D = 19950^768 - W", + "specialized_initial_and_final": 0, + "owned_allocation_records_bound": "2*19950^768", + "product_raw_invocation_count": "sum(i=0..767, 19950^(767-i)*107352^i)", + "split_paid_calls_upper": "292512^768", + "product_or_uniform_word_materialized": false, + "rank_mass_surplus": "positive by separated t-moment advantage; no discarded target mass retained as credit", + "construction": "chronological product; specialize low complete targets to owned zero; retain all original paid calls; split paid calls on disjoint axes", + "uniform_compiler": { + "uniform_saving": "38525299/10000000000", + "gap": "1/10000000000", + "theta": "42/43", + "logarithm_power": 610, + "eta": { + "lower": "0.000000593894111688079899290956", + "upper": "0.000000593894111688079899290957" + }, + "ordinary_base_bound": { + "lower": "1677314.946209111847437090130884726124", + "upper": "1677314.946209111847437090130884726125" + }, + "previous_logarithm_power_fails": true, + "H": 293160000000000, + "N": "2^293160000000000", + "integer_test_exponent": 29316, + "preceding_integer_grid_fails": true, + "proof": "retained separated finite compiler and logarithmic majorant, with all new owned fields charged" + } + }, + "independent_finite_ratios": [ + { + "lower": "0.9999999874567925184826207876", + "upper": "0.9999999874567925184826207877" + }, + { + "lower": "0.8732851491950378396086248370", + "upper": "0.8732851491950378396086248371" + }, + { + "lower": "0.9493708822913205830769062941", + "upper": "0.9493708822913205830769062942" + } + ], + "independent_normalized_upper": { + "lower": "0.9999903669098213250012570639", + "upper": "0.9999903669098213250012570640" + }, + "event_counts": { + "ADD": 362, + "SWAP": 364, + "LOCAL": 36, + "IDLE_ONE": 32, + "QUERY": 4 + }, + "events": 798, + "discarded_source_stream": { + "ADD": 1682, + "SCALE": 100, + "LAMBDA": 82, + "IDLE_ONE": 68, + "SWAP": 91, + "QUERY": 4 + }, + "empty_body_targets": { + "count": 0, + "rank1_productive_credit": 0 + }, + "ordinary_basis_records": 1291152, + "ordinary_visible_records": 363507600, + "whole_job_route_count": 569592, + "whole_job_route_records": 740743004160, + "ordinary_record_allowance": 1000000000000, + "owned_bank_bound": 6878988, + "compiler_constants": { + "U_raw": "sum(i=0..767,19950^(767-i)*107352^i)", + "D": "19950^768-W", + "O": "6878988*U_raw+D", + "G": "1000000000000*U_raw+8*R+2*19950^768", + "E": "64*(Z+N+P+G+1)^3", + "B_constant": "P+E", + "C0": "32*N*B_constant^2" + }, + "ordinary_bootstrap": [ + { + "previous": "17/5000", + "covered": "19262649/5000000000", + "atom": "1/250", + "envelope": "4813399601/1250000000000", + "admitted": "38507/10000000", + "strict_debit": "24601/1250000000000" + }, + { + "previous": "38507/10000000", + "covered": "19262649/5000000000", + "atom": "1/250", + "envelope": "4815653101/1250000000000", + "admitted": "12039/3125000", + "strict_debit": "53101/1250000000000" + } + ], + "negative_controls": { + "missing_LOCAL": "reverse coefficient 0,0", + "missing_QUERY": "reverse coefficient 0,0", + "missing_IDLE_ONE": "reverse coefficient 0,1", + "missing_ADD": "reverse coefficient 0,1", + "missing_SWAP": "reverse coefficient 1,0", + "missing_second_native_in_pair": "reverse coefficient 19,19", + "division_by2_after_specialization": "integral A coefficient after lambda removal", + "QUERY_replaced_by_ADD_despite_q1_pass": "reverse coefficient 1,0", + "root_header_target_declared_identity": "reverse coefficient 19,19" + }, + "odd_port_determinant": { + "ring": "F2[q]/(q^2-1)", + "q_ne_1": true, + "single_layer_root_targets": 2109, + "single_layer_target_determinant": "q", + "allowed_D1_gate_determinants": "1", + "doubled_root_targets": 4218, + "doubled_target_determinant": "1", + "scope": "Fixed19q-targets per chain,111ports,existing scalar caller operations; no extra target or QSELF/owned operator. Not a general obstruction on BIT algorithms." + }, + "assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "scope": "Paired E-free BIT specialization of#6980 with two actual native copies per stage; removes empty-body credit with unchanged complete signed moment crossing of#6834; inherited framework; no new kappa or native theorem reproof.", + "new_global_kappa_claim": false, + "seconds": 11.418902893999984 +} diff --git a/research/fixed-caller-query-and-host-limits/replay/PR7004-RESULT.json b/research/fixed-caller-query-and-host-limits/replay/PR7004-RESULT.json new file mode 100644 index 0000000000..9310cd05b5 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/PR7004-RESULT.json @@ -0,0 +1,668 @@ +{ + "status": "PASS_PEER_MOVE_RETIMING", + "source_head": "ec30476096b2f9aed718152a2fa3712d1c4e884d", + "candidate_canonical_sha256": "311069e5faeef999a0b3f2fd8ae9c256b67b40a368998c5c31cd38a500f385e3", + "local_paid_delta": { + "1": -1, + "4": -1, + "5": 1 + }, + "complete_paid_delta": { + "1": -18, + "4": -18, + "5": 18 + }, + "scalar_source_versions": [ + 33687, + 33688 + ], + "native": { + "public": 1480, + "events": 71255, + "paid": { + "1": 4067, + "2": 830, + "3": 811, + "4": 237, + "5": 324, + "6": 17, + "7": 12, + "8": 6 + }, + "helpers": { + "1": 13, + "2": 18, + "3": 44, + "4": 215, + "5": 68, + "6": 42, + "7": 18, + "8": 67, + "9": 595 + }, + "rises": { + "1": 10, + "2": 4, + "3": 1, + "4": 6, + "5": 1, + "6": 1 + }, + "owned_peak": 43, + "lifetimes": 54, + "bad_inputs": [] + }, + "grid": { + "opcodes": { + "ADD": 61180, + "SCALE": 3662, + "MOVE": 6304, + "INIT": 54, + "COPY": 1, + "CLEAR": 54 + }, + "paid": { + "1": 4067, + "3": 811, + "2": 830, + "4": 237, + "5": 324, + "8": 6, + "6": 17, + "7": 12 + }, + "owned_rises": { + "2": 4, + "1": 10, + "4": 6, + "5": 1, + "6": 1, + "3": 1 + }, + "owned_peak": 43, + "owned_lifetimes": 54, + "owned_rise_mass": 56, + "odd_divisions": { + "ADD": 4079, + "SCALE": 64 + }, + "odd_grid_lcm": 1125, + "dyadic_height": 24, + "maximum_scaled_mass": "1636346757402225/16384" + }, + "chart": { + "pair": [ + 3, + 1048 + ], + "rank": 5, + "exact_columns": 512, + "wrong_phase_rejected": true + }, + "caller": { + "bad_outputs": [], + "max_terms": 2713, + "caller_mass_bound": "16246698892210214036146399419475929893435/256", + "caller_mass_ceiling_bits": 126, + "caller_denominator_height_bound": 163 + }, + "invoice": { + "T": { + "1": 234, + "2": 324, + "3": 792, + "4": 3870, + "5": 1224, + "6": 756, + "7": 324, + "8": 1206, + "9": 11126, + "17": 416, + "25": 416, + "33": 416, + "41": 416, + "49": 416, + "57": 416, + "65": 416, + "73": 416, + "145": 208 + }, + "P": { + "1": 73622, + "2": 14940, + "3": 14598, + "4": 4266, + "5": 5832, + "6": 306, + "7": 216, + "8": 812, + "16": 416, + "24": 416, + "32": 416, + "40": 416, + "48": 416, + "56": 416, + "64": 416 + }, + "S": 1520, + "raw_crossing": "0.0036320621957730362441425588281571452023448806539318991577957226375", + "empty_root_credits": 0, + "no_E_credit_crossing": "0.0036320621957730362441425588281571452023448806539318991577957226375" + }, + "ordinary": { + "scalar_upper": 1777040, + "init_clear_allowance": 216, + "route_items": { + "moves": 6304, + "helper_boundary": 2160, + "first_main_boundary": 208, + "second_main_boundary": 192, + "first_main_adapter": 416, + "second_main_adapter": 384, + "owned_lifetime": 216 + }, + "routing": 9880000, + "caller_items": { + "A": { + "envelope": 124674048, + "thin": 6144, + "field_boundary": 94848, + "output_routes": 229056000, + "idle_routes": 185472000, + "query_routes": 1152000 + }, + "B": { + "envelope": 19893760, + "thin": 512, + "field_boundary": 7904, + "output_routes": 19088000, + "idle_routes": 20064000, + "query_routes": 96000 + } + }, + "caller_total": 599605216, + "raw_upper": 809431936, + "per_input_conversion": 2770560, + "lambda_second_charge": 14480000, + "conservative_total": 826682496, + "margin_to_billion": 173317504, + "odd_divisions": { + "ADD": 4079, + "SCALE": 64 + }, + "lambda_paid_rank1_would_reduce_S_by": 14480 + }, + "gate": { + "claim": "363206219/100000000000", + "tested": "363206219007/100000000000000", + "raw_bracket": [ + "72641243915460724882851176563/20000000000000000000000000000000", + "5675097180895369131472748169/1562500000000000000000000000000" + ], + "moment_margins": { + "72641243915460724882851176563/20000000000000000000000000000000": [ + "148389319990560127922493805489190395588320407282334431/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "148389319990560127922493805489190395588320407303419793/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "5675097180895369131472748169/1562500000000000000000000000000": [ + "-59287541808710120191970608155722947601124159012392171/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-59287541808710120191970608155722947601124158991333691/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "363206219007/100000000000000": [ + "118438866992501724137844470385954573561097704238960486798630534456666189971/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "4737554679700068965513778815438182942443908169558419471945221378267481483/2000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + }, + "moment_margin_float": { + "72641243915460724882851176563/20000000000000000000000000000000": [ + 2.9677863998112026e-27, + 2.9677863998112026e-27 + ], + "5675097180895369131472748169/1562500000000000000000000000000": [ + -1.1857508361742024e-27, + -1.1857508361742024e-27 + ], + "363206219007/100000000000000": [ + 2.3687773398500346e-06, + 2.3687773398500346e-06 + ] + }, + "derivative_upper": -408380.01766462595, + "alpha": [ + 0.9999999999925435, + 0.9999999999925435 + ], + "gamma": [ + 0.9497935539926994, + 0.9497935539926994 + ], + "delta": [ + 0.8759382628870381, + 0.8759382628870381 + ], + "minimum_log_power": 2228, + "written_log_power": 2229, + "compiler_gap": "1/100000000000000", + "H": "14181100000000000000", + "BIT_pin": "376669/100000000", + "BIT_margin": "13462780993/100000000000000", + "outer": { + "strict_count": 54, + "functional_count": 4, + "minimum_margin": "1/1000000000000000", + "BIT_just_below_effective_rejected": true + }, + "input_lift": { + "margins": { + "363206219/100000000000": [ + "24787421796088524621788423802489103182331508677947189139740590223009643518089/20000000000000000000000000000000000000000000000000000000000000000000000000000000", + "3873034655638831972154441219138922372239298230929248303084467222345256799761/3125000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "363206219007/100000000000000": [ + "123937108982729699688924312954943159453129375545655538114886464712861020731779/100000000000000000000000000000000000000000000000000000000000000000000000000000000", + "24787421796545939937784862590988631890625875109131107622977292942572204146741/20000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + }, + "interval_kappa_cap": "376669/100000000", + "derivative_upper_on_required_interval": "-2299831290525933154178526076272396899996972093654613095735772838275432653960006518819/2500000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "source_BIT_wide_crude_bound_would_be": "-2299831290525933154178526076272396899996972093654613095735772838275432653960006518819/2500000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "gain": { + "claim_gain": "39227/100000000000", + "claim_vs_old_raw_upper": "1569079395368564546988081/4000000000000000000000000000000", + "raw_gain_interval": [ + "980689054695963198264621/2500000000000000000000000000000", + "19613781093919263965292421/50000000000000000000000000000000" + ], + "new_margin_at_old_upper": [ + "8146663631939065393209771943747063875304677418751135036733273815561770087652559/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "4073331815969532696604885971873531937652338709375567518366636907780885054305573/25000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + }, + "independent_price": { + "crossing_intervals": { + "baseline": [ + "0.0036316699201511578588632529797498", + "0.00363166992015115785886325297974981" + ], + "candidate": [ + "0.00363206219577303624414255882815714", + "0.00363206219577303624414255882815715" + ] + }, + "diagnostic_crossings": { + "baseline": "0.00363166992015115785886325297974980153558830004419642104563398163266", + "candidate": "0.00363206219577303624414255882815714520234488064285849135672684816868" + }, + "claim_decimal": "0.00363206219", + "gain_decimal": "3.9227E-7", + "baseline_rejects_new_claim": true + }, + "precision": { + "method": "attributed source-engine reuse", + "helper_census_substitutions": [ + [ + "word[\"public\"] - len(mains) == 1061", + "word[\"public\"] - len(mains) == 1080" + ], + [ + "fresh_arbitrary_helpers=18 * 1061", + "fresh_arbitrary_helpers=18 * 1080" + ] + ], + "common_grid": { + "word": { + "odd_scale_lcm": 1125, + "dyadic_height": 24, + "maximum_scaled_mass": "1636346757402225/16384", + "mass_witness": [ + 63459, + "stored add" + ], + "numerator_bits": 24, + "coefficient_visits": 14087282 + }, + "caller": { + "maximum_mass": "16246698892210214036146399419475929893435/256", + "pre_joint_mass": "758143798823020519902612486795530419693/64", + "denominator_height": 163, + "pre_joint_height": 154 + }, + "context_height": 178, + "context_mass_bits": 161, + "context_c": 356 + }, + "rounded_envelope": { + "native": { + "census": { + "events": 71255, + "public": 1480, + "owned_labels": 51, + "lifetimes": 54, + "peak_owned": 43, + "opcodes": { + "ADD": 61180, + "SCALE": 3662, + "MOVE": 6304, + "INIT": 54, + "COPY": 1, + "CLEAR": 54 + }, + "scalars": { + "integer": 38902, + "dyadic": 60700, + "noninteger": 25941, + "odd": 4143 + }, + "max_numerator": 14729531, + "numerator_bits": 24, + "max_denominator": 393216, + "denominator_bits": 19 + }, + "bounds": { + "M": { + "exact": "43054641548846615602104987524321069905599046554250600543037273660730652457482272541839730515070648167947373736069817/313353572444111882083840819200000000000000000", + "strict_power_of_two": 237, + "witness": { + "cut": 71219, + "register": 1443, + "factor": "1", + "kind": "stored" + } + }, + "Sigma": { + "exact": "49042140230293998707783330736939147773310215018493181705365711828610041044828129508914677530981909218504732776001/1224037392359812039390003200000000000000000", + "strict_power_of_two": 235, + "witness": { + "cut": 71219, + "register": 1443, + "factor": "1", + "kind": "stored" + } + }, + "Gamma": { + "exact": "49042140230293998707783330736939147773310215018493181705365711828610041044828129508914677530981909218504732776001/1224037392359812039390003200000000000000000", + "strict_power_of_two": 235, + "witness": { + "cut": 71255, + "register": 1443, + "factor": "1", + "kind": "public-return" + } + } + }, + "independent_adjoint": { + "M": { + "entrance_mass": "43054641548846615602104987524321069905599046554250600543037273660730652457482272541839730515070648167947373736069817/313353572444111882083840819200000000000000000", + "residual_mass": "49042140230293998707783330736939147773310215018493181705365711828610041044828129508914677530981909218504732776001/1224037392359812039390003200000000000000000", + "active_residual_sites": 24530 + }, + "Sigma": { + "entrance_mass": "43054641548846615602104987524321069905599046554250600543037273660730652457482272541839730515070648167947373736069817/313353572444111882083840819200000000000000000", + "residual_mass": "49042140230293998707783330736939147773310215018493181705365711828610041044828129508914677530981909218504732776001/1224037392359812039390003200000000000000000", + "active_residual_sites": 24530 + }, + "Gamma": { + "entrance_mass": "43054641548846615602104987524321069905599046554250600543037273660730652457482272541839730515070648167947373736069817/313353572444111882083840819200000000000000000", + "residual_mass": "49042140230293998707783330736939147773310215018493181705365711828610041044828129508914677530981909218504732776001/1224037392359812039390003200000000000000000", + "active_residual_sites": 24530 + } + } + }, + "caller": { + "bounds": { + "M_caller": { + "exact": "1683307283016999532839217702665847040", + "strict_power_of_two": 121, + "witness": { + "event": 3049, + "register": 38, + "cut": 3050, + "factor": "1", + "kind": "stored" + } + }, + "Sigma_caller": { + "exact": "2695731259664671076054039120630302290804707477143926198908206538844775877602956477228348077432250517175435896637972296457629495898943097624737901/489614956943924815756001280000000000000000", + "strict_power_of_two": 342, + "witness": { + "event": 3049, + "register": 38, + "cut": 3050, + "factor": "1", + "kind": "stored" + } + }, + "M_joint_entrance": { + "exact": "363421601940370671219209686545270656", + "strict_power_of_two": 119, + "witness": { + "event": 2958, + "register": 39, + "cut": 2958, + "factor": "1", + "kind": "stored" + } + }, + "E_joint_entrance": { + "exact": "107778012552827346405847104423459712043992723422974845622861307836188983347714236386920204945834586535869101223279216908028946278696468822744901/90669436471097188102963200000000000000000", + "strict_power_of_two": 340, + "witness": { + "event": 2958, + "register": 39, + "cut": 2958, + "factor": "1", + "kind": "stored" + } + }, + "M_context": { + "exact": "122242084395705304046405775033171708619552680284104135118685413362275751985828880546444259743657610652201504084362728377506070228340477415557984198359/2448074784719624078780006400000000000000000", + "strict_power_of_two": 355, + "witness": { + "event": 2958, + "register": null, + "cut": 2959, + "factor": "1", + "kind": "stored" + } + }, + "Sigma_context": { + "exact": "4640343697309072360426864039639398425319458637983022213374912440811367173089147330447955796577559388094817453805066919447394000776176328201945385864604182017371467844889469118444122296471822296306286128606325688921746010433225801772604202976776999117716753117/28411591829712752729879633148004541902111328635453440000000000000000000000000000000000", + "strict_power_of_two": 576, + "witness": { + "event": 2958, + "register": null, + "cut": 2959, + "factor": "1", + "kind": "stored" + } + }, + "Gamma_context": { + "exact": "5042543099912900584634479237866816375710352420271633339290359319183724747139660012073844315372616663103054927249151863454851308445018630759374251/26112797703675990173653401600000000000000000", + "strict_power_of_two": 337, + "witness": { + "register": 75, + "cut": 3095, + "factor": "1", + "kind": "public-return" + } + } + }, + "sites": { + "ADD": 2108, + "noninteger_scalar": 297, + "SWAP": 455, + "LAMBDA": 226, + "SCALE": 180, + "J": 18, + "IDLE_ONE": 100, + "QUERY": 8 + }, + "joint_entries": [ + { + "event": 21, + "stage": 1, + "entrance_mass": "3328", + "entrance_defect": "1" + }, + { + "event": 66, + "stage": 2, + "entrance_mass": "34560", + "entrance_defect": "49042140230293998707783330736939147773310215018493181705365711828610983064005289620260192077444629218504732776001/489614956943924815756001280000000000000000" + }, + { + "event": 117, + "stage": 3, + "entrance_mass": "267520", + "entrance_defect": "2108812029902641944434683221688383354252339245795206813330725608630271959867499880391080622757303696395703509368043/2448074784719624078780006400000000000000000" + }, + { + "event": 168, + "stage": 4, + "entrance_mass": "2019072", + "entrance_defect": "16134864135766725574860715812452979617419060741084256781065319191613010619626347254712860017055940932888057083304329/2448074784719624078780006400000000000000000" + }, + { + "event": 219, + "stage": 5, + "entrance_mass": "15211776", + "entrance_defect": "121771634191819998791426010219819903921129263890918570174423062470441049416128172604124434426626723789547251482810483/2448074784719624078780006400000000000000000" + }, + { + "event": 270, + "stage": 6, + "entrance_mass": "114566912", + "entrance_defect": "61155548867176616388605813428963117273317838128060997586591042650277885042045089303152838191387783515475401771673247/163204985647974938585333760000000000000000" + }, + { + "event": 321, + "stage": 7, + "entrance_mass": "862823680", + "entrance_defect": "55270492039541336543671813740530419540520612325841815781947157230844568114548166476376926716947440694054833838553127/19584598277756992630240051200000000000000" + }, + { + "event": 372, + "stage": 8, + "entrance_mass": "6498041600", + "entrance_defect": "17343801934583702937006282698449266549178930851505132203284289353900099696663874922439517086876161180233417250965529651/816024928239874692926668800000000000000000" + }, + { + "event": 423, + "stage": 9, + "entrance_mass": "48937594112", + "entrance_defect": "130618492994383424100319168601448567605400013508749610701799099324339668858151576783905964091563103684800975742471631393/816024928239874692926668800000000000000000" + }, + { + "event": 2166, + "stage": 10, + "entrance_mass": "2869851357661739006410624", + "entrance_defect": "11489803575218235511805117697701134113469720211654406063878824973060438953972220840661859083251934751368624301132475304450842347438883/1224037392359812039390003200000000000000000" + }, + { + "event": 2299, + "stage": 11, + "entrance_mass": "87987819921824138957327936", + "entrance_defect": "704540160391535167843708995319467954786504506675378219942386576025968970441691011858359519030232624483814842553815523383593706912051141/2448074784719624078780006400000000000000000" + }, + { + "event": 2399, + "stage": 12, + "entrance_mass": "2447027986812579413618418560", + "entrance_defect": "19593956207157814585542099171637083484381632661937017476473927097790761228128176716857256812354661813145663936533756393262291447639366057/2448074784719624078780006400000000000000000" + }, + { + "event": 2497, + "stage": 13, + "entrance_mass": "56556669663990103089614108160", + "entrance_defect": "452863193470205634175612401907111710258173755375955315869706937949674098622639869617486017228651835097944779237780923614838949804997611301/2448074784719624078780006400000000000000000" + }, + { + "event": 2593, + "stage": 14, + "entrance_mass": "1300380918848168161545814930560", + "entrance_defect": "3470823506970942577122482455505317346972778843420013487516069258796401007138976079035472650892484727709912470524856011166420762765156769293/816024928239874692926668800000000000000000" + }, + { + "event": 2687, + "stage": 15, + "entrance_mass": "29898949589421721863235314186112", + "entrance_defect": "47881651705850994435603572472068300623372944469455488896548301122274602679253333344815964581378223934289485344846319102292562338642861545957/489614956943924815756001280000000000000000" + }, + { + "event": 2779, + "stage": 16, + "entrance_mass": "687449590445880987173716162586496", + "entrance_defect": "1834859435257293951043017457492339542929218951645311118090541745825583746646601783255911262628728772819627443030513834889809679902494442180689/816024928239874692926668800000000000000000" + }, + { + "event": 2869, + "stage": 17, + "entrance_mass": "15806139033147704339825284871898752", + "entrance_defect": "126563650963042505306559371472874199746674734468806236693462980865328400127210079753664342564751885790032979244207967695979116795226632889247301/2448074784719624078780006400000000000000000" + }, + { + "event": 2958, + "stage": 18, + "entrance_mass": "363421601940370671219209686545270656", + "entrance_defect": "107778012552827346405847104423459712043992723422974845622861307836188983347714236386920204945834586535869101223279216908028946278696468822744901/90669436471097188102963200000000000000000" + } + ], + "independent_adjoint": { + "M_caller": { + "entrance_mass": "1683307283016999532839217702665847040", + "residual_mass": "2695731259664671076054039120630302290804707477143926198908206538844775877602956477228348077432250517175435896637972296457629495898943097624737901/489614956943924815756001280000000000000000", + "joint_coefficient": "274838256141142176415070287809505/2", + "primitive_coefficient": "104781665096099932454228246133920343" + }, + "Sigma_caller": { + "entrance_mass": "1683307283016999532839217702665847040", + "residual_mass": "2695731259664671076054039120630302290804707477143926198908206538844775877602956477228348077432250517175435896637972296457629495898943097624737901/489614956943924815756001280000000000000000", + "joint_coefficient": "274838256141142176415070287809505/2", + "primitive_coefficient": "104781665096099932454228246133920343" + }, + "M_joint_entrance": { + "entrance_mass": "363421601940370671219209686545270656", + "residual_mass": "107778012552827346405847104423459712043992723422974845622861307836188983347714236386920204945834586535869101223279216908028946278696468822744901/90669436471097188102963200000000000000000", + "joint_coefficient": "59336854494143543914675236360327/2", + "primitive_coefficient": "22622085086540611235550148326673690" + }, + "E_joint_entrance": { + "entrance_mass": "363421601940370671219209686545270656", + "residual_mass": "107778012552827346405847104423459712043992723422974845622861307836188983347714236386920204945834586535869101223279216908028946278696468822744901/90669436471097188102963200000000000000000", + "joint_coefficient": "59336854494143543914675236360327/2", + "primitive_coefficient": "22622085086540611235550148326673690" + }, + "Gamma_context": { + "entrance_mass": "59038824075417799032780136585499589", + "residual_mass": "5042543099912900584634479237866816375710352420271633339290359319183724747139660012073844315372616663103054927249151863454851308445018630759374251/26112797703675990173653401600000000000000000", + "joint_coefficient": "308461849925427171118076353794753/64", + "primitive_coefficient": "117600608836679351835159084859338679/32" + } + }, + "physical_main_inputs": 3952, + "fresh_arbitrary_helpers": 19440, + "helper_allocation_premise": "distinct (stage, helper) public inputs as in frozen caller proof" + } + }, + "threshold": { + "H": 14181100000000000000, + "LP": 2229, + "Kstar_bits": 14073, + "scaled4096_Kstar_bits": 14085 + }, + "negative_grid_controls": { + "S375_f24": "integer grid rejection at event 36836: denominator 48", + "S225_f24": "integer grid rejection at event 1118: denominator 250", + "S1125_f23": "integer grid rejection at event 61560: denominator 64" + }, + "scope": "Exact children for common grid. Total RDiv plus complete-fibre unitary contracts for rounded envelopes. Neither is a physical provider admission." + }, + "controls": { + "changed_scalar_rejected": true, + "old_invoice_rejects_claim": true, + "changed_phase_rejected": true, + "insufficient_grid_rejected": true + } +} diff --git a/research/fixed-caller-query-and-host-limits/replay/certify_6824_two_add_obstruction.py b/research/fixed-caller-query-and-host-limits/replay/certify_6824_two_add_obstruction.py new file mode 100644 index 0000000000..1ae223fbc9 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/certify_6824_two_add_obstruction.py @@ -0,0 +1,29 @@ +"""Verify the case split excluding two added coframe ADDs on pinned F6824.""" +import json +from pathlib import Path + +root=Path(__file__).resolve().parent +files={ + "first_order":"PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json", + "one_zero":"PR6824-TWO-EDIT-MIXED-CANCELLATION.json", + "both_zero":"PR6824-TWO-CONTACT-DARK-REACHABILITY.json", +} +data={name:json.loads((root/path).read_text()) for name,path in files.items()} +assert len(data["first_order"]["ports"])==104 +assert all(not r["contacts_by_support"] for r in data["first_order"]["ports"].values()) +assert not data["one_zero"]["first_suffix_zero_candidates"] +assert not data["one_zero"]["second_donor_zero_candidates"] +assert not data["both_zero"]["reachable_ports"] +proof=[ + "Two additions at ordered cuts give endpoint delta c1 B1 A1 + c2 B2 A2 + c1 c2 h B2 A1, where A are baseline donor rows, B are baseline suffix columns and h is the interposed scalar transfer.", + "To have nonzero x,y coefficient, the mixed term must supply it because no baseline single ADD has nonzero x,y derivative. Hence B2[x] and A1[y] are nonzero, B1[x] and A2[y] are zero, and the interposed coefficient is nonzero.", + "If B1 and A2 are both nonzero, the two suffix columns are independent (their x coordinates differ by zero/nonzero), and the rows A1 and A2 + c1 h A1 are independent (A2 has no y). The endpoint delta has rank two, contradicting the rank-one repair.", + "If only B1 is zero, B2 must be an isolated X+Y suffix and the non-Y part of A1 must cancel the nonzero A2. The chronological mixed-cancellation census excludes every such signature.", + "If only A2 is zero, A1 must be pure Y and the nonzero B1 must match the residual after normalizing B2 at X. The chronological mixed-cancellation census excludes every such signature.", + "If B1 and A2 are both zero, the pure-Y first donor and isolated X+Y second sink must be connected via the dark scratch path. The generous support transfer scan excludes it." +] +with (root/"PR6824-TWO-ADD-HOST-OBSTRUCTION.json").open("x") as out: + json.dump({"status":"PASS_FIXED_CHRONOLOGY_TWO_ADD_HOST_OBSTRUCTION", + "ports":104,"evidence":files,"proof":proof, + "scope":"Exact normalized scalar circuit with the fixed chronological MOVE/COPY/INIT/CLEAR schedule. The required repair is one specified same-port rank-one F-to-HOST entrance transvection. At most two newly inserted distinct-register coframe ADDs. Changing MOVE timing or chart shape, scalings, cross-port block outputs, or adding three or more contacts is outside scope."},out,indent=2) +print("PASS_FIXED_CHRONOLOGY_TWO_ADD_HOST_OBSTRUCTION 104") diff --git a/research/fixed-caller-query-and-host-limits/replay/certify_7000_sign_query_floor.py b/research/fixed-caller-query-and-host-limits/replay/certify_7000_sign_query_floor.py new file mode 100644 index 0000000000..443fd72b65 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/certify_7000_sign_query_floor.py @@ -0,0 +1,47 @@ +"""A rank-one length certificate for the #7000/#7004 caller's two sign branches.""" +from pathlib import Path +from fractions import Fraction as F +from hashlib import sha256 +import json + +root=Path(__file__).resolve().parent +p=root/"PR7000-CALLER.json" +caller=json.loads(p.read_bytes()) +code=(root/"jclib_6936.py").read_text() +ns={"__file__":str(root/"jclib_6936.py")} +exec(code[:code.index("CONST =")]+code[code.index("PM ="):code.index("# ---------------------------------------------------------------- own resynthesis")],ns) +prime=ns["PM"] +stages=caller["stages"] +variables={j:1 for j in range(1,stages+1)} +for sign in (1,prime-1): + matrix=ns["replay_matrix"](caller,sign,variables) + assert all(value==(sign if i==j else 0) for i,row in enumerate(matrix) for j,value in enumerate(row)) + +result={} +for tag,typ in caller["types"].items(): + n=typ["roles"] + assert all(row[0]%2==1 for row in typ["diagonal"]) + native=sum(e[0]=="J" for e in caller["events"]) + query=sum(e[0]==tag and e[1]=="QUERY" for e in caller["events"]) + minimum=n+1-2*native + assert minimum==3 and query==4 + result[tag]={"roles":n,"ports":len(typ["ports"]),"native_calls":native,"current_queries":query, + "minimum_queries_with_current_HOST_factorization":minimum, + "maximum_removed_queries":query-minimum} +price=json.loads((root/"PR7004-QUERY-FAMILY-TARGET-PRICE.json").read_text()) +for k,rows in price["target_prices"].items(): + m=F(rows["complex"]["signed_moment"][1]) + maximum=sum(r["ports"]*r["maximum_removed_queries"] for r in result.values()) + assert m+maximum<0 + print(k,"optimistic margin after both removable query slots",float(m+maximum)) +with (root/"PR7000-QUERY-COUNT-SIGN-LOWER-BOUND.json").open("x") as out: + json.dump({"source_sha256":sha256(p.read_bytes()).hexdigest(),"types":result, + "proof":[ + "Specialize D_j=1 and compare the complete q=-1 map to the q=1 map. Both targets are scalar signs on all 38 roles, so their relative map is -I.", + "Ordinary ADD, SWAP, SCALE and LAMBDA events agree between the two signs. Each QUERY shear changes its coefficient sign; its relative factor is a rank-one transvection.", + "At a J event each branch consists of two elementary sign-sensitive shears and sign-independent D_j factors. Factoring the two signed full products by telescoping yields a product of conjugates of these elementary relative factors.", + "A product of rank-one transvections giving -I in dimension n needs at least n+1 factors: rank(M-I) forces at least n independent directions, and with exactly n the first updated row in that basis keeps diagonal coefficient +1 to the end.", + "Therefore each branch needs at least 39 sign-sensitive transvections. With 18 native events contributing at most two each, at least three QUERY events remain per branch." + ], + "scope":"Fixed 38-role targets and native factorization, with even ordinary operators. New native macros, extra degrees of freedom, changed targets or further physical relations may fall outside the bound."},out,indent=2) +print("PASS_7000_SIGN_QUERY_FLOOR",result) diff --git a/research/fixed-caller-query-and-host-limits/replay/connected7002/COALESCING-WINDOW.json b/research/fixed-caller-query-and-host-limits/replay/connected7002/COALESCING-WINDOW.json new file mode 100644 index 0000000000..975d44be4c --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/connected7002/COALESCING-WINDOW.json @@ -0,0 +1,109 @@ +{ + "status": "PASS_UNIFORM_NEGATIVITY", + "root_sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "native_invoice_sha256": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6", + "engine_sha256": "60a743d13f668ef86db4b8215b4d5d04430a671ba6f1fe06d9c1c4c3dfe86da5", + "interval": [ + "181350941/50000000000", + "1/100" + ], + "T": { + "1": 252, + "2": 144, + "3": 72, + "4": 1962, + "5": 306, + "6": 54, + "7": 180, + "8": 720, + "9": 6774, + "17": 312, + "25": 520, + "33": 416, + "41": 312, + "49": 520, + "57": 416, + "65": 520, + "73": 416, + "81": 104, + "145": 104 + }, + "P": { + "1": 42396, + "2": 8172, + "3": 8802, + "4": 1980, + "5": 2736, + "6": 126, + "7": 162, + "8": 330, + "16": 208, + "24": 520, + "32": 416, + "40": 312, + "48": 520, + "56": 416, + "64": 312, + "72": 208, + "80": 104, + "144": 104 + }, + "rank_surplus": 760, + "optimal_degrees": [ + 18, + 9, + 7, + 7, + 8, + 6, + 6, + 7, + 4, + 4, + 5, + 3, + 3, + 4, + 1, + 1, + 1, + 0, + 0, + 3, + 0, + 0, + 4, + 2, + 2, + 6, + 3, + 3, + 7, + 5, + 5, + 9, + 6, + 6, + 10, + 8, + 8, + 0 + ], + "left_endpoint_margin": [ + "-1947598170433159634755026544042426492172302230996912227162842431465986628465463463/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-243449771304144954344378318005303311521537778874614028395355303933248328556043649/6250000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "left_endpoint_margin_float": [ + -38.95196340866319, + -38.95196340866319 + ], + "uniform_derivative_upper_interval": [ + "-4959594734641481397754468477409242373438945362069616735797101018360054020832519343721/25000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-9919189469282962795508936954818484746877890724139233471594202036720108041664860049897/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "uniform_derivative_upper_float": [ + -198383.78938565924, + -198383.78938565924 + ], + "scope": "Fixed104-port F+H1 supplier,18 full paid/helper invoices,3thinH1 perport,and181 idle incidences optimally coalesced in the fixed38 coordinate-role relaxation. Ordinary implementation work is optimistically free. Not a general root/native obstruction." +} diff --git a/research/fixed-caller-query-and-host-limits/replay/connected7002/COST.json b/research/fixed-caller-query-and-host-limits/replay/connected7002/COST.json new file mode 100644 index 0000000000..71ffcc064f --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/connected7002/COST.json @@ -0,0 +1,163 @@ +{ + "3": { + "roles": 8, + "stages": 3, + "events": 191, + "event_counts": { + "ADD": 87, + "SCALE": 28, + "SWAP": 44, + "LAMBDA": 20, + "QUERY": 3, + "HOST": 3, + "IDLE_ONE": 6 + }, + "ordinary_events": 179, + "target_histogram": { + "9": 5, + "17": 2, + "25": 1 + }, + "target_rank_mass": 104, + "paid_outside_native": { + "8": 6, + "1": 3 + }, + "paid_outside_native_mass": 51, + "ordinary_scalar_denominator_lcm": "6", + "max_abs_ordinary_scalar": "3", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4843080869728003788800832613933994107627318594142812410079", + "allowance_above_two_H8": "1.5879696527372231758936282716102426015761391318128899249442", + "direct_baseline_signed_moment": "-1.236091041788330472319115185169272195271582604561330225167" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4552303348641031828548299485292027354066579477326847872936", + "allowance_above_two_H8": "1.5754511794416558860023781546789599010436945883769335958376", + "direct_baseline_signed_moment": "-1.273646461675032341992865535963120296868916234869199212487" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4471353689880173282352372261088732550512243452946422105081", + "allowance_above_two_H8": "1.5719676360206178990526638106345372230747882511325091855385", + "direct_baseline_signed_moment": "-1.284097091938146302842008568096388330775635246602472443385" + } + } + }, + "9": { + "roles": 20, + "stages": 9, + "events": 776, + "event_counts": { + "ADD": 339, + "SCALE": 84, + "SWAP": 245, + "LAMBDA": 44, + "QUERY": 3, + "HOST": 9, + "IDLE_ONE": 52 + }, + "ordinary_events": 712, + "target_histogram": { + "9": 1, + "17": 4, + "25": 6, + "33": 6, + "41": 2, + "73": 1 + }, + "target_rank_mass": 580, + "paid_outside_native": { + "8": 52, + "1": 3 + }, + "paid_outside_native_mass": 419, + "ordinary_scalar_denominator_lcm": "6", + "max_abs_ordinary_scalar": "3", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.495701886657033145636409723610846431616109791663676616169", + "allowance_above_two_H8": "1.5993634524214559426499547338276896224295170640622853001053", + "direct_baseline_signed_moment": "-3.605728928206896516150407395550793398134346423439432299053" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4331797209823169335965523056515178829992190357283974839384", + "allowance_above_two_H8": "1.5534005655598696367441005118012750486362556763726462924824", + "direct_baseline_signed_moment": "-4.019394909961173269303095393788524562273698912646183367658" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4157826512019132391499231525983617384070475822265108385921", + "allowance_above_two_H8": "1.5406149182345138099673497371240257064306114880643778136225", + "direct_baseline_signed_moment": "-4.134465735889375710293852365883768642124496607420599677397" + } + } + }, + "18": { + "roles": 38, + "stages": 18, + "events": 2370, + "event_counts": { + "ADD": 1041, + "SCALE": 189, + "SWAP": 858, + "LAMBDA": 80, + "QUERY": 3, + "HOST": 18, + "IDLE_ONE": 181 + }, + "ordinary_events": 2168, + "target_histogram": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "target_rank_mass": 1774, + "paid_outside_native": { + "8": 181, + "1": 3 + }, + "paid_outside_native_mass": 1451, + "ordinary_scalar_denominator_lcm": "2", + "max_abs_ordinary_scalar": "5/2", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.24273344786332293410495368703241064490922674815243677043", + "allowance_above_two_H8": "1.3463950136277457311184986972492538357226340205510454543663", + "direct_baseline_signed_moment": "-11.76488975470057683986702344951343095699258763008118182141", + "retained_F_plus_H1_cost_per_port": "17.6703991996227234141399345320028861136206598559402746515482", + "retained_F_plus_H1_excess": "0.4276657517594004800349808449704754687114331077878378811182" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.1313409028543326190363539979855487854614834640682540794906", + "allowance_above_two_H8": "1.2515617474318853221839022041353059510985201047125028880346", + "direct_baseline_signed_moment": "-13.47188854622606420068976032556449288022663811517494801538", + "retained_F_plus_H1_cost_per_port": "17.6914424603474237437422676600591888259630220558867211828222", + "retained_F_plus_H1_excess": "0.5601015574930911247059136620736400405015385918184671033316" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.1003547369028679713425656375523992710112972290322356119039", + "allowance_above_two_H8": "1.2251870039354685421599922220780632390348611348701025869343", + "direct_baseline_signed_moment": "-13.94663392916156624112014000259486169737249957233815343518", + "retained_F_plus_H1_cost_per_port": "17.6973009591869876138450219486899064090893373235044463699870", + "retained_F_plus_H1_excess": "0.5969462222841196425024563111375071380780400944722107580831" + } + } + } +} diff --git a/research/fixed-caller-query-and-host-limits/replay/connected7002/idle_coalescing.py b/research/fixed-caller-query-and-host-limits/replay/connected7002/idle_coalescing.py new file mode 100644 index 0000000000..66091e8538 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/connected7002/idle_coalescing.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +"""Exact eligibility-compression certificate for the optimistic L18 idle bill. +Standard library; rational transcendental bounds; checks stay active under -O. +""" +from fractions import Fraction as Q +from functools import lru_cache +from itertools import combinations +from pathlib import Path +from hashlib import sha256 +from decimal import Decimal, localcontext, ROUND_FLOOR, ROUND_CEILING +from collections import Counter +import json +import argparse + +HERE=Path(__file__).resolve().parent +PIN_DIGESTS={ + 'root_L18.json':'be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34', + 'caller_L18.json':'f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b', + 'inputs/base_invoice.json':'87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6', +} +K=Q('0.00362701882') +REQUIRED=Q('10.081828') # Checked below against the source-bound rational full bill. + + +def need(ok,label): + if not ok:raise ValueError(label) + + +def log_series(z,terms=40): + """2atanh(z), z in[0,1/3], exact positive-series lower/tail upper.""" + need(0<=z<=Q(1,3),'log range reduction') + lo=sum((2*z**(2*j+1)/Q(2*j+1) for j in range(terms)),Q(0)) + tail=2*z**(2*terms+1)/(Q(2*terms+1)*(1-z*z)) + return lo,lo+tail + + +@lru_cache(None) +def log_bounds(n): + e=n.bit_length()-1;p=2**e + a,b=log_series(Q(1,3));c,d=log_series(Q(n-p,n+p)) + return e*a+c,e*b+d + + +def exp_neg_bounds(x): + """Alternating Taylor series bounds for exp(-x), 0<=x<1.""" + need(0<=x<1,'exponential alternating-series range') + term=Q(1);s=term + for j in range(1,31):term*=(-x)/j;s+=term + hi=s # even partial sum is an upper bound + term*=(-x)/31 + return s+term,hi + + +@lru_cache(None) +def power_bounds(n): + if not n:return Q(0),Q(0) + need(isinstance(n,int) and n>0,'positive integral child rank') + ll,lu=log_bounds(n) + low=exp_neg_bounds(K*lu)[0];high=exp_neg_bounds(K*ll)[1] + return n*low,n*high + + +def cost_bounds(degree): + return power_bounds(8*degree) + + +def histogram_bounds(histogram): + need(all(int(r)>0 and isinstance(c,int) and c>=0 for r,c in histogram.items()),'nonnegative invoice counts') + return (sum((c*power_bounds(int(r))[0] for r,c in histogram.items()),Q(0)), + sum((c*power_bounds(int(r))[1] for r,c in histogram.items()),Q(0))) + + +def required_savings_bounds(caller,invoice): + counts=Counter(e[0] for e in caller['events']) + need(counts['HOST']==18 and counts['IDLE_ONE']==181 and counts['QUERY']==3,'source-bound recursive census') + target=Counter(1+8*m.bit_count() for m in caller['masks']) + tl,tu=histogram_bounds(target) + pl,pu=histogram_bounds(invoice['local_paid']) + hl,hu=histogram_bounds(invoice['helpers']) + fl,fu=(pl-hu)/104+1,(pu-hl)/104+1 + el,eu=power_bounds(8) + return 18*fl-tu+181*el+3,18*fu-tl+181*eu+3 + + +def savings_bounds(degrees): + l1,u1=cost_bounds(1);D=sum(degrees) + return D*l1-sum(cost_bounds(d)[1] for d in degrees),D*u1-sum(cost_bounds(d)[0] for d in degrees) + + +def decimal(q,rounding=ROUND_FLOOR): + with localcontext() as c: + c.prec=45;c.rounding=rounding + return str(Decimal(q.numerator)/Decimal(q.denominator)) + + +def allowed_host_pairs(mask,eligibility): + # Compression-stable idle sets imply that a host set is downward closed + # under STRICT eligibility inclusion. Equal-eligibility roles need no tie. + return [list(h) for h in combinations(mask,2) + if all(not (eligibility[j]REQUIRED,'source-bound invoice certifies conservative required saving') + masks=[s['mask'] for s in root['stages']] + need(root['n']==38 and len(masks)==18,'L18 source dimensions') + need(all(len(set(m))==len(m) for m in masks),'mask roles are independent and distinct') + eligibility=[{s for s,m in enumerate(masks) if r in m} for r in range(38)] + need([sum(1<REQUIRED,'degree-only relaxation must remain visibly insufficient') + report={'status':'OPTIMISTIC_COALESCING_ONLY_ROUTE_CLOSED','kappa_probe':str(K),'independent_roles':38,'stages':18,'idle_actions':181, + 'host_roles_by_stage':host0,'optimal_degrees':d0,'optimal_degree_histogram':dict(sorted(Counter(d0).items())), + 'optimal_savings_interval':[decimal(lo),decimal(hi,ROUND_CEILING)], + 'required_saving_interval':[decimal(required_lo),decimal(required_hi,ROUND_CEILING)], + 'required_saving_lower':decimal(REQUIRED),'shortfall_lower':decimal(required_lo-hi), + 'degree_only_upper_interval':[decimal(rlo),decimal(rhi,ROUND_CEILING)],'candidate_native_per_stage':'17.69144246035','uncoalesced_gate_per_stage':'17.13134090285', + 'proof':'eligibility union/intersection compression plus two exact bridge cases; rational ln/exp enclosures','scope':'fixed38 coordinate roles;181 idles;two coordinate hosts perstage;free all-occurrence same-role merging;no noncoordinate or general native obstruction;no supplier or kappa claim'} + if args.receipt: + need(json.loads(json.dumps(report))==json.loads(args.receipt.read_text()),'retained receipt matches recomputation') + print(json.dumps(report,sort_keys=True)) + print('PASS_L18_IDLE_COALESCING_BOUND optimum_savings_lt_9.707290 required_gt_10.081828 independent_roles=38 controls=3_REJECT degree_only_relaxation=DISTINGUISHED') + +if __name__=='__main__':main() diff --git a/research/fixed-caller-query-and-host-limits/replay/connected7002/inputs/base_invoice.json b/research/fixed-caller-query-and-host-limits/replay/connected7002/inputs/base_invoice.json new file mode 100644 index 0000000000..f2a6958ee2 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/connected7002/inputs/base_invoice.json @@ -0,0 +1,61 @@ +{ + "helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 109, + "5": 17, + "6": 3, + "7": 10, + "8": 40, + "9": 359 + }, + "kappa_literal": "0.00337180047549672", + "local_paid": { + "1": 2234, + "2": 454, + "3": 489, + "4": 110, + "5": 152, + "6": 7, + "7": 9, + "8": 1 + }, + "paid": { + "1": 40524, + "16": 208, + "2": 8172, + "24": 208, + "3": 8802, + "32": 208, + "4": 1980, + "40": 208, + "48": 208, + "5": 2736, + "56": 208, + "6": 126, + "64": 208, + "7": 162, + "8": 226 + }, + "targets": { + "1": 356, + "145": 104, + "17": 208, + "2": 144, + "25": 208, + "3": 72, + "33": 208, + "4": 1962, + "41": 208, + "49": 208, + "5": 306, + "57": 208, + "6": 54, + "65": 208, + "7": 180, + "73": 208, + "8": 720, + "9": 6670 + } +} \ No newline at end of file diff --git a/research/fixed-caller-query-and-host-limits/replay/connected7002/root_L18.json b/research/fixed-caller-query-and-host-limits/replay/connected7002/root_L18.json new file mode 100644 index 0000000000..e2d43655b2 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/connected7002/root_L18.json @@ -0,0 +1 @@ +{"n": 38, "N": 39, "X": [["1", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "2", "0", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "2", "0", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "2", "0", "0", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "1", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "0"]], "Y": [["1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "-1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "0", "0", "-1", "0", "0", "1", "0", "0", "-1", "0", "0", "1", "0", "0", "-1", "0", "0", "1", "0", "0", "-1", "0", "0", "1", "0", "0", "-1", "0", "0", "1", "0", "0", "-1", "0", "0", "1"], ["-1", "2", "0", "0", "-2", "0", "0", "2", "0", "0", "-2", "0", "0", "2", "0", "0", "-2", "0", "0", "2", "0", "0", "-2", "0", "0", "2", "0", "0", "-2", "0", "0", "2", "0", "0", "-2", "0", "0", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0"]], "stages": [{"units": [1, 2], "mask": [0, 1, 2, 3]}, {"units": [3, 4], "mask": [0, 1, 2, 3, 4, 5, 6]}, {"units": [5, 6], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}, {"units": [7, 8], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}, {"units": [9, 10], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}, {"units": [11, 12], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]}, {"units": [13, 14], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]}, {"units": [15, 16], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]}, {"units": [18, 19], "mask": [0, 37, 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34]}, {"units": [21, 22], "mask": [0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [23, 24], "mask": [0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [25, 26], "mask": [0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [27, 28], "mask": [0, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [29, 30], "mask": [0, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [31, 32], "mask": [0, 28, 29, 30, 31, 32, 33, 34, 35, 36]}, {"units": [33, 34], "mask": [0, 31, 32, 33, 34, 35, 36]}, {"units": [35, 36], "mask": [0, 31, 32, 33, 34, 35, 36]}, {"units": [37, 38], "mask": [0, 34, 35, 36]}]} diff --git a/research/fixed-caller-query-and-host-limits/replay/construct_7002_chronological_idle_groups.py b/research/fixed-caller-query-and-host-limits/replay/construct_7002_chronological_idle_groups.py new file mode 100644 index 0000000000..897ef04720 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/construct_7002_chronological_idle_groups.py @@ -0,0 +1,92 @@ +"""Compile actual commuting coordinate idle groups of the connected L18 root.""" +from collections import Counter,defaultdict +from fractions import Fraction as F +from hashlib import sha256 +from pathlib import Path +import importlib.util +import json + +root=Path(__file__).resolve().parent +package=root/"connected7002" +source=package/"root_L18.json" +assert sha256(source.read_bytes()).hexdigest()=="be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34" +spec=json.loads(source.read_bytes()) +n=spec["n"] +X,Y=([list(map(F,row)) for row in spec[label]] for label in ("X","Y")) +stages=spec["stages"] +boundaries={max(stage["units"])+1:j for j,stage in enumerate(stages)} +masks=[set(stage["mask"]) for stage in stages] + +def clean_role(role,unit): + return not X[unit][role] and not Y[unit][role] + +# At a stage boundary r is an actual idle summand when its coordinate +# projector kills the two HOST directions on both sides. +eligible={(role,j) for j,stage in enumerate(stages) for role in masks[j] + if all(clean_role(role,u) for u in stage["units"])} +assert len(eligible)<=sum(len(mask)-2 for mask in masks) +groups=defaultdict(list) +for role,j in sorted(eligible): + cut=max(stages[j]["units"])+1 + # Pull the idle to the earliest cut in the current untouched run. + previous=max((u+1 for u in range(cut) if not clean_role(role,u)),default=0) + assert all(clean_role(role,u) for u in range(previous,cut)) + groups[role,previous].append(j) + +paid=Counter({8:sum(len(mask)-2 for mask in masks)-len(eligible)}) +for labels in groups.values(): + paid[8*len(labels)]+=1 +assert sum(r*c for r,c in paid.items())==8*sum(len(mask)-2 for mask in masks) + +# Independent value replay. At each gap, compare the original stream and the +# relocated stream on every column, in both sign sectors and two unrelated +# positive variable settings. Universal equality follows from the per-crossing +# zero row/column checks, not from these finite evaluations. +def replay(sign,variables,grouped): + A=[[F(i==j) for j in range(n)] for i in range(n)] + def scale(role,c): + A[role]=[c*v for v in A[role]] + moved=defaultdict(list) + if grouped: + for (role,cut),labels in groups.items(): + factor=1 + for j in labels: + factor*=variables[j] + moved[cut].append((role,factor)) + for cut in range(len(X)+1): + if cut in boundaries: + j=boundaries[cut] + for role in masks[j]: + if not grouped or (role,j) not in eligible: + scale(role,variables[j]) + for role,amount in moved[cut]: + scale(role,amount) + if cut0 +with (root/"PR7002-CHRONOLOGICAL-IDLE-GROUPS.json").open("x") as f: + json.dump({"stage_count":len(stages),"old_jobs":base_jobs,"new_jobs":mass,"paid_idle_rank_profile":paid, + "commuting_groups":[{"role":role,"cut":cut,"stages":labels} for (role,cut),labels in sorted(groups.items())], + "per_port_saving_at_005":[power.decimal(saving_lo),power.decimal(saving_hi,"ROUND_CEILING")], + "scope":"Constructed commuting normalized root schedule, universal over stage variables. Grouped jobs require the retained whole-mask IDLE tariff and physical adapters. No native price reduction, outer admission or kappa claim."},f,indent=2) +print("old jobs",base_jobs,"grouped jobs",mass,"histogram",dict(sorted(paid.items())), + "per-port savings",float(saving_lo),"104-port savings",float(104*saving_lo),flush=True) diff --git a/research/fixed-caller-query-and-host-limits/replay/construct_7002_noncoordinate_idle.py b/research/fixed-caller-query-and-host-limits/replay/construct_7002_noncoordinate_idle.py new file mode 100644 index 0000000000..0c067006c8 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/construct_7002_noncoordinate_idle.py @@ -0,0 +1,124 @@ +"""Construct persistent noncoordinate idle projectors and replay their relocation.""" +from collections import Counter, defaultdict +from fractions import Fraction as F +from pathlib import Path +import json + +root=Path(__file__).resolve().parent +base=root/"construct_7002_chronological_idle_groups.py" +ns={"__file__":str(base)} +exec(base.read_text().split("def clean_role")[0],ns) +n,X,Y,stages,masks,boundaries=(ns[k] for k in ("n","X","Y","stages","masks","boundaries")) +def dot(a,b): + return sum(x*y for x,y in zip(a,b) if x and y) + +def nullspace(constraints,indices): + width=len(indices) + pivots={} + for row in constraints: + v=[row[i] for i in indices] + for j in range(width): + c=v[j] + if not c: + continue + if j not in pivots: + pivots[j]=[x/c for x in v] + break + v=[x-c*y for x,y in zip(v,pivots[j])] + result=[] + for free in range(width): + if free in pivots: + continue + u=[F(i==free) for i in range(width)] + for pivot,row in sorted(pivots.items(),reverse=True): + u[pivot]=-dot(row,u) + v=[F(0)]*n + for i,x in zip(indices,u): + v[i]=x + result.append(v) + return result + +def paired(a,b): + while a and b: + pivot=next(((i,j,dot(v,u)) for i,v in enumerate(a) for j,u in enumerate(b) if dot(v,u)),None) + if pivot is None: + break + i,j,c=pivot + v=a.pop(i) + u=[z/c for z in b.pop(j)] + a=[[x-dot(u,w)*y for x,y in zip(w,v)] for w in a] + b=[[x-dot(v,w)*y for x,y in zip(w,u)] for w in b] + yield v,u + +intervals=sorted(((i,j) for i in range(len(stages)) for j in range(i+1,len(stages))), + key=lambda t:(t[0]-t[1],t[0])) +chosen=[] +for i,j in intervals: + support=sorted(set.intersection(*masks[i:j+1])) + if not support: + continue + units=range(min(stages[i]["units"]),max(stages[j]["units"])+1) + overlaps=[(v,u) for a,b,v,u in chosen if max(i,a)<=min(j,b)] + vectors=nullspace([Y[k] for k in units]+[u for _,u in overlaps],support) + duals=nullspace([X[k] for k in units]+[v for v,_ in overlaps],support) + for v,u in paired(vectors,duals): + assert dot(v,u)==1 + assert all(dot(v,Y[k])==dot(u,X[k])==0 for k in units) + assert all(dot(v,old_u)==dot(u,old_v)==0 for old_v,old_u in overlaps) + overlaps.append((v,u)) + chosen.append((i,j,v,u)) +# Replay explicit projection products. At stage j remove grouped projectors +# from the diagonal dilation and issue their product at the first stage. +def replay(sign,weights,grouped): + A=[[F(i==j) for j in range(n)] for i in range(n)] + def correction(v,u,scale,input_rows): + coeff=[dot(u,column) for column in zip(*input_rows)] + for r,rv in enumerate(v): + if rv: + A[r]=[a+scale*rv*c for a,c in zip(A[r],coeff)] + for cut in range(len(X)+1): + if cut in boundaries: + stage=boundaries[cut] + before=[row[:] for row in A] + d=weights[stage] + for i in masks[stage]: + A[i]=[d*x for x in before[i]] + if grouped: + for start,end,v,u in chosen: + if start<=stage<=end: + correction(v,u,1-d,before) + for start,end,v,u in chosen: + if start==stage: + value=1 + for j in range(start,end+1): + value*=weights[j] + correction(v,u,value-1,A) + if cut=0 +assert sum(r*c for r,c in profile.items())==base_jobs*8 +import importlib.util +ps=importlib.util.spec_from_file_location("power",root/"connected7002"/"idle_coalescing.py") +power=importlib.util.module_from_spec(ps) +ps.loader.exec_module(power) +power.K=F(1,200) +low=base_jobs*power.power_bounds(8)[0]-sum(c*power.power_bounds(r)[1] for r,c in profile.items()) +high=base_jobs*power.power_bounds(8)[1]-sum(c*power.power_bounds(r)[0] for r,c in profile.items()) +coordinate=json.loads((root/"PR7002-CHRONOLOGICAL-IDLE-GROUPS.json").read_text()) +advantage=104*(low-F(coordinate["per_port_saving_at_005"][1])) +with (root/"PR7002-NONCOORDINATE-IDLE-WORD.json").open("x") as f: + json.dump({"idle_rank_profile":profile,"base_jobs":base_jobs,"projectors":[[i,j,list(map(str,v)),list(map(str,u))] for i,j,v,u in chosen], + "per_port_saved_interval":[power.decimal(low),power.decimal(high,"ROUND_CEILING")], + "104_port_saving_over_coordinate_lower":power.decimal(advantage), + "scope":"Exact normalized role-level relocation by orthogonal projectors, with all-column rational controls. Requires physical whole-idle composition, ordinary map costs, and the native HOST construction."},f,indent=2) +print("projectors",len(chosen),"profile",dict(profile),"old",base_jobs,"new",sum(profile.values()), + "104 port extra savings over coordinate",float(advantage),flush=True) diff --git a/research/fixed-caller-query-and-host-limits/replay/jclib_6936.py b/research/fixed-caller-query-and-host-limits/replay/jclib_6936.py new file mode 100644 index 0000000000..48a55ab03a --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/jclib_6936.py @@ -0,0 +1,331 @@ +"""Library of check_caller_blocks.py: constant-block rewrite of the joint caller (idea and method: CubeJerry #6912; the code is this package's). + +Mathematics. A constant block is a maximal run of ADD / SCALE(-1) / SWAP events of one port type between two +nonconstant events of that type (LAMBDA, IDLE_ONE, QUERY) or a joint contact J. Applied to the role vector it is +left-multiplication by one integer matrix M in GL_n(Z) (n = 40 for type A, 38 for type B). Replace the block by any other +constant block with the same matrix M: then, by induction over the anchors, the whole caller is the same operator for every +substitution of the anchor operators (the anchors are not touched and each block is a left factor between them). +Type A rows (0..39) and type B rows (40..77) are disjoint, so an A block commutes with every B event: its position inside the +window between the same two A-anchors is immaterial. Nothing but the constant-gate count changes.""" +import json, random +from fractions import Fraction as Q + +CONST = ('ADD', 'SCALE', 'SWAP') +OFF = {'A': 0, 'B': 40} +NR = {'A': 40, 'B': 38} + + +def need(ok, msg): + if not ok: + raise ValueError(msg) + + +def ev_roles(e): + """role indices an event reads or writes (joint indexing); J returns both types' roles""" + if e[0] == 'J': + return list(e[2]) + list(e[3][:2]) + op = e[1] + if op in ('ADD', 'SWAP', 'QUERY'): + return [e[2], e[3]] + return [e[2]] + + +def check_disjoint(C): + """every A event touches only roles 0..39, every B event only 40..77 (J is the only coupling)""" + for e in C['events']: + if e[0] == 'A': + need(all(0 <= r < 40 for r in ev_roles(e)), 'A event leaves its roles: %r' % (e,)) + elif e[0] == 'B': + need(all(40 <= r < 78 for r in ev_roles(e)), 'B event leaves its roles: %r' % (e,)) + else: + need(e[0] == 'J', 'unknown tag') + return True + + +def is_const(e, ty): + return e[0] == ty and e[1] in CONST + + +def is_anchor(e, ty): + """nonconstant event of the type's own stream: its nonconstant events and every joint contact""" + return (e[0] == ty and e[1] not in CONST) or e[0] == 'J' + + +def slots(events, ty): + """list of (indices of the constant events of slot k); slot k lies between anchors k-1 and k. Also returns the + global index of the anchor that closes each slot (len(events) for the last).""" + out, closes, cur = [], [], [] + for i, e in enumerate(events): + if is_const(e, ty): + cur.append(i) + elif is_anchor(e, ty): + out.append(cur); closes.append(i); cur = [] + out.append(cur); closes.append(len(events)) + return out, closes + + +def apply_const(rows, e): + """act on the matrix of accumulated rows exactly as the caller replay does: rows[i] += c*rows[j] etc (joint indices)""" + op = e[1] + if op == 'ADD': + c = Q(e[4]); need(c.denominator == 1, 'integer ADD'); c = int(c) + rows[e[2]] = [a + c * b for a, b in zip(rows[e[2]], rows[e[3]])] + elif op == 'SCALE': + c = Q(e[3]); need(c == -1, 'SCALE -1'); rows[e[2]] = [-a for a in rows[e[2]]] + elif op == 'SWAP': + rows[e[2]], rows[e[3]] = rows[e[3]], rows[e[2]] + else: + raise ValueError('nonconstant') + + +def block_matrix(block, ty): + """exact integer matrix of a constant block (list of full joint events), n x n in type-local indices""" + n, off = NR[ty], OFF[ty] + rows = {off + i: [int(i == j) for j in range(n)] for i in range(n)} + for e in block: + need(e[0] == ty and e[1] in CONST, 'block holds a nonconstant or foreign event') + for r in ([e[2], e[3]] if e[1] != 'SCALE' else [e[2]]): + need(off <= r < off + n, 'role outside type') + apply_const(rows, e) + return [rows[off + i] for i in range(n)] + + +def alphabet_ok(block, limit=2): + for e in block: + if e[1] == 'ADD': + c = Q(e[4]); need(c.denominator == 1 and 0 < abs(c) <= limit, 'ADD coefficient outside alphabet %r' % (e,)) + need(e[2] != e[3], 'self ADD') + elif e[1] == 'SCALE': + need(Q(e[3]) == -1, 'SCALE not -1') + elif e[1] == 'SWAP': + need(e[2] != e[3], 'self SWAP') + return True + + +def splice(C, ty, new_blocks): + """new_blocks[k] = list of full joint events for slot k of type ty. New block is written at the position of the first + old event of its slot (or just before the closing anchor if the old slot was empty). Everything else keeps its order.""" + sl, closes = slots(C['events'], ty) + need(len(new_blocks) == len(sl), 'slot count %d != %d' % (len(new_blocks), len(sl))) + first, drop, ins = {}, set(), {} + for k, idxs in enumerate(sl): + if idxs: + first[idxs[0]] = k; drop.update(idxs[1:]) + elif new_blocks[k]: + ins.setdefault(closes[k], []).append(k) + ev = [] + for i, e in enumerate(C['events']): + for k in ins.get(i, []): + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[k]) + if i in drop: + continue + if i in first: + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[first[i]]) + elif not is_const(e, ty): + ev.append(e) + # a first-index const event is replaced above; other const events of this type are in drop + for k in ins.get(len(C['events']), []): + ev.extend(new_blocks[k]) + out = {k: v for k, v in C.items() if k != 'events'} + out['events'] = ev + return out + + +def old_blocks(C, ty): + sl, _ = slots(C['events'], ty) + return [[C['events'][i] for i in idxs] for idxs in sl] + + +def from_6912(after, ty='A'): + """read #6912's caller-after.json (plain A-stream events, no tag) as data: list of per-slot blocks, tagged joint events. + slots are delimited by its nonconstant events (everything that is not ADD/SCALE/SWAP).""" + blocks, cur, anchors = [], [], [] + for e in after['events']: + if e[0] in CONST: + cur.append([ty] + list(e)) + else: + blocks.append(cur); cur = []; anchors.append(e) + blocks.append(cur) + return blocks, anchors + + +# ---------------------------------------------------------------- exact replay of the joint caller mod p +PM = 2147483629 +IM = next(pow(g, (PM - 1) // 4, PM) for g in range(2, 99) if pow(g, (PM - 1) // 2, PM) == PM - 1) +HALF = (PM + 1) // 2 + + +def fm(x): + f = Q(x); return f.numerator % PM * pow(f.denominator, PM - 2, PM) % PM + + +def replay_matrix(C, qv, Dv): + """the full 78 x 78 matrix of the joint caller at the point (q, D_1..D_18) over F_PM; semantics as in the package + (J = HOST2 on the A roles and HOST on the B roles at one stage).""" + n = C['roles']; R = [[int(i == j) for j in range(n)] for i in range(n)]; qi = pow(qv, PM - 2, PM) + a2 = fm(C['types']['A']['alpha2']) + for e in C['events']: + if e[0] == 'J': + d = Dv[e[1]]; src, dst, x2, y2 = e[2] + R[dst] = [(a + qi * b) % PM for a, b in zip(R[dst], R[src])] + R[x2] = [(a + a2 * qv % PM * b) % PM for a, b in zip(R[x2], R[y2])] + for r in (src, dst, x2, y2): + R[r] = [a * d % PM for a in R[r]] + s, t = e[3][0], e[3][1]; al, be = fm(e[3][2]), fm(e[3][3]); tt = al * be % PM + ns = [(x + al * qv % PM * y) % PM * d % PM for x, y in zip(R[s], R[t])] + nd = [(be * qi % PM * x + (1 + tt) * y) % PM * d % PM for x, y in zip(R[s], R[t])] + R[s], R[t] = ns, nd + continue + op = e[1] + if op == 'ADD': + R[e[2]] = [(a + fm(e[4]) * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'SCALE': + c = fm(e[3]); R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'SWAP': + R[e[2]], R[e[3]] = R[e[3]], R[e[2]] + elif op == 'QUERY': + c = pow(qv, e[4] % 4, PM); R[e[2]] = [(a + c * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'LAMBDA': + s = e[3]; c = ((1 + s * IM) * HALF + (1 - s * IM) * HALF * qv * qv) % PM; R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'IDLE_ONE': + c = 1 + for k in e[3]: + c = c * Dv[k] % PM + R[e[2]] = [a * c % PM for a in R[e[2]]] + else: + raise ValueError('unknown op ' + str(op)) + return R + + +def target_bad(C, R, qv, Dv): + n = C['roles']; bad = 0 + for role in range(n): + t, off = (C['types']['A'], 0) if role < 40 else (C['types']['B'], 40) + dg = t['diagonal'][role - off]; c = pow(qv, dg[0] % 4, PM) + for k, bit in enumerate(dg[2:]): + if bit: + c = c * Dv[k + 1] % PM + bad += sum(R[role][j] != (c if j == role else 0) for j in range(n)) + return bad + + +def random_points(seed=5, k=4): + r = random.Random(seed); pts = [] + for qv in (1, IM, PM - 1, PM - IM): + pts.append((qv, {s: r.randrange(2, PM) for s in range(1, 19)})) + for _ in range(k): + pts.append((r.randrange(2, PM), {s: r.randrange(2, PM) for s in range(1, 19)})) + return pts + + +# ---------------------------------------------------------------- own resynthesis of a constant block (Euclid elimination) +def synth(M, ty): + """own synthesis: reduce M to I by row operations with a Euclidean algorithm per column, ADD coefficients split into + +-1,+-2; the op list that rebuilds M is the reversed list of inverses. Local indices; returns full joint events.""" + n, off = NR[ty], OFF[ty]; M = [r[:] for r in M]; ops = [] + + def add(i, j, c): # row_i += c * row_j (c in {+-1,+-2} after splitting) + while c: + s = 1 if c > 0 else -1; step = s * min(2, abs(c)) + M[i] = [a + step * b for a, b in zip(M[i], M[j])]; ops.append(('ADD', i, j, step)); c -= step + for col in range(n): + while True: + nz = [r for r in range(col, n) if M[r][col]] + need(nz, 'singular block') + if len(nz) == 1 and abs(M[nz[0]][col]) == 1: + break + p = min(nz, key=lambda r: (abs(M[r][col]), r)) + for r in nz: + if r != p: + qq = round(Q(M[r][col], M[p][col])) + if qq: + add(r, p, -qq) + p = nz[0] + if p != col: + M[p], M[col] = M[col], M[p]; ops.append(('SWAP', p, col)) + if M[col][col] == -1: + M[col] = [-a for a in M[col]]; ops.append(('SCALE', col)) + for r in range(n): + if r != col and M[r][col]: + add(r, col, -M[r][col]) + need(all(M[i][j] == int(i == j) for i in range(n) for j in range(n)), 'did not reach identity') + out = [] + for o in reversed(ops): + if o[0] == 'ADD': + out.append([ty, 'ADD', o[1] + off, o[2] + off, str(-o[3])]) + elif o[0] == 'SWAP': + out.append([ty, 'SWAP', o[1] + off, o[2] + off]) + else: + out.append([ty, 'SCALE', o[1] + off, '-1']) + return out + + +# ---------------------------------------------------------------- raw bound (formulas of the package's check.py / ordinary.py) +def swaps(sel): + wanted = set(range(len(sel))); return len(list(zip(sorted(set(sel) - wanted), sorted(wanted - set(sel))))) + + +def shim(J, ty): + t = J['types'][ty]; off = t['offset']; ev = [] + for e in J['events']: + if e[0] == 'J': + ev.append(['HOST', e[1]]) + elif e[0] == ty: + e = list(e[1:]) + if e[0] in ('ADD', 'SWAP', 'QUERY'): + e[1] -= off; e[2] -= off + else: + e[1] -= off + ev.append(e) + return dict(events=ev, roles=t['roles'], ambient_rank=J['ambient_rank'], diagonal=t['diagonal']) + + +def rest_of(C, ports): + ev = C['events']; roles = C['roles']; amb = C['ambient_rank']; mx = mn = mp = 0 + for role, (qp, zero, *sel) in enumerate(C['diagonal']): + axes = ([0] if qp else []) + [a for st, y in enumerate(sel, 1) if y for a in range(9 + 8 * (st - 1), 9 + 8 * st)] + k = swaps(axes); mx += 2 * k * ports; mn += 2 * bool(qp) * ports; mp += int(qp == -1) * ports + ie = 0; qn = qph = 0 + for e in ev: + if e[0] == 'IDLE_ONE': + ie += 2 * swaps([a for st in e[2] for a in range(9 + 8 * (st - 1), 9 + 8 * st)]) * ports + elif e[0] == 'QUERY': + qn += 2 * ports; qph += int(e[3] == -1) * ports + return (32 * roles * ports * len(ev) + sum(e[0] == 'QUERY' for e in ev) * 16 * ports + roles * ports * 26 + + (mx + mn + mp) * 1000 + ie * 1000 + (qn + qph) * 1000) + + +def word_terms(W): + """per-call terms of a word: allowance, reviewed upper, routes, public count, nD""" + from collections import Counter + H = W['hosted']; nD = len(H['Dports']); n = len(W['initial']); live = set(W['live']) + main = live | {r + 112 for r in live} | set(H['X2']) | set(H['Y2']) + dim = [len(b) for b in W['frames']] + paid = Counter(abs(dim[e[3]] - dim[e[2]]) for e in W['program'] if e[0] == 'MOVE') + hel = Counter(dim[W['final'][r]] - dim[W['initial'][r]] for r in range(n) if r not in main) + life = sum(e[0] == 'INIT' for e in W['program']); allow = upper = 0 + for e in W['program']: + if e[0] in ('INIT', 'CLEAR'): + allow += 2 + elif e[0] == 'SCALE': + q = Q(e[2]); a, d = abs(q.numerator), q.denominator + allow += 2 * (abs(a.bit_length() - d.bit_length()) + int(q < 0)); upper += 4 * (a.bit_length() + d.bit_length() + 1) + elif e[0] in ('ADD', 'COPY'): + q = Q(e[3]); a, d = abs(q.numerator), q.denominator + allow += 2 * (3 + a.bit_length() - 1 + bin(a).count('1') + d.bit_length() - 1); upper += 4 * (a.bit_length() + bin(a).count('1') + d.bit_length() + 1) + routes = (sum(paid.values()) + 2 * sum(hel.values()) + 208 + 2 * nD + 4 * 104 + 4 * nD + 4 * life) * 1000 + return dict(allow=allow, upper=upper, routes=routes, n=n, nD=nD, paid=paid, hel=hel) + + +scale_cost = lambda S: 4 * (S.bit_length() + 1 + 1) + 4 * (1 + S.bit_length() + 1) # one SCALE by S at entry and one by 1/S at exit at the reviewed upper rate: 80 for S = 225, 104 for S = 1125 + + +def raw_all(J, W, S): + t = word_terms(W); nA, nB = len(J['types']['A']['ports']), len(J['types']['B']['ports']) + need((nA, nB) == (t['nD'], 104 - t['nD']), 'port split of the caller differs from the word') + rest = rest_of(shim(J, 'A'), nA) + rest_of(shim(J, 'B'), nB) + lam = sum(1 for e in J['events'] if e[0] == 'A' and e[1] == 'LAMBDA') * nA + sum(1 for e in J['events'] if e[0] == 'B' and e[1] == 'LAMBDA') * nB + debit = 1000 * lam; per_in = 18 * t['n'] * scale_cost(S) + lit = 18 * 10 ** 7 + rest; act = 18 * (t['allow'] + t['routes']) + rest; up = 18 * (t['upper'] + t['routes']) + rest + return dict(rest=rest, literal=lit, actual=act, upper=up, recharge=up + debit, per_input=up + per_in, per_input_recharge=up + per_in + debit, + lambda_jobs=lam, debit=debit, per_in=per_in, public=t['n']) diff --git a/research/fixed-caller-query-and-host-limits/replay/package/verify.py b/research/fixed-caller-query-and-host-limits/replay/package/verify.py new file mode 100644 index 0000000000..7047c4b786 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/package/verify.py @@ -0,0 +1,15 @@ +"""Rational power enclosure retained from PR #7098 by Rohan Arun.""" + +SCALE = 10**30 + +def enclosure(rank, saving): + exponent = 1 - saving + target = rank**exponent.numerator * SCALE**exponent.denominator + lower, upper = 0, (rank + 1) * SCALE + while upper - lower > 1: + mid = (lower + upper) // 2 + if mid**exponent.denominator <= target: + lower = mid + else: + upper = mid + return lower, upper diff --git a/research/fixed-caller-query-and-host-limits/replay/price_7002_75_job_composition.py b/research/fixed-caller-query-and-host-limits/replay/price_7002_75_job_composition.py new file mode 100644 index 0000000000..5b7a0b2357 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/price_7002_75_job_composition.py @@ -0,0 +1,36 @@ +"""Enclose the real 75-job normalized schedule's savings and remaining gaps.""" +from collections import Counter +from fractions import Fraction as F +import json +from pathlib import Path + +root=Path(__file__).resolve().parent +src=root/"reprice_7002_host.py" +ns={"__file__":str(src)} +exec(src.read_text().split("report={}")[0],ns) +price,ports,t,p,C,native,stages=(ns[k] for k in ("price","ports","t","p","C","native","stages")) +new=json.loads((root/"PR7002-IDLE-PROJECTOR-ORDER-SEARCH.json").read_text()) +old=json.loads((root/"PR7002-NONCOORDINATE-IDLE-WORD.json").read_text()) +new_idle={int(k):ports*v for k,v in new["rank_histogram"].items()} +old_idle={int(k):ports*v for k,v in old["idle_rank_profile"].items()} +assert sum(r*n for r,n in new_idle.items())==sum(r*n for r,n in old_idle.items()) +def invoice(idle): + paid=Counter({int(k):stages*v for k,v in native["local_paid"].items()}) + paid.update(idle) + paid[1]+=ports*(stages+C["paid_outside_native"]["1"]) + assert sum(r*n for r,n in paid.items())==sum(r*n for r,n in p.items()) + return paid +result={} +for k in (F(".004"),F(".005")): + saving=price(old_idle,new_idle,k) + assert saving[0]>0 + gap=price(t,invoice(new_idle),k) + assert gap[1]<0 + floor=(-gap[1])//1+1 + assert floor==(-gap[0])//1+1 + result[str(k)]={"exact_104_port_saving":list(map(str,saving)), + "new_margin":list(map(str,gap)),"remaining_rank_one_equivalents":floor} + print(k,"saving",float(saving[0]),"margin",float(gap[1]),"still need",floor,flush=True) +with (root/"PR7002-75-JOB-COMPOSITION-PRICE.json").open("x") as out: + json.dump({"jobs_per_port":sum(new["rank_histogram"].values()),"tests":result, + "scope":"Exact normalized schedule with the retained F+H1 tariff. Physical packed IDLE and basis costs, BIT and outer admission remain open."},out,indent=2) diff --git a/research/fixed-caller-query-and-host-limits/replay/price_7004_query_families.py b/research/fixed-caller-query-and-host-limits/replay/price_7004_query_families.py new file mode 100644 index 0000000000..d818e4dcfe --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/price_7004_query_families.py @@ -0,0 +1,34 @@ +"""Measure what an entire caller-level QUERY family would buy on pinned invoices.""" +from collections import Counter +from fractions import Fraction as F +from pathlib import Path +import json +root=Path(__file__).resolve().parent +ref=root/"reprice_7002_host.py" +ns={"__file__":str(ref)} +exec(ref.read_text().split("report={}")[0],ns) +price=ns["price"] +caller=json.loads((root/"PR7000-CALLER.json").read_text()) +c={name:len(typ["ports"]) for name,typ in caller["types"].items()} +data=json.loads((root/"PR7004-RESULT.json").read_text()) +bit=json.loads((root/"PR7001-RESULT.json").read_text()) +complex_pair=tuple({int(r):v for r,v in data["invoice"][key].items()} for key in ("T","P")) +bit_pair=tuple({int(r):v for r,v in bit[key].items()} for key in ("targets","paid")) +result={} +for k in (F(".004"),F(".005")): + cases={} + for name,(target,paid) in (("complex",complex_pair),("bit",bit_pair)): + lo,hi=price(target,paid,k) + case={"signed_moment":list(map(str,(lo,hi))), + "minimum_rank_one_equivalent":max(0,(-hi)//1+1)} + if name=="complex": + case["after_one_A_query_removed"]=list(map(str,(lo+c["A"],hi+c["A"]))) + case["after_one_A_and_one_B_query_removed"]=list(map(str,(lo+sum(c.values()),hi+sum(c.values())))) + cases[name]=case + print(k,name,"margin",float(hi),"need",case["minimum_rank_one_equivalent"]) + print(k,"complex after one A query",float(F(cases["complex"]["after_one_A_query_removed"][1]))) + result[str(k)]=cases +with (root/"PR7004-QUERY-FAMILY-TARGET-PRICE.json").open("x") as out: + json.dump({"queries_by_family":dict(Counter(e[0] for e in caller["events"] if e[1]=="QUERY")), + "ports":c,"target_prices":result, + "scope":"Exact raw-moment bounds with fixed targets, using source-bound complex and BIT invoices. Query removal is a hypothetical change and not an operator identity, physical or outer admission."},out,indent=2) diff --git a/research/fixed-caller-query-and-host-limits/replay/reprice_7002_host.py b/research/fixed-caller-query-and-host-limits/replay/reprice_7002_host.py new file mode 100644 index 0000000000..ebc6d72633 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/reprice_7002_host.py @@ -0,0 +1,58 @@ +"""Independent rational target budgets for the connected L18 caller.""" +from fractions import Fraction +from hashlib import sha256 +import json +from pathlib import Path +import sys + +root=Path(__file__).resolve().parent +sys.path.insert(0,str(root/"package")) +from verify import enclosure,SCALE +source=root/"connected7002"/"COALESCING-WINDOW.json" +receipt=json.loads(source.read_bytes()) +native=json.loads((root/"connected7002"/"inputs/base_invoice.json").read_bytes()) +C=json.loads((root/"connected7002"/"COST.json").read_bytes())["18"] +ports=104 +stages=C["stages"] +repairs=ports*stages +def hist(d): + return {int(k):v for k,v in d.items()} +t,p=map(hist,(receipt["T"],receipt["P"])) +assert p[1]==stages*hist(native["local_paid"])[1]+ports*C["paid_outside_native"]["1"]+repairs +assert t[1]==stages*hist(native["helpers"])[1] +assert sum(r*(t.get(r,0)-p.get(r,0)) for r in t.keys()|p.keys())==receipt["rank_surplus"] +def price(t,p,k): + low=high=0 + for r in t.keys()|p.keys(): + c=t.get(r,0)-p.get(r,0) + if not c: + continue + lo,hi=enclosure(r,k) + low+=c*(lo if c>0 else hi) + high+=c*(hi if c>0 else lo) + return Fraction(low,SCALE),Fraction(high,SCALE) +report={} +for k in (Fraction(1,200),Fraction(1,100)): + lo,hi=price(t,p,k) + assert hi<0 + lower_minimum=(-hi)//1+1 + assert lower_minimum==(-lo)//1+1 + free=(lo+repairs,hi+repairs) + assert free[0]>0 + eight_batched={**p,1:p[1]-repairs,8:p[8]+repairs//8} + assert repairs%8==0 + eight=price(t,eight_batched,k) + assert eight[1]<0 + allowed=repairs-lower_minimum + report[str(k)]={"fixed_F_plus_H1_moment":list(map(str,(lo,hi))), + "minimum_removed_H1_equivalents_for_raw_positivity":lower_minimum, + "maximum_H1_equivalents_remaining":allowed, + "max_fraction_of_original_H1_repair_budget_remaining":str(Fraction(allowed,repairs)), + "free_repairs_moment":list(map(str,free)), + "hypothetical_same_rank_mass_rank8_pack_moment":list(map(str,eight))} + print(k,"baseline",float(hi),"min H1 removed",lower_minimum,"allowed",allowed,"free",float(free[0]),"rank8 pack",float(eight[1])) +with (root/"PR7002-HOST-REPAIR-TARGET-BUDGET.json").open("x") as out: + json.dump({"head":"ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b", + "invoice_sha256":sha256(source.read_bytes()).hexdigest(), + "paid_repairs":repairs,"at_targets":report, + "scope":"Raw complex-side screening with optimistically coalesced coordinate idles and fixed native helper targets. Free and rank8 tariffs are hypothetical. No HOST implementation, ordinary cost, BIT, or outer admission."},out,indent=2) diff --git a/research/fixed-caller-query-and-host-limits/replay/screen_6824_dark_two_contact.py b/research/fixed-caller-query-and-host-limits/replay/screen_6824_dark_two_contact.py new file mode 100644 index 0000000000..12d1b80b3e --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/screen_6824_dark_two_contact.py @@ -0,0 +1,123 @@ +"""Screen two-contact repairs whose individual baseline effects vanish.""" +from collections import defaultdict +from fractions import Fraction as F +import json +from pathlib import Path + +root=Path(__file__).resolve().parent +initial=root/"search_6824_host_entrance_contacts.py" +ns={"__file__":str(initial)} +exec(initial.read_text().split("after=[None]")[0],ns) +w,n,N,events,ports,native,columns,sink=(ns[k] for k in ("w","n","N","events","ports","native","outputs","sink")) +after=[None]*len(events) +def tag(col): + return not col,sink(col) +for i in range(len(events)-1,-1,-1): + op,d,*args=events[i] + if op=="MOVE": + continue + r=args[0] if op in ("ADD","COPY") else d + after[i]=(r,tag(columns[r])) + if op in ("ADD","COPY"): + native.add(columns[r],columns[d],F(args[1])) + elif op=="SCALE": + columns[d]={k:F(args[0])*v for k,v in columns[d].items()} + else: + columns[d]={} +suffix=[tag(v) for v in columns] +rows=[{r:F(1)} if rX contacts with both sides mixed.""" +from collections import defaultdict,Counter +from fractions import Fraction as F +from pathlib import Path +import json + +root=Path(__file__).resolve().parent +source=root/"search_6824_host_entrance_contacts.py" +ns={"__file__":str(source)} +exec(source.read_text().split("def sink(")[0],ns) +w,n,N,events,ports,native=(ns[k] for k in ("w","n","N","events","ports","native")) +suffix=[{i:F(1)} if i160: + return + key=(tuple(sorted(a.items())),tuple(sorted(b.items()))) + sample[port].setdefault(key,(cut,d,s,frame)) +def scan(changed,cut): + for r in changed: + frame=frames[r] + if frame is None: + continue + for y in rows[r]: + if y-112 in ports: + for dst in to_x[y-112,frame]: + save(cut,y-112,dst,r,frame) + for x in suffix[r]: + if x in ports: + for src in from_y[x,frame]: + save(cut,x,r,src,frame) +histogram=defaultdict(Counter) +for i in range(N): + update(i) +scan(range(N),0) +for i,event in enumerate(events): + op,d,*a=event + changed={d} + if after[i] is not None: + changed.add(after[i][0]) + for r in changed: + update(r,True) + if op=="MOVE": + frames[d]=a[1] + elif op=="INIT": + frames[d]=a[0] + rows[d]={} + elif op=="CLEAR": + frames[d]=None + rows[d]={} + elif op=="SCALE": + rows[d]={k:F(a[0])*v for k,v in rows[d].items()} + else: + native.add(rows[d],rows[a[0]],F(a[1])) + if after[i] is not None: + r,col=after[i] + suffix[r]=col + for r in changed: + update(r) + scan(changed,i+1) + +def describe(bucket): + return [[list(edit),[[k,str(v)] for k,v in a],[[k,str(v)] for k,v in b]] + for (a,b),edit in bucket.items()] +summary={str(port):{"contacts_by_support":[[a,b,count] for (a,b),count in sorted(histogram[port].items())], + "compact_directions":describe(sample[port])} + for port in sorted(ports)} +with (root/"PR6824-MIXED-FIRST-ORDER-HOST-CONTACTS.json").open("x") as f: + json.dump({"ports":summary,"scope":"Exact first-order contacts on fixed normalized chronology. Large support contacts counted only. Extra tensor entries and higher-order interactions still have to cancel."},f) +print("ports with first-order effect",sum(bool(histogram[p]) for p in ports), + "ports with compact directions",sum(bool(sample[p]) for p in ports), + "compact directions",sum(map(len,sample.values())),flush=True) diff --git a/research/fixed-caller-query-and-host-limits/replay/screen_6824_two_edit_mixed.py b/research/fixed-caller-query-and-host-limits/replay/screen_6824_two_edit_mixed.py new file mode 100644 index 0000000000..6a3dda28b6 --- /dev/null +++ b/research/fixed-caller-query-and-host-limits/replay/screen_6824_two_edit_mixed.py @@ -0,0 +1,157 @@ +"""Screen necessary tensor-factor cancellations for two coframe repairs.""" +from collections import defaultdict +from fractions import Fraction as F +from pathlib import Path +import json + +root=Path(__file__).resolve().parent +initial=root/"search_6824_host_entrance_contacts.py" +ns={"__file__":str(initial)} +exec(initial.read_text().split("def sink(")[0],ns) +w,n,N,events,ports,native,B=(ns[k] for k in ("w","n","N","events","ports","native","outputs")) +A=[{i:F(1)} if iQY^6#eEo?ANs~@@xLpm+0|FZUBA1Aly;!zS730mDvzB$UtuJ zB|(up$nX8l_6^VHnDv>p1n|Ba&?!G?(ntahU)|N{eSNm?O%mPj_fq$-pEdr=Rj0rwFKdb}Fgf|UVqWCpYrXPEGz%3W+n64I?m)9pv$`%xl zK3QAdAg(m(*WD2dmn+nj6EH8Apfy4?-Pke#kq~m+ARsCC?chi@HbdBBCnp=i4>GS_ ztD(;8@oYH$j4wCmz?&t2SQd)^)<;m2OlTpR9fGQ~wR>OtsgP)LSoS4wR_Q5hV{($H$sL zm(AmN@<{$|qtd9KM!SQLdW#My{%pO8wXA*&6WCzTM|~gr2{bGGTXLy?{_oZ3qdrS&Ty#p1q@(} z9lMZB*jO(vj0gfr6y65FOQDU2G|>192~e}VPV<8xp@%X0#*BLt;%^Nsu9T++-Uv`- zL~mOuzO&jk=WbSg%c%)8=leqQ%5kR%I@CFAO z^7tIFkPX;N`8)s*JXK~HRojz^z}fqH2LSDnw@9Daq0VTaM-%m#q)} z+G&KQs(V*qM}_v&I2ptTGgP}cIMWY2)c+yYuF~T41)F(0?s$ZXx@;aY)*SK&ftjCs$#2sZ_MHy7r^STpd=4(7My|Vu+UcdT*+h!P z)758++1Va%X1YySS;#rd=GZ98qpo%8dtpD#yJh`^G7>- z+5`jnj`&@7ue`VU{B@I;=hdIj_*%5!VVT+-EC1Wf>-{q!cZ|H1;Cu~=&r!XF+(GAj zewHm8H}GlWYU_;X$MY)F&jI%Q>JJw<`->R^`wjN<^Qji_ximUnvV`Gr=`OsCG3$AG zmc>@t6W^piN7tf(LZ)xc{m0+Z<<)9D7OCTJQx7Ak*tJG8qv2rCru^yySDDV4zg`B`VbN~F&t~k4!Z8^feEJpVR6D6*i2I(dh-Ts-sbn@puHY)dSjQkQXzZf{N-BF^7P$5!lqqVBh=NB1S`{E!HPiC z)I|f!FXc9q_EEyeWg@q$geu5F7^Wrw6f+(_+XYw5l!P%ewUd>6fXaWodcBl#*KWC_ zT7FhfIm?NyNx98Gy=_68+5QwIT=P@kmn;CkBmu59jcjYiv~db}oqpQ* z-DPF5AmvELhNVPwky^C*gX>EDPSeNS7;G2|WU>&Up~|gVQ}W(ycr`l`UGi5Y_45F8 z32dx2)0hbzX@OEM<+ReXW*YW?yK~3Z&@Ori(~2l=U!teG)B-y`|DNei#KRmrtpO$n zpP+}n;;DA`@XCCg>}hoP+VV~6?XMqb&>S(U^)ighW%bf-$e@@9Jz?`rDZ1F}a%?Xc z{hnxy=*-+h_Qf}yFv{e7ZrR>+zc?1s&YIEQK^aZ@?c=J4d=YEq>mFPBF_JF!m$dVc zh!d^FCBfJ3bNb_AgD;=ST>v>UC^kjr18BiXR0ApM(=}RZDflby{HZGQEoYPFvk78n z?~TnYI{aGU=<_yXX&mi6USZPci_NJ01kWL__Mlm8TMOw?jK?~0-XlzQZ~9NKQ*G5o z{`)d3{IO$sN4y^X*j4_l)xm(?ihoiOt@`aIA!m46wJk;n?3*;}oFHmY&6j|?ppYNn zk1w9o^L@Dr;bUNin|6Uf{|%eNjZL)DRVU$Lnq990sbc!bOa9_FV58^UUHEj$%U%L)Q!#!N@#whJW%LdG!OwK|u$vU_@1oEF*^5=V z0P1R))EN)Yblx4NIniVE%yyT_Vz`k$y9llfqJ;<6*Fhr$r;SNuk*_5QQx<1bZ&Gk$ z35Bg%5cyfGcRvJe<;{eVghw)&k)g~s*OhV#P>`(RrYAO|B)0dyU zLiZd+BkqFl1_iig+=Y5$ES?n8(`8I*MLgxkGeLG2{xsc8P8HOug2E|fHlSIcR34xT*Z)r-X?TN%fMW za$ZavX;b~H%w0$UQ>#_6E_UrGub|JC$59Kzron+lR084E*F{pH_)t76M&Wdl`-Ujm z>%+I&^QNNRCQDnQ+>KJKzm@$$-C?9T|NkUYDDYqq1`Wo<`PQS z@6XI&!JXxahz|qYBR}&knqh)W?^JE;<%oSU;EvepYVoY`cvtZ&Acv|%2;5}8TV}mE zd2g=mUXFISzr^i-=GT#bgx#f>JXLaD;i8}YW7A3z#+8xVO69D3(ZFI;)y#LTH(p`$ z{e$g$rvLTe?mmAk*RGh^u!; z?nox^`rPG;abIGZ@3ZH0MOee_*xNaibAPK~`+VB!6@K>8+~<3>Lvx2hUIeQoe-kLZ zH&A_V>)Upor~bxdjZuJsc@zVYRo85wU*sL}zA0Jb<2K6ZXpi0Nt5>Frl8eb_y-@hp z75lbD^(dj^?72xBDb?nz8F?4SkVd#qRe<9B6Z7VRNonrStDoNPWiWORJ8(sDn9{S+nSeO|PO-{^U_-CxGdx0>$>Q+>kB-xPazz$`Si z1RM*Kim!LN85XzeXa3WwO8)ly`c>CWPA_exHW{}z1uZ`P?EmljUg6Aj%6V(qY%C%ZEcJaf z_vKF?0-WzH7JB6{K6(19-$^KSsE}QG1v?k3UR^Qf#tGrw6E)#XGNs~1oHdHh#;Lp# z@cQQH^(>9^ZU!G`ryE7kOPk z{0%}AZCRw*`a${-xBU62SEah>c_1_rFof2qs^h~E!&=t2h$Sq#l4Wv4Mwi;MW$z$t z*m)mlAxg5QTHSs;lDm1`K84`%Mz@mhOn)=$-vE{9F<-BDw+~$#@GW z%zUi5?y#Gk-i~|v{+`tvxJ&lUr!}kpuDJW*g#zRu(zQnu1v*kr>Ac$V)QrDw1RYFr zckbT2FQMlDddPbPPT<5ZUg1^gT=Ox1oz3*{_ug>POh~=ZY-Hi`J2GikLfUX+V@pnR zIcse_b{27m=hal|W>|!QTeORBzx~{CaIiUfknOcAEyI%);B6q=zIK9~&pW!wU;TAr z)EnR(iIM)!=iqfYXK!%8`+lS6?_l&Qqx1R-`KuPFnL|!?{M`=AH?Jndz<2AxD^I2* zg53$|JbS6)lg*k?6WR%dR&v`&oEIjd8X#14?g4(dC-5Igk8$e!dk_QMHBmP3$r~Nn z_u5~Wt%hOqYB%czOvVXz>((L_+Ak=e4PTmVbuABQ`PKyOR6k z43@=iO#pQ5&NV=tL?3FOSJDA|1`*gwGa_}H>BGws*S9r2PuEXvJ>s(o)`CY7n7jzGIB8xI#lvt1WX4MvL z?7E~IyZ6$`u7$@~{hpT_TeCLE%BIm$AH#RGoqGS?)&k!~U!1|O=t~b5p8{9`R$Wgr z!0AK60*|xv$;B%c2Qs3j(_YZm$Wg+(Zt#M=N`-4~ZCbj$FT6{8Hm3+;`JLxk_iXcC z)$7dArpAY#eyG>&_su8gnG&^C)?-3ZvTWaq+F7$p;^1_}_h-ef7PMAtP=~oj{uFC! zYrfp|=)=2m!Y&jQ9x&oer?>LjukS`Jpf}x1F|I?D%UZK&(HpD6m)`&``QOv0jddX| zJ~MXBrkeVG+-wfK6)Hc}a(w8r-T7#b=9l5V2j+KN-eEKNnXkER@7I_1{>o@oezdW} zk2&eO7B3JNQW_Sq0M}gEPs()Zme!QLzMmx3QnD?Fc%0dw=Mi153ZE>}y7?&Nyjpk9 zSP9L|m(49Y^UlIlw_A18iDIQpI>BwfC zBtoxD-(QUfGM(m0(%z){Y1FJHt~SX-=jid|_bNd@%u%btLjP=gU&-Qj?gop(aTH1W z=G%93=KS2%iGQAniI-3{WCG63nN$Ays^-II>Ws}yj~S2eQsldvT04%$7DQ=@7T#yi z_ou%*-Fdxba<6%`zSs4BYg?NRq6IlUGWBT$$JIxJ)4OQ!*FRJM$6f|!H#BE2k2n0N zcHpz)bkWakGVmgqFvq@r?gx>Hi%S_;(*dOxsH?K5K#Ag-R!xB{|BVxk+s>#e| z6a0Q1@c9JJ1P}cB93nQu9=AC$J`>d$j=e3@c;o%C4<<2P1iyoiXQR@A|KaL?xQ-w5 z&o>JA%;A3pf$xt0YT6!)K7o($*H-Lw0^;p=CS#68Yr(nP>la(;U=OyjkN4xxU9GP% z1&H9z4i`aiJJ@64-Gm(~Ll0amW)%?JbrIK+7-d&0{y6P?|D3X%e&Gbo)rfA1`)5kL zD78E0hvjGT=6hzqlgxc10pz8GKQ+VZY!7>8|6P|XAQIQ|7}*`|BE9zm81Omx@S;w( zJL|C;QuBF4=i%=-`BD8r=WA(@uk{i4;cpahcZW!}y8B?3o2ymUI(*dK^%VawS5pAK zeFCrUegJmCWC3@hqVJcz;L(5f@eWe&`)DsX0&H5i6~7oh84VQN^D5$)AzF%{m|0@v zG}FDZ|&%^l8XR6hJGPs{GzhS~JM z$c9x{dp}$PT#j#}iOD?~7;p`q{m&OQ1U&e^+yy+;`mZN%)~md}9Im#3>zT@w_&(no zicscRSBinX?}VQh3YI3AxLpWc^wI>Jn)2pD)xA+FkxYQyk4aH5@4r0sd+(&_HeH{1 zIYmw=-Ija5Bj3B0KZxC;-w!w zDNzPf2=k`y+Zq#^L{tP|sF*T=(Nk?NsnKWK-_z8fY0|^du2kUN2qS)o%u|9d4odNQ zDfKLg12==+PG%&E&~ox7THDn5J5js!aMcsQk*~oYmXSvCTrxnAIaVUg=g=7#nX$KDnx-rC<$GZ1urnOz6!F)$03fgqa!8DT z8<0)-IZ_-TauGAwUp(5Fo9~AJIkiZVBrpyi}GG&vjrnHEU11G5@f={h8f^;8p)TZHct)?r6dL^Vo zWu=~ab4(?w%5p!=nrRsS*IUa%>_y6I<=X{yj*8* zZ*AP=8Z;WknoS|tOc5MM=t7v&{~FIRWv8yZNk^Vyx3+xmR^{dWv19qF7d4wH zk`~`9bsX2SoBF)x^Vgdh?^>$-vu0@Zs=-Rks~F%x$ zeYd%~Be<6o2U81%hZiXXr(Zu>dvWtlg=%nzF9tHF4+fgeqb*aQ9}cwlshH!tUmMo( zW>GeKCjE9w`BU(fVR6c3v!Rjr!*b?l9L&Q$BuAcbXF+#$6lecThnK+iTbU$tWv(@2MLSrD7G zLra5k@`5fOyh9X0YV~}2$)7LhUej^yOI!78>n28Fa03*|30`29$tJh8SMJs$*7Di} zBPpgTXw#r9PrPUJ*fCUgged-!8V=-{xrVX1$}w{M2gzM=0~-jOsffyHbm4;-wtc<> zqF)>|HHs6#UiM?9kq0!96Y2CEk*{hs{_5jI>DjG;1il#hFK>*ZIO! z0Gk*ayr>SjW+!#KUMPt|MZ?N&hGHrG6p6_wCDyUUu;T<$u?Q{t^xX&ckejgFgy5wW z*v=Rw%I5i(OypR!c`EzbMgH;~yUf!HRUr#al`9LfEYwEidI>Jue$VqVy@5(xh9f6q zy4SW>ownPWziJF3a15NLlcvVo=KS54ZODa9#s1NN|6&65EtHWXk`c5@7gL)6)H0)| zgi=EL95V$ajgRs|IW4ygIgjq5&?V~jDUQ#ppR%>NvQ-Eg^f^Tt+hlh|1t*6Vkc1K;Zt?AM_FHS`b+T&5XR4$G(R+JzsTmCMkHad|ddD!HN)Lh?mVDLh+Ohw=-cBI#*6ZP_QxY+gET zoCacCx590n!ET%(!?=_VW_W&RBe$e!!PzDm?I#V8WB1lde*<=5L{oOBr0{S189S&rZ%@|3zcX&W zwSDETcW}{)7a_4j!D_t@N<4+qOb|G)FRK1}NODzuJ*cFLUd{lkdMVI)bJ2}<4GO9a z5#SnM{qRA9w75EL>*N%-^t6u*7j|(V^W5iMY5ZG%(}N&Pj&~!~Pz4>A<1tX>QtMBl z>VpMCntOZo+mTI6lNl0VMYPtuIiKQSEYll~FL&YB0%j(v9r*hUIw|O)GM=u#+*Ar3g%+tAsK8bi5JfPWx?`qDF*?26>*Xh_24a zC;{k~^(5CUlOl7XNVGiX?EJ!!{=sUIf>g2fcwY|RYurxex=Fr2eLV5c~iCh}X$V%!& zn=j|MvOV8x5+6krvihC^`&l$whU(@?@vicCq@EL5Qaf6WXx1Q!lA1jt5nWm4q35A@ z={H72M5rGMMa`Df9zqq!C`k0dO8q-Z^r4)$Ja+_$bXW(n(z(Ddgc8wq~-i=eP2?gq(N zs|arkF5FH5O0ic)&t<6M(pU`BBT1iFs+ZNmatxRRx@$tCkJ7VU_hcQj#8g{Q7vsTtRE4zgz=i?zF|%iCI0kGCU9Tq(DRqeN(W; zS^o1&_Q?{*Ey4X_^Go=(o#3M(k~U+*2uw}>Bp@Gxf&sFK_Pc@OXXO0*L}VFYGk(_i^*^!!!7*L8{& zc;yFT&PskthA*#=In}i)3PnOzGPYNM3Xx1Nxe97;oXM8wxE-U5rzmA?RgEnOs9a~1 zp;EO~904{Lj>k(-RsQ%nczlL<=6U(pWg|P|M?-EV_!l`hG6;*wbVkV@GKa8=;BJb@}kh4f<_Ijl47xYT|}5<-c(;hy`R{rN=Y)bCCnVu zf0g4Yy^ib^tphbejwPi!HLV1$imPpx_GsC|E2y&Bzm!zjU?o7}ndG&ya73;LO7!UlR{UA6m~5hi$Gl*v4GO4DK3w6a8Vy+{53DA{(x##lr5u7 zBXSEu+NnN^!*syd^THczP)G=eY{; zE1y`ZFm(`-u*MP$%F=%90`ht2AoF26YOo3kQIfk37Aba9b)YN|@#s-(nh<~7BZW1! z^mMjOGrs{Y64pj<2QPH2Fz9>CPCtAeVK~fte8dYZBF?v~FM_x`$Fvq_4TMJ%Eoz^X zq0#;Rby&=c0rm>m;re1os2 z4drKI_awU{ie*GNe`=%W4W*Mh>4%x|3qy)9PUu&ih8b{@#O_Z4LolA0o?{(w?R4?udg8vr&jiR+xu0P$u;sJuB?xZsHDE znp13CK}2vzt7Ax}8fy@EK88&E#;Rl%)RjzFa7yVn{WXd31c&=Q-TvvyQ`qH*vAOEtAB#$hrW1^eUTv@mlSzY-N{Cf$nd#8H7b{N=L#mdlcbp~d@mjybdnf5 zW3&nmLDpE{lSYm*PN5UV!82xrqpy=VHo@Yp?R>kkSk~rIHW(azw%0yIhH{N*F(mB zp(S}C)Mjo-f8`G(xAFb*787JuFw?tnf}%GYmUB&b$154@Y|rMvfhy%4G_Ny?ppL#r zcrs)bF6}4v2t|jiPSsYjN75CAY#7SRB`FD4nA94Nkjo&B4g2s-npQ?5xulq$qvBV1 zl1y1k?dlC(G-mSZTx-1XVP7E892=0$%ix))B?uI3`~8hQCnY*cBZxN$jdY5jjBro= zJPWNgL@cP+MO~`CnljoBN5!@(+E_<0;Mf{(w|&DaDFa%COAp6Gx5Pk{=CMly`*0sc zadg~WBEN6r<fuxqFX~T4$TjK`09ce8se>!0=*#Oy@pFn+QLmt~#AXQlTTP0c}#< zD*^t77qn)3eHqE=78`bb4etN!J5=sV{q8BeWr|+}!+{EBnv>l-c$x!-iN05w88795pPUJBY9TG4z6hgb#d^Q>yiDhRS8pv`rwhO!e-H z#?X==xz=8YjB@wS5fZ|x6J;vph>k?;8RboM=nHYZ6>YetD39U2XR`Q2XuKeb7y;U|>-*$lZIhHKulyXK(J~dsVpJ{t`C^bBd zbG?-LSTs4Ia^=Jv9~3`;{~!NqONG;N6e#R-%wdSB$;Q#Py%1E6cseTmQ9!l`zM+kW z!$w-0mv2kt)2Q^e)_qu#Br7B3lfY9a`KP#?iHDDJ+s=NmDQsk02P;qf5)p8TD3+o`2Tl%4yH~$;Xn}H5Q&l=N? z$lsi=jiz0?#=d|+?nSs|qua{yQ9KJNBHAk=8d%l@HZ*s0hU<{~j{cUo=Hrd@OU zb%s!|91&IJsNwmul<&U30LLDXBN;BimiT%&JY6yO#mRF{PmOd^zw)r9$D-$8$|yKO zrwD>Gjp6IcJJk@X) zxfE?^DjyV;y|1={(c!>2G&tJ-t7-chx>=&Iq@reBNv56VcP5rui8R8O#0EhmkvIS-fhi?#BxWI8K@Of|TfkuNkmi&f?h;=~ib zUI|Dca1v7?UxrS#+Vc73oTdjCTLxiBBDD>>l^S$hofXmWL)SI_gy5k)FA=_mY6~F4 zcuX4zt9Fim;UI?|MPS9L-~;8%VF%U7hFW=PGlnFHhgsojE7!=2Foy6AYsL^?bxXy& zV6eYV4MD|FOXp{X4&*o3&1oF1~|moVhlrx zevQr`Q3*Zbdw;HjUS1~7rBb9qu&|tS!@pvQ#wWx0@X^7xm;72pq!M!=ZEA_#9c3^1 zZzihFhFCa|lPH{gRDYd%jTAiYw^ds0U|0g^J8&cy~md@6qX~&$=-%N{sp&c}KDEPOB*Q_4Xv#2H=8n`nnSVZokE!jENPOIBD*3 z{=yt)iznXS^{)-@sN4*%4NPPM753D|-?*E)Fvlo5qi-;}|7*_Ak^bFPu%16-Idqb4 z^qTcqk9qc%_$1Wr%8O92Y5PEw_|0*gT->PDNa7mXOH#Qh81^-7foRJ_60uwKkQM+5 zv<}%lNK2zyY^8DK`Nd;#giuNjE|p2ztYvisQ&M(aH`f8)yfd#MxYH`*A@%8^;@MO} zcrDWtNU~sz4o5)>M|Fu`Ic=P5s8Y4W5k(pp5d-ilu0Pdsv8yN}8HfL~slFH#$z8dj zTFB=}Wgh4sd#Vs*p&K~XHcE-kr_#OEkoUKxKh&oo;Dw*R`q#F@p@s&v4vv}nckd=# zAI)?L-d$;4JF{ucKQPI_wK9R+1+qi#0G-79IElL$)FvGh4SUqlN5}TLi5aSvjDzUV z-V=jP>RjuB$V!#VrWGz-G00lW&2>3WUtFo+Ulgrh4JGfihm4}JLLFUci1o(4X>hO& zDWkD3wL1|xV{IeOkD`z;<9kJ>RV$?sX!DRZ7SYNgY>ClCvO^hoNpNyk+85yRD-uRv z!CDkV>eMUTt#!Pn^*N3V6JF1bgya5OIlk}kz3d%WVe#!abnEs;lAkHDQWEY+iZ(GK z?!DEO^)5%_UPRWcq0M7aRU%7az%E6^Mxi1-%H9)YW0_z%ERVn@na~QM|j2-(_0d*V(R*{>6l_zm!JO^c%ZNSb~N2m@mE=yr?= zTa4gCU zggGa^7g`RVI(b#3n7ascIgIDM>cWPh>QFguvxE>X26$rJs^hSX7TAkO>7)fmV|wT zAU<9+{nlsF%QI6@Q#YVq|C`&J=@Gu{`2negju#7h@%l{~BE&SY&~S8MGtrNKc7W*% z@SmKUSM@Ut%w(U#HTergH>&Q7jLHJ^#PA%(HBxJJ@}+^78JwuACDx#awf{!IMUneO z{K`|j>o@BVg*+2s+L~B55S~y7y%d8>R-7pwE5ongBN-^cMybWt6-hXcPZ+<`xV+ME zD@7(7^MP1y`aSnv+ZNs4XHvd>9>fD_fVtmlGQ*1%hT)$Tnq(QHk1RK&3$Ua{nSc`P zgq3m?Hu?>s@F_$fgn8IjE`m{D+ zw2G>fhl=>W8%8HFW=%s!38Ry+Mp~#WZ-w-QtywIGGh3&~V0z;6wHDZF?J@cRqjA}* z5p$^oXYN|4*?DMOl;DRM5QZ5Th8Zpe3N3Z~@(S`M&|$-)k~9E9Gsr)jz4zxq%+HG@ zld||z6-bInJ0Uz>709j!m(a++2#5W;W$B~IC%(ba&_VYzR#3>{i!LDOp*#PCW+yyB z<3gwmQcs=dky8Gu0To6nqKIGlW9i%BOmKE8^V|ZLlX@^FjBaQSdN3vZFKpwbo2lxm z`-MGfS1J5p^k8yj_#OJIqc{mAU6n33OS%RX^qXV{=&lq8=-Zpt5_>Eu>?XkrXnpV8 zI+pG>NW#dLi^SP~uGfjKp>176?6>Q3J`qXS1`f^flgWB4oeBcjwf15dmWK^QK>KF+pMP-wTW_U(-&JAK&6N%mjSC zEyu#dLvM$9maYMYyinVNjKE)Ve6V+$QPMx4993p11#0TP7chynF_S0iFZD)!+7<<5 z;Xkvy7RI={&Cg2QZ=&C_wFNZvf%;eaR^p>Pf;hp9&#hl58c#OtneLci9hyQSbhGk{ zm${jyujjpC!xOIUl08^_0PG{;QFW;Z z=8QwsD~h2-_&X^IO&xhx4?`Iy5qhJTxdsHbCa(ISLdt*KO|qgKd9-2IFI9%A!+?e5 z$bKG$*O=$Y?(+T+*R3Bj0JS{xLpRzYoQ6MB!y^Z;ZQ(R*1A+Ib_>4d{m0@%+D-v(G zoN>TV5!cM;oq6N85k#R9PVG8$<3YU?G)L9PiwepLAG05YL{lHn}9m?XPRR z{!fA314cc523L%dKg3Fg;s_T(1_Cl%jJYH?KV;y1L#U9bM+BU8;i*Rj7;`1?2=aJ> z=z=VQ@N6|PKawTEhGWalU76#dlzi$Vt3;0Rw3Yqi<-^$x)UH|4$g9huxF5;(o!SkzsebfvJ;K-cDDe z;y|PCW(U@tb;m-w6Th&qWf)P}!TcQ3uyB9&n?4UW=y)|_@834dF^?EN`}fHhtlcj{ zS8U$0ug~LW^6ucc6FV@NIlZ;&v6^9sH4p{|l0Byl!%ZSYtE>EtHda>?M1;Y%*7E(C zQ((QUR!z9}pnaqi4U}DqLeBZ>GW2yY;=5?5FY-JAf`So2eyOWaZMGP!w`QeT3j#r2v0*5Sw4$XhB}_EaZ;wV*GOMt|py&XvFxjPSf9#`TOmxcL=!Ym0ETKF~}@vc0X%NS8p8 zTwHk&I_8Vn!c({`n%C$VmQ3Gb-d{$MPa$9-si-emFL6&;ethIZIRd@>ST1fNSoqHm z;E=J4ByJY71gltrK?|RFd{F@LPPtgyZ&67o^z4XGa z;jt;EZYJbcccJ^sLlIWJ$|-|{&U12SKaf4rzald2adr{ICN8D;nsc!>CVnGF*sdi$ z59nSNlw2d?U-&>CHz$Na1nfk?7&`16HfV?sIiDjsjMo<)R)E5u9!{Nf+{_(S^!O>$ znWq{-G-bKs0RBv-XtD6!(*lSYF|hAMYlvcIpKl0WJ?e+LpIBOZ-a5xBCs_pk&eBQK zm#>3+--W9*&wVv4_v422Ld|FI-Sv-&B(Z9vQ9K5{n=OkFn6z*_A~kcQET8_0cgDb_ z2yRPeo%G4M50mWo-F^ItLP{!$`GF<#c$1+yyWiGsf&49>f5iJ!60XDk5TKCArm=Sj z^>ep0_dLgKujDo|uQzH|)g>TbOgD`Y!xmfOfuyx?<-j*w<2ZHkFxwy={>KZ_=mU=p zv&>W%jNj>QI_)?1YN}q*dfRpu7$d(;w;%WAjfHH6_{b~YqCYM4`i;y?j^ApW;#i&9 z&x$NA_OhPn?|y$m)=IAm%y6V*0xpx#2}sG3+6WT>U9X|L zl$y7a>7Rnq_mcwvGcGC-`&fsIQpp8##}kY&N8y(H@IjVh;-?P0b%<+(AISLxWG=*; z@SVkh{lP9WYguh0&5tzb!40WFbs&8M>ND|87xAB=(KfU?xpB&B7}$ZspaDKeH4qD8X|`^>3&e9lFc1MrL`j%J!a`aM8(rRF zw7G-wa~&aT5uP2Dul9}3w}!D2+hgulwqClHotCY)Mg)RZF?!6hJKM}`pznFzgDrV? zL#A^bviK>Y>gl!A@OEcg_J|=wh4%hf?Y3(&+8iFJ@qvmszAMJ@H5IIFT ze8>k+QB*=F3yA2>2a(J136BLO)>(F-bAed!VbsMF`C;);G{W`=EBt7vWgRW#`k2xa zhsR1N5rTfuGjmmxLsb5rYYUxd2y&q3FZ?0CkJ*79R0He!eV`9>j=~jFAX@q;yB=5` z1%eklo{ohe=D^TbR?Uw9!-e+pR%l%tP8mvi0PK=@lB81$Bn z<3@*_6eQDO%WUGwu;O%Ow{jMjD7E+;9f0iH%L9u_&aPp}PPXyN=#E1KK{t0<#K;4g zOwP}Jv=rP28qcQoMYb^}8_XKIESeyK7?r`LDX3c+(hpbHqp9w~a1^pFg1+bc8})&F z-i;AR35yr!z`a5(gkoc?G+0?v^2_P#vZJfme|E);RB=fot-oynEg(p9@$e5cG;ZS` zYEgu73phzSdiHbisSeCWmLXeub|Sf{aP-E)A=|nPP;=8nXJQmu62RW*|`>?J!9=mcl8pT!5#{6PUUt`*5JhH0V7Il>pbje-kTWU6ViYOh6 zCuvK$qyw*R&)Oyi(};o04-5m zA^!?kMfPDR;s;}WrHrrLVUp-t$O(V`BOt~_FdZ$8UnEXntoWbXm;=idN9N-$t`-`q zVDk0{tCBo1h=YW6QUxK1CiOB|5j{BNwnPZ?pn9x7Zrc%o4Kl2s1ApQhlST3OdJ5Ry* zuTD+SU(L;UUiR-Bv+d-ZvnEkIpr#uF(Z>ZC7C~uQk zWfh?XADhxNwOH8!2>N+E))kJ%4PR=Y5;Oh?@C4ujkLD0Ubf#7?>7XsyU-L(1D1u08 zHC67BoyC2+Pp|39wYIk=MNiyPk9*^O=6wl})*#@=9K8ynm91{>SBv28my zww>&Af8VF-t+$>(&eT+&(`UMRs=E(9X9iN{pOcG2%tzxaBWnn)o1jxrVLT)E18zWW zldB%Gn4H!urSwqCR0Mp%_QJaxQxdM3%IpNglpqrs-lUw?Eh!$8iDl&R4Ebr9U1Tdj z4ux4f7_mlazFG>UT270eN#fXpFa+dyPDs7xP>(n~Wnhx@=QP6cA&0f~n0crY4)c^b zbOOf>Ka<&94ChQulbmPaHP|W!W8jr@pcKU*FBF&4a5aC_XSzGe`%{1OP9(dzKk`R! zXh;rGGw7tYvp}|X6cT4KU*G4P{8m%2PpWz`qF{c&DQ>r?01^8nICL;_O2NcNmxdW7 zYhm%X3)yJ(T#XNG?6&gU05f;awj`VQD!F2KJyoc-=nSuw$G0jbG7A4l_Sw~;Q{His zc4{{-n)Mm2w3)#a@>D#9x>0Ha7=T^6G%3azC8kt-Whm(%k_rsi3fc~osTrs^Yt6~aa_Dw#BVMf#8e$lV=Y2&zEK;vHdvco;dvacb zx}RMUM!}@GFk}Qi62=ui61~^BZE_wGy$FFS=mi6s_}s#voK`D|!vtyX8_MhOL{wqN z#n6H^<$>^WzR29_B+}6KNc4rDG7?vm;rVt_X7N(+c*h0MT&qc$=PqzFj$SSf=;~+^ z-&d8X!dC&XqW!afECPt0Bc^*|xnkWD0tl@M?dki$c(V{EJ(!X|{gT6@jI0AWLHU>1 z$c`;NjvC@Pong8p;5`PN7&W%%t9%UU-bhT3In8j=7%6_(Q?ATTNvZVCRSzYtbUBJj zBLtI##HJzc-e({v6657Hx@Q}_l@pz!4YcjTziSm?MDC~uj>SvCautNoKyQ2C?hOTj z%7e%DB5{Zb;{wr$pix~hOv1Cig}Q45rk~3yx&aY|A^l;g#gbVUB=O3j$+lX}-1W@D z1xZ#|MiDluTC3dj!qH!;_`ql7Y%?P^`@Osq5K*rQFXvxaD~>8`H<>mp$x*T+(a{%U zc*xvo-T=Z$So>ep`AC3ceV*rBJv2LpSRNJjmk6ALFjd&?B!)heLC0BhAdMz$o&x4U z=pOWJFeT-e54Ff!CAvP5zsOzGny`jR3=(=t3_*&|X4lmw=)nqmNl|9ue`=&!Ba(Zi z9}9qzV>^m{l;K-Fg-_(~GLg3=bU`(vSi8b|t*6msKb^uai*<)EaHy`i_-Gtvk2RG4 zrx8>SSB)2VY}Z9=5j+tS6lN9WMcaz(RoeW=T|91h@sR2fzl-r8xENmI8}EuGrkGTr z$4C!?J{qj^Sh-~^Nx8xPi3$w1#!XvCc>m@ifv`|Hd_h8x+5@dy13;NbLt|CL6&@Bz zWBM64zf8EqJ1(}retD2VICeg^4?&yNYQi%7UV;-3d`!Kt|BO3#1h0w{3Cxoy+H^u} z!lRepO3e2oV4}T@y&oZl5xQ-jy=I&{Vw~eqaWFUTU5^#Ih42=EY*Krr4@P1E%LoYd zXMNu;|6UVZfny7EXDiHS2RmApsEX(HTnON}rP3m$Bsjf1nos{fPb&pt ziFUa6ADe*HP!oj8oSBRE8HHei0OMgzu9*4vd$oSd@z< zgQp1yi57pt1AL_`8Te6@yl_!Ikgug?GRPkB#VaWulMD$^@Ux34<#~gG>W5Skd@DFn ziclI=Ja9xtSGKMc5htW-a=;bw#WzVAGanI9uunUL0yR)PaB3%a1QM+Xuj|T^+=)wG z(cq>+!=a~gC1bdGk(I0DE1}$?m!}W>j*cd&x_6hF9DKq^r>zq>G4Grz>O7j-WUx9(eVU+q-BiGRdSwo2R6DR92K7sFjn|zm)S4PeQjx zQAM|}rNSblirAs0yBSrK>&r|_g!f93oDrpo2FHLA2y?k3N&^7j#aa2{HRSd_igJ{9 zHITxxa`Kt4lL#jJ zJ^zgMg5)o)L_26j6&Pb7ZJ_VDodeT5TwFc(3c?x93GJa{z=610-1(f~h$!xzq~Ih{ zUaCR5iuUpc;%(w==sMvEd6?iRzFenl3vI;`MljC1f{kt$y zVasRTkAjMOJmEXP$MdKmD~^5YX-SEVOE_<+9kdd&zrej>*wagB2KQ#i+WQ(JY?=4K zfr>YXVf%=^~9O1TF>! zud~55%0;J~A`ic50xEu3q>h5ry4mT=%cYQ&jkO13!25ncMZs@sD=*yH-^!R`_flUA z%Js3x4i{g_3=xJ)h~W!(Lh)zFB1cSy%v7ssz=`G!MZR#zz#R(n@RxQn=D#@Ng zT2UWJ)ahX?oIAdtMc2K+ujhZLnV(6bj@Xl>P*z_q3=zaemR~Ny2tyG3p4)(Huqw0f zyDg%uQc}*XdlWI4Sd+WGqc@)xXezVW@mTo?fcMOOM?;8fdPGqcE{aOADZ;^{2i}1U zw9sROE`ObBCV_9TD6iP1!h~rP;J4o@p|%3ee3}tR4`Fz}FS-Wkd6ZtP9f8UVmTY(` z#ZX6xfF`FK&7tXLpl`>^8P1N!gy`V-njBWJf-`F?6=Q;S2eX&S7kL*_n2DEP7P+T; zd%&3jWdL1$x~(xPq}<<*j-khss6&c+_YxTu0+q+-rZ+j9FGox(DlsXe=g)hai4jPC zEvmZD6;`oF0m~kR6-8ddmyMZM312RU>p6*_ua02BAYGf$wIYf1LNZC@8t6 zswfJFn6f(7unzO_Dh(7m#v`dERc876N?06rR=G?Ysw~AC*{#nVBbUut2dt5x_L@S( zZr1w#c-R_;gGm|K%o?2MirY8Mj~u&<4f|#oMg|rkd#?#X^dSg^UjaAS@NQw1^rrls zUvMyZmz5kLm&o6`{MJfWdM05U{@d2L_ACsf?MT0|N7jzo|C%0bw;}bdhKcaTIYAy< zkN!szs0j}O1lB3|y>G|E7M!H!@nR(Skn8L5uoc^gL<|Bo@iD_Df+c!y)(GPuhh=(Z z5vY*SYM4rOHUIAe+#^9&BkVPN^ZU}SV^@`A(}Ra^s=oJ;+SxH#NeCEEbPUyt@rJugC`11$`j43yym*NgkT+LV2WJD zh8?y+3i`jD`gV|Z{y(v29gqLSVpp+4!@**MU@?}ou->%s{y+a|;+E*xnUzvo4hO3p z;FghUL1rtLD6Ph3vO#K*a3(mvVyv2e9owY6TA|^2{}$C{IKCL+U@f@Pf9S$YXpRUgMy&y!~0IN&@<{ z%!EZv<698Fq-ZXE?oFxHx+>gTg`)TYKgz6)i+omau&c?}`*OE$8qmU}61Y8QJMcD1 ztgV1!D}$6oLyco_$M76_6Y_=L+2o3u-U@hMWw(eeIz(sD-w*N!!?|L;nh>3f>PyuI(l<7j2jZ%~b2kpuM7Ipws1Z(sGi0Da z9Gc(kGw3pZd9n#d!5)20ff3@_B02#9VNG=5Ne@B<%AfUXVu~sNbdx*tg9^vV0WxfRn1tOlKsT;+SLjFH2WiSi= zKh_^G3+?~k>;Gl-J95%W<$npIjeb#~?E%DR<1a@r34?FR5S_g-5go$CAyCN)!@=&= zw-hNDUdj9~0%A^k2t$aq80uz8@uEL|OYGa1fJ~H?;*d$%=G z^`pIH68q1Fu@z#f7!g7=(K8yTi1!Dr_>^46D;>QE?880vgHKU=5$6@&)b{YY6-Wlv zEQgIUUH`m;D1v33fh>o#0#6$6nJ_+3Y)dxF(mQbfYl+WNbSfW_`<2;RsF&Y zXWegU{-5@rdudR<#as<_x;~)D)URvrI(y6Av&aIUcz$=A9o5OhY)>jds;Q@IDATIg zYFV3CjILGJ%yxg7xt%-Kwddw$-5MJ92fZwx_{Y}^e3#;Ubj~ji*RCUCVTjV3A*>)p zMrgRSv^K;kJbG$~e|1<6Hx)i|rdywr6YY;kA)bPFD=19{WA3!tS_w+0NPa%}*tkxFZk0ug=J_~C}d{zbm zxHBSknZ-n+oKW`;p-R^>ZKIy2R33^$`lEMO^AGM%z66G@`m=|2P`)Qn5 zM_)ZQk|slsFxM`R<;vO?OjX?=Xdq(KT{YS%&h4p}Iw%f306n#kNWz(t`Y+FSJq-LD zH%R<%C|@C!Xs;--GYq3Lcf74rSpx4|L&6}1n#CFkk*Z;AkW+o%0J54k#2QPSkUXjc2Qci%+ zlOR}*PbEuxcA_V|^+g-WKw}KS^r>>zfXH@${7!}uZZ82!gPEpWikT6otzIy7tBicO zyun9b&!<0<`x7^x$P^v@4(@Ge;D7K`TyiKr9sn3_O$Ue)d6UHOtu(>e@Gjh^y-kWw zP?AH;yZp(JAD+*L8v6rC4~#(1EJc?hV+B@lKfx2_v=%yBBDAdEAEKjjIl9@ z8v|q;dHOp@FpjWkG#pf6Gy|e!Qya>EVRH>yIFZk>S(WTKEIejbX9WxN+L5RnTbfK$8pnq%gSMqmiO&8(qQbZs4pRF#Wz- zoZsplkfr4R_X%R_L1DfGy{a;W_G+)Xh+*CBehmk(f}GH5T!O{S>Z$7&uta6|eTbNT zC3$d-OTbeX1uXA?H>Ur1tl7EHvG2x zlF{6zBG!S-_Yp^nq1Ok#T??jC*29euc!n$=J0`Dhsgp6n_Gu&^W5y15kQ&v48akB$ z3xYq9J}w0{>593k2OBB58W}AE3L=%+!>x1lj7=CXVP({|`E{K7SY9sdP4(V*f?I~) z3})s4I1@O!9BhLFtXhIG%CD!Z32_ZaHCf6l49_`j&1eqyn|Q0Xs!{Mt9zyOlCmwI_ zQK_Ow2u&QlmK z)CvA%pgQtf-Fy@d8rso#s7x00sWF;(+rvO@77MAF`J=KA*vU++Dy^kyyp@w}s#P|S zS9p(kb^TKAk)WZVbSa>_uQgXM8}%SWrIrtH<$K;r(6rwe3`p6wt{d8++dV${i(PRu zFh+s&D1A++qo8Pj_6vkm5_-phAPr9*WTK8)NYBoh0D-E>Ev&a1OOb#z*wyPCeIZz* z<>l1BKu1Z77RSmRn`FW3r6WM*1bd!5kdsKi?1Lh=3mH^(L<;pwps)loS0l6Ra3g&)&HAyIHVgh2X2@ODr3{Fo} z?wbW3;EQuMNXqQLefOHNA0gmu?CWnh;c?ns{&6h?R}eB+DRKc%`6){Ds#c%pNZsCh zvIpD2jP(!H3VEXhC!7ENuqV>}g&%T&B%lp1DqVyV>+ylX0En%ZwP zR28x#R;u-pn$1Kc(Mj{aK~f8)k&rtFHx97r6Aa8tAwaW)d?Y;u|5zCi^yM63{ocSl z$uuK)fY=94aFBxFF>siu;0@Hr57zs>eyz$Lpd8&<)C1&Y!w@mLnEhGO)o6Gw#CR#h zz{=x&smz-t1^TNQU2S6qKiMOme`Ez-e=06pScO2He_7Gsg>eIelEI-h@@HNHG$mb3 zk3cW#^6O!u;nZg*9sgnE|33Mct)bCSN?#d@pxIBv z)Y!@C-yd+@EJNvz>4bHq4 zP_R05f;7x<1C=#m1L`xNA_$~#cyM9(8c6%6)>Obw0Xv+)8PQ-)6DTHY>&JMz_N|j? z1+$e%(hMt96^!EfMviEHQszpVz<*~+&!)01(76WOYz@lk0BQXE1HOuxed|=wu&)i~ z*=k#+cDn??YjKwTY`U51q1>bZvJrxBj$m>{=6SI=Lh>L*g6rnbk=# z_3{OP5H=tf#rsct5-wIHLp1{&JZ5)LY{^*k1$Zf=stAYo{rZEpQZgLKT32WMV|REQ zvTA>I!Pey-w`kfbrIX=HpE?t~q%1|!T(^F(;R1P7*Jqod8&8@YwW+p@+r^g|y_TE| zONhQ&_{<2-`+3^S>}0v`Idyg300^fdfohtS(*2M^a_9XYGq9R!hvLPc`e{>^QWxj6(|4Q5`Q)>$ge+v`&3AVUYMAZtM*LC7(^3 zMn_okm~PGI5vfA6LjxLQp(s6kYJ2jwC};(aY(=3+KUtDCej)X>WnG&{pQ8*>{q(Il zH@4!&oBmh1cP(c?^q{e~QgBr7-qvAXJ0Qq=>YK&$#Os2t3`1{JY;N-%Ii$%v#+cZy zXXbI;NQT$L(H7&7At`RQzyv?$8++BTtgzlG|>_q6#&YcI;hOaN$ZWl*f(adfE_pR zBR=*n(UlTivvAg^dhz;@DX$K#)RRKAD1}a?qDMeanU>+}NPX;6EL1%V@BqZRk|zE0 z?c}^OmW%R1W}?JNy4*muBtU<$v_f)Cp&r^5P#&>v{|&ZspYs&h?lQX$qA;7rBhX}< zRQ2kv<9&U8yyxl<(wko5DxQ@bAal9tr$W%(>Ojv9)i{SDzRB4b9IN+R7$$W*4%$c1 ztekZqI_vrK_5FE={m=)ZDjZw93YDPR_Ijia?{jVmH}s<#4ROO`1(7f~or;{L(?%tq zok`*Xe(5Dc%lIMbYsB+f(v7Y@Ugev1P%KXNwgWcdQqh|oHombkA_P8!5Xm1joFFbo zohf3fw;uQE;X*G7o~UZv7D$Z0#jv=iqko^rd_BYDuitYAmRLyF%WUX;?%z$<5dqPGB+|Rs?yL5_eMVWD{WUtwvP|rLYdC<>o(@>dQsk-!S5hH?yYF@|IMBtb##&rQ000uqCm54USM4V}?Ukl)QDB4;8duauO}*?qif&u{d=j zTvz`vQ#fi!7i1QZc@XTn`Z^S~&E`YH9XN54UpJb<4TKaJ9C{;b`OM z<<*ljr;=Plm8&UNjAVZ1w45L20&+3((*nR_F}_LD9>X-gbHOhk^|W;g_sdGpZ+k^o z5qAp2BJL$g0`XOAVf{risi2EPrK1$kW=G9JAJISF?a^0OUSIAmA(o zEIoVPye*fjOxvqWeKwpOn8=+`e`DC~JwQp6Ii-O*iCdX3j^oFzb zM99b{VF_}bf^tq8f|-dFip_brFhUQ|2!;qY1Q^}2;wSl@)xJB^c*b_u%FUS=Z4{*^ z_v2E-Q7IW%Y%gKhKv4}93@qFi-<_-EuiPgDBsP6ivHvVjE&5BRP^am zyYJxt^f7cL>gfGw3(rOoartaTe2*OGz1jutN>9`BA+s%6SXdC^)t;>II+>9_o~OG) zBvDySaQb~f$*0^r>kGM+=yP`eAugV z@O>4O7V$3%W&O4pSv?+oSu9bmb=a z`y;F0&6QMRx@Mc1QP66Ver?^tl9=^ehw0=g2@Qv0?xhg{epT9eyn}`b>yJUjy;slA zzWLOB^<4sx)vGA9VB^dn;EW#NVz z-=l?(q*qJCdfEx{023n~%rp9GH<7xzMANj}F=?g41%lK`M7yacq*4;K;e#w{XMovUSl7>+9RJPB2a0~=%c=( z5v!}itqGdgw$20UkLh|2)%R>h6N*{@$0PL~jGJ*b|DKvs=;TPQyi=(>8}orT=8VGk zE!2w=RaCo6%`+%B(kqn#Gvdp0!xwSo9svaiiaNioO^ur69L*u#jjr%Wdb^*#%$pYk zpI>g+o<_y4KS#e_Un;*Ln05ZRTISzDHCBsLU8Ly8_ZT5hsWu2cWB?wshK4@mFLxd~ zx+-mymqvE(c4~MSju^TexEnwTOArj0cAxdv-)E9xx(nUCRbQ{nGhZNqy{WzP%l*B2 zZ1M(LfcESLotDH?xsL>|E#T!*H+Z*$JOLJ&dVE)wkC1*?C`7b23P3C#QVn0lcaYW0 zXO^LrmDI&ZUmM;Lh?&Y@ZTycnjvaBWL% zYw7V})Jtl8*;(+M3@Sanblj zNpSL%_{@S0tKl;K6Wypux^a^_z7qk!ti=L*>Fl!b_l+g@lu)%)8Z9`gEsJWJ&wHuc z`|)F2030kGU;lHQu^t1(cGoFw4NyC2^BA>gi?jO8|%ry%ks#%;QZ%?;t z-?B+cZ#PJ=!F6D_c^A4dL^&E;xw0J8lgSHx|E{7ocx?aiAukIFs(l3ru{LEWJ;r^` zIlJA=s14sL5b?V1EG!1zvqU^qHI>*-7oj9JzMh+%~m_`kw2|QScJ>A)F%bg;9N?1?b({y7Pe*`^U=8=F{5}bFzb;JLlU?#Q$qK%JMYP;JG#lg$$~Ht%l)Qr z^=gJu+CWf$r*(YZ&3l~Q)9vh$fpuALx^FXc)=6fezynurtm{wg`7IKDdjL2RnYfmw zI@WY}xv&iR=ApJjDgwI>sq%ps9B1&r(L zSbO;}yX|=suTyg0!NI@Scm^tgs1CR~m!n3Rs&h1Ahh%ivV($)eUJY>c=&eFRJWw4& zu2$R7mtUuhboXtckJ-;^cuw^2;)FT&?kK$1;sEcnL!G`oW8Xowpqz}@>D?23Nr!h# z-=*W}Jsmf)e$N;YUlW2#*u;;4t$bSjzO$7EqtECtoOY_M3OFPqun&f88~=qh*snI3Emyszts4+@+^1%S?uJ58 zAfUV75{TXYD-$~vi>&mW;xf0E`^zJxg2{J`@)?(OK3#OVBGSTsko7DaSrq4*ALaXb z-l&vro$vujV@af&LcMy+AjtH$NJq8Z0e<~du5L=67$lK;`H8vBl>y0AGe3JE?PxOA zrgo65?LBz53}<020*A8(dVV|}AefFzaopbj<-$a@;kkHMj%UE-p*bd@-cW3R^7iw< zK6Ck}Bkp@1VCkj}_Ne|y!SZGQO=#mMUDi{q1P`cc2&1$zyU83=j)q~pPbjj6^pju#ai~a!$_@R7}m9^Z|7T`R_O}T%$NXIzsfSj z#ZCgZC;&-n4|v54k^F}}9Z4h#cMI5$-FoXeUZsDhx>Wm@|oaOF>G9MsR3?k1<@@0?QIyS|ap_dE`BnRT10l5okM6 z+22u$SMji?h+b8|)9@IZMfZ9fRgzNrm=(T@k;46Q;7xjJp5iTvV#jaMFoyNAH>qL6 zeCU-~7Fl9ehZlNSy8uz)YU=jaiTf#LzVKpF5LVi%>MtswEUoRuzVvwv0zy`|2&f;PTZfD<+Wv z=K|lnG3Q+{KBxuGG+RgUhq(l43KjRrMyL>-`5;wfLq1OKU%s5B&?Op&Z08?D%>AI6 zsk+vcXs-b}&q8w@;Yp08>_S_%(=E>VotLpKVN<=8^N|7X!cF#xz(lTwJnqQS2HQJ) z3m|qSM|IwEORnpZunez@6eV<1RHoPU*tZ~F8__g5jKpT|B*j17o4cpp^&JK$2Hl9P zkr#}l12Y|lZ-=$ODi<{2c>hh?AR}+bb@RxNgT>^LvwxZK>V|=`7bi;l=ozD& zn>cDsN4aNGlA7Xe@!QK7t;s+Ahqs`=A1OJn2?<2x2F*$Ig$k=v-`G&dd{D@qg;3nO z#g_B@7+HLhN-XkBLYh1cp<riEX&_fdf0#uPB|V$+fZMKcVtPHk?M% zkAFi6&ezXhFGysuH|JDNn&k29nd5@B$QG4tP7)JuGh5SzQ6s_fG;0p_d5f7LY)AjXco%#n40(DqwT}$Zjv7M`JLjbG3*3@Y z*S@Ds6|h|qoutt_#K8IrI?Q334g$Jc>w14q&b`I%7De?(vc1q-s0~5VdqftSgl2KC z6G-OI^Wd>eH_=2%6kaS3-mCL*BYIwMtV8G3^lD6M)40@qbWJgY+mR}fYPN*fWRYs` zdJ4;Z=jkiidVfkwiZ(dN0ot(Fe|TKO7n~?jWHx@_X+M*kL=H)st6^zKzdtdoMg6$i z6(M+K3@ZMNc)_A=*Q13RB8n}80GeNS+(-aEpf5}WzYyhqK zv?zF>xiA7YC9a=OJ>U2_RS2sgV-QKv>=HP{ zpBO1Vdzoxs#puy$;QrlV3@X4!l^TaA&NqF7Sk>9F8^EaO0&FekU;F`xIc8(c)2U;1 z$}R%EiLk?aNIE(zP;Wt8+x>Z0yOZvJgdkULrYn7~k(+MTZtnc|C53{WasyrE zz$ekDCzJn@-}gOZp!y+41Ih#M7JCcY`8tz|XZ_csf#%}z5|2mf%wKSk@}0ijKx>El zFkQ0WS~2{l&K(DHWu7O59lp1o?%SpOG6Nl1xyHMw`EIdm@tjByY_Q&ggV;58~*4Ad@T;<#W$w>UwJwYk}PN~OCicsigZKZ+@kYC^|sovpv8{)^tRX*X! zxA&clULM*~uODwYA-EQK*1*DXBPeZPM`hubCT16%7BYxEV=euzjFDi6U3eKHoE3}B zb6{!{Fm=;frhl4&E|UVmp0If;IAs$O$7R80NG@(Sx)m^cf%}WIQ0P^&drM(3NOJ}?#ZK68 z+UD#!Z`8yq04hOm^eUq!4WKx?fEj_=nOX45S7R|dQ&i}uGf5RMNh%g-k^73L=E6xS zX=AmYsh$PW3H&*uUMI8m51(I}8|DJ0(R`DStvprLBDuIZ{a={WBm>pyN9`k_p%R=AQ5!#@+M!hRf?#&SJz#`2FJ`BexBSJ)DbK zZSCwsXGKy=Kgd=q2dsGgIE}zd&*y{7eY@XE_^%%htv?%U*uBn+j=8&@zt&h>r`u1L zILe$zulo|n?UL=w=GU#zOF11?gvs-42He}D5n)71duTw|+NB7lt$)}}CDDVJ0YIt7 z)R^bJDJe)v_im2W2WHfsXD&5D&N?sdh?Z=y|A0S@d)qabOxgyfM%qmqz@;yr8 zru~nX?y)If->{1>YmDoT0A^rjrln|2vd}(j_hSlLtIo7K*S^SiM(eH7_D%Q}s9KLo zgv5di_|IkIVZc(J1cNCF3j`D=n%+Vod3EE~(Fw>okep5RGfNOfFiO<`)xUj+OTXfF zPtyQ6cCxxZtQQ(Dc;mUR5l+l?zHA&yy=i#0<1sE@Qeim=n8f6H7~VqM-bc75XZFj# zVx7J%=I#DyO43|htkD^uM4d!RIpg%y1Zd$gYb%QQNNKQyn4T22rSz@-J&o?9!L|qo z#{{__*b+3BloLR&>xnUy!;I~5OBOKCE@SP(JF5c4Hh+uL7 ztHo0iSJb{q;Ej!?Hq+LAUAtwVuV4AipeLYNe0r-l`ebdpQC$_0v zFd+WdFHy-=atJhN3t=xe-#r6x506Z`)O8)6*t~Lr#xsvZos}7**LkweiAbcLqNipX z+g)ubDz&DFX@<@%3bV+y=Cn1s05by+giP-FQd6S>2FuThc7hz)ztyl5tR|<%JBn!^ z^><7`%d*%5A!(uea)!RLsdLCbbIR&JSIfVrlE}={&qptxwlbjK>fjqB@X(0dwZ~&| zHqX15Sk)~S(K-E#HUDX?t4Ac)*xQNvSIV@W9G$5{QOUG!|Lv_KlgMZ=hXhsP%(cXx zIsf!3hbP5$1#_jv&pn2Z&rjXn95d;gW^G|d@vaiIQg+!d#WI0lv}^+vX(w!&4`X(h z046MIcX$as@|tSDl;cFNuPQDr1;Sy6oC(6_g7;aWu6f`>(i8j1K|@7@=iIoscES3W zbVn6Z#qghb@Cs+vUYh~X>+oGy%$gsTJsE34@GYW#!rUj%lv%=zzJ)Ss-=__uPE|3l zYR((CI{I~M7UrAf8;lKgHr!A+3Q3-37{QgBs!({cFcK&)7MHvEn7ETAInwve;TDQmmrBxmlDGH9Nw?HO z{A)D<*WVJKy_C*3+W5jVlXUMSklxenB%bq{$!^bf{e?Dapj`Ne8gNGMd^=D&uqN1d zh!!fSj&+ungR6`x+Y^X$VOk6MwKpK2aXkxqayL;_@4{cl^}Ef@LcgzL!Vx{Q)bl^m z)_5d8QHy<_Jj8m*Ax=l$e@pzt)_R1|-pO`4xEsod+JX-dVci+>#o16aJIB)|n|4x*zT!*!U}Ofekd%-<9kxex>=tsE6DBFHwVf3P z(zEmE4-~@lgR;r3*TUBNr`cW-zSZs!S@xUssJ4Rt+tND8p6PQ>3`wW8p~kOLFtz%| zz|{Jd$P#;_yyK{*S(Kl)CMBEAK-2CFY9t4`Bqj`%dYKXl2pS#mPm@_BS= z5W8m7XaxOE=Z0NQHEh-SJZG#>3t8@>vIvh?QL#=4R}kOy3sNrlhd&4)ewLAzQrs0z zyO!LCUmt|FiMg5l{kPO%@pQtzim{mWv~9&vYSRvz(oo#y$)Lm8)yR7CSuab7-@T^! zIvEorIj%o!>vGtcXPKRYZPawBVN>PYn;F>{%Bu{$|2VL^s_BwRr<8jaSBq*rwEcuA zXY#mj>+98(HJ-OXS$^zM*A3P*>B9Xr87tbd+7#^hmwdlMUGVicjwb!oY#ZTC$fj#9 z&3;W%*Feo}2EKc_7UQ$Gc90`9_dM3g)_d1k!56m}abtmZta}Zi1g|P1Ac9kCr2w6Aj z0<&q>yM$$`=T0(4xA6v&a#Si`ySw5@9>!m=(K~Y%L#n-@#_N!@@2Hn*ER!Z!Isy`N zBZUHMT)iWCATy(k35xFz6^B@pJ~ZYp6P1kOT5I(w2uRd0>oV33fBlJ&b$z^TIuo0w|qHDPg^y6zl_d(4XJNmVw zFnnb5zB}{P-}Qa7pPfb~Be309Kjf7DG~1WP5V2Oh{Fk7QqTVy98Q1FB8hlfnXUkFg z#Qf=2IIXz@JmAgr^5lDNY1Jt|Ai(=PhG3_xazi!E3ULIZa-Ltv=oA_4+Dn2I4$GED za2{UzwO*}9zveA&-8Xj6w8%74v&Wgj%oKcINPF%up>ksWs+myX~|p z8y>%U7;uvjT_{*1brd$>HpfZj}VO`@rD-B&rVq3|o%xz_Y z$*pg2v)|d{0kjR+!i&WxG{l`j1Kx6<(H#Q0o>yR0Hb<17~%Mo@oroZUi8287 z{g-ryxR*A<5E?qdgwxA25FwrBX{RvBV$t?ZP1{o5$}xW3MR`97<*+;Vfa_Qp!%j^% zKSm8`izrRLFAqxehsP_<`ZIaV8SY{s>v~Qgg_L(fFxfWpKeBG(t>vEzA_L3Ty+4pC z_2GWWD+GNnBse0GEFTPm?_9aZV++;Jv@RE7PhoG7ki^TB2B^~h?O~c)?)}ItWM0p8 z>86<_@=T^Mv`;y1MEjc{m|&7jsp#lCvHZI#-O;ywZojHkSYI!4o3q9oam03b+3#7G zk00^QR-|gG1QTs^Z4fw$@vNPx^@WX+6)^-DBlN57Y_>{mhQGklqj4Q54WXHnW$7}1 zsjfL*4g6IeG>^-uT53-41+rE;ZfYkaA}T!*{!;OE3d5d7R^3*?q&|UViy#1SsQXk@ zvLLmSkyjWIZ?psy9)*qY7)J0;%FTgcI{QpnpZUWOQir(Xer2t= zI^FrxM1O>T!;;!!Oh=-%6q1XTuZ(+nK|HFYs-C zWQtpsqsS|9>!{J(;R!#s&;Q#l4X9HtBsDA7C0U8^f}NUOgXZ1M<=6-e5UQJBV&HrUTyD3JnD~i`tRXr-nl91yBR(4KkKENOz}@UW40{` zPbGN11N#m8+B?<}LuA{8aqiw1r>(ybj$MQoq5rVBi8icXAbHWXx-4rudPtkjuc;&3 zYOwa}SZ%n7^KU<|DCEH*=5ZI6IeH^e;*XO-6wyxeU~1~X&`dNqkUH(9a1E|ZhaluE zW6Ad0^$O%{V#0RagSFiINAB6jIL6u?v4~aw z;Fq&eLo&u^c!jsRdnP$KT9wgPz}IPKS3`%N!NuX3MAPm^G!{>~jh${SxX)?R3JsH- z5ukpsJo(0dJOA?H73b#&-^)i^l&Z$j8<~MLo25rHkg=em987-4h3m|;ceWY#@~#rB zda8J5RXk%m1w<99Q7fl`&8o`Zf3qdx4_dX+S^W9Se<8fJ0mb{S+NXp4P~R6#%CG+L zWr56FCCs~FYUSJ)-SkJXzZvS}#vDU_g9QdLJk@FW$?*}t{qe7&zXDmF3x~}gfX9x8 zJ2k>fR!>>KND~>j2nG=;4pggtogoO2j)hGwx+Z~!?KQd*fl32`4y8A=X?5h(Y9;N( zs8!_esPw9$Rj4KtE`7`%-6NZ&1oP6AcbBHNd4&7Kyr`OQ2Ra%!Fma1~Sw}^9g52YO zzN9GDxN|7lb8wm#LK+PRb@hR4dO3pz53ViwA*+5ODaKJjO!hcK~HJUXAZuNz|QL;gk~R5$w*JN*}(#ZtMjPc1a}7l>B8$;{PlUYpa~ z-MCi|f&4Fb9Goad84WQ6@!{DOQ~c`6KP05=zn=fLaeNayGos{Ew+~8&QB!_M-CN6) z`Ll6x7=D-~9+Ya*bojG@_wt8(E9}?q^+F3r6d3-OM2zozy6+$C)QhM`6S{hUf-BQ? zlcb|#-gx#5T_jJ$_(4}XiN`SESnO!zO-LV;=G?goO*WZ9?`4pE*HoOs2*oTP%~&7T z=o~%}StG$lgK|8s@L~e-U$sC#W6zla@Js{=<^KR_K$gFdm>eBh=kYp}9@U}4=Xm|C zw!1LT&LMf6t}LdJE(#~mmFP*Ulbu~1D70C86_xX z7hP`LoA#@x9}_BwqBtvA7-V^&;5LU^+}%_BRHVuui3~} zW9RF=qMM(J7X6xQ=P5H+pg}t%TO`H0c~}-Oh+tOr+@uv0VhjHM4tjrYDy>KJAQ$ER z7^1(kDsYxGvqM^1?&ig8s1^(Q_S1Fp=0b}Gg+Bl1M0?Ls?_NQh#aM@_$DK1h)FUUJ zJ=Q#1^W7HKTIN_4IkclqQPzFqxGW9LyQ*TO}VDUeGz4pQpaA_+4?xbRq<0_0&MzEJr8oXX1Gu&Oxv?T$bS! zpp$rcOHSSrV*RoKu!p*GE@7%#6u=DI$PC1igU;DU|6=S}gl3>);DmR~3ShE5MC&;@ zN;KZ}Ie7;%?Qv@8I+8&X*@k)mLGlD7mt>t0u%t~yhX_8`G^J}AIHZ$ZPGRE@H4W2`d}?fP!|s;KVx5n zl6=TkiK4|jb=Dib3ZngV6#1>#5h;FjdhG~RQ|(t@1O>w@HG6_c_XawO>geGrsXEoX z8Dl%N>4^`t2fZw4BKfCqRn5lvAZ-rhSq}ZD^2M~SMM>4nvyMnzP7Jf)djZ1 z?=AhBj89T=R>5SP+pxdwZHZ-ih|8a~@uu{$45@>4sJ`8+)@(R~R=nlEI;Y`lSC=Rl=5KsUk~?d3d(3>?Yy!ti-q#j;C>psPcaYHbLUN- zVE~nL4uujlUn5n0y=ipnnxyZ~o95O`_h56eL+H1850-DuzSaN{ znzf!XY=w}m?*dB9rj;@Wd;m3>`x^-I(HWa_OiIln>O^Jl%+*_I)yjTTJ4f933N3=U z(nHCabq2r4EC!H;O8-p~l}APO#{f5L4%)c^d(D0~7Oj7AcvYHK$2nhY5Q8wcf3{T2 zHcrS}V43#hi|tXTticUV#z*IDmYBwhS0lAD9PZU_*N+X=sj59yRkK%g%Bt4Jq_pO+ zUSx8o+ST|`Hs+=|Gg`3_J-_AF6c+qnX}@V=|m6Gi#QT5yVb2hc6fBo zW|T_;$$6+FBAp0KS%s1q^oo_8Fb{LL**FhiylcCuKo6KQ#JF&xGtf|~&N{Q!7gA@? z{18kpJ3$!W5ttvHwRvJ%2CXX804*7;m#u!SH`)`~hG7`&rOdTmyA>NUJ25SKAr6&` zCtIW$`y@;6_|ayG>TFovt_uJ+-?Aih3r0MKC%r|+Qg~#^LDxAelg-B~k|crEny4yo^0L_M7aicW*XNHD z0b16Ne(qUfe;_L_cK z8SjYVv1Q(R#gQ2|Uly((3A>{{&Nua5q*w6eCF`h33p{E|vD(Nowd*vS}q^A+88 z^BW0mg=*rcCsnO<8a@#-v-xdkV2UwU8zY+x^?khix(^~dfkGU*t8%Bj`5ANv&R0!m zbk0Pr*)Rooc+DBd$os@F!|*0{R4GfiQ{v3vaE4vWa>QX{>v+w`@MgVnui{4&W}-}& z&LEmUi0mw%o+{h8?$WugWWR~=wMyNg+JAbP{y6EI4!)c4$k458QM#Mn{64jRVwDa* z_}WQcJqMcg-Y}NqP=V}H?4MTDqxx0ZVbW(v$_p3TU(c_EF;uY>z_ zq@45h3fmJF?1;FshM;R!XS(S)M2zw^zaJ-3{EIVE%P!s?s@`H0?#b_H1(&O3x%Z#rGQ!GZ=Gll%EuAq*AyI%3_Lfxj)+1;52Wt)3>==h+tn zvnK{-j-_cQx9Q1U^a*X)u+$7>HXi*@Q9t>Hi< zH9IH2?$J{OPiGD@PuBT!&gDB8Z2~#)|M1hHI z+LX1Z$&+hK9(8~;a!c;9G08*1H4@!Wkzo5q+bOr;(b_Yot%d6pdMCk#z96OqWodid zLud8u(d0>M(41Ys%@pUf&uhwxW-_#9Hn;+q7WJ!oN6p*=5>1g9Ag!1aS+nwlWk;-7 zJSexUUiQ)uhsdKl_I4^f^6hXPc5lBjL7Y4nDYbZ&IGma75Uw(TX7Qs)a9c@45nrt& zua$=v-XF{J?C96`iBX5!4yt=rP;Oa>7;(#Ag;>&XCgGtS^VL*%)R;sc!bgUlxGkYv z0~O3JoRB0YuYBe$lCp(@9_Q|X>emv@cv_qcYCC%AdfV=5Cua^$DL9#<_TVS z;|OF57iXXnkUXQLOQ3{IVFAt82%H_8_{XYk+I(7X$z?&tT6nqhx;`JJ~Vi_NS<%NLwz0muY>2kIrDC6&*Z^o;N9+$A;GRcB2-|H31n#XPlk5B*CG0LO55RHZ-ZD4I9P^ zi}L7(#5? z@l==93=qVW&e_}`Pw@OKQ0B?S>O>~VBJKdyb%KfHesdA5jlKTAX9!KFeY_}qL{SgA zK8jA%Ou3-=JfHYTS-QT{S&dnz3+z<1(j$`!KDHHVpD@)OG!Yfdg+R+EI(+)M$oM!NOaC??$h5ZtlZ^zeA z2JNtq5_^~RE4|9}HHdk?S6|n8Fh!f5K0en2+e(FT&FVgL=Y%^MNu}?a_-3!?fx@3Z zE*VtjcBW+>LN@g$JKQWerux{anPylVv$7sKnVr!h-O$}RnHO$?831NAdvy(e5Z?Fc z=W7ANw!69uZ0>dSCstcORx-LR)bENmNAK6>Y~EBPw*ZrRvn@x`f384k@&w|5R_6T8 z6i%D2i}Lj4z+b~&jn*0m;nMK9$w+gmeme+gNh>3~De%=dB0?jpbH)~yU8ERR#uov} zGe(r~7ix&|wXABSHEyP$SxzlY*RsCuKTIO`=lv&4E07=oVKaq4^9qcw0`!b+`vaeN zzTT<+B>(H=eN6!8FSXdKS_tzDu)vMGn_0dqzjHb2WkIqihx9K7OBd;3zP|*C0-Gst zl5uAsYvTorA-^u}*OhY4*PC4DRay8xka4I}GeUalj;|)0KcZA9PmE}%UnAu`8=m|7 z-OHu-lGVJ4pVcIx6PH=xCka+NF1mW}_BO5!++>H&*d#Z%Z;@ebGR5dKs11}n!~7_E z&hFO~0or~|5&hh+^D?TC_On;&p3Y@@C9W;}V&>G4PL%L`?JUff6$?qxS_}?0N=&jU z5(t~rUDmfhI9%#Y5r=D1)SdS2Mb%F14*j&Z6pB2ia}I~hYh|Na!FXLr<)M2`E+f9$NRPjZ?ztCs*D zj5=o@+>4u*r(K&F!?E}K6p4kDXLx%zt<@QNsj-;F0%j8j#pHy?Tk9FUxJV#t5H3i) zSS0H__i+iq+X*Sn+JfFYTwCin4!G$sL``g05t4E}#)ugi)Ct7Dx(eEgOhxja4?m^Mt)ELGO-s4$KnjO}E3VE=RSkb*VzM`BiFLr>atcN~DicJguUs^{kut z30hSZd7W)d_<9ATmvhjTO!6z6u{2s5zplMJ3b4Ep#rh>sz-fH505!O%dvw@ou|uGA zTRFs+YhW8C!+e~Y`S{2I?&p5LsgkP>mdl#0d<$%5ZM`=6q+MRwCL^khT~E}svjw

bd4(*H1a=cegdg z#~JjS*uLhkncaWx$k7r9?Tu;8Wac${OF^WObGAFd*iE zKmSiSDM!kbH1eK`tm#SOftdJZW0<2JPEmFcOutyTwOh{oWH1B&V%t>eO<&PrWDZ-C0{iDcwnNUSq zDszxtk+yF-=CP*x^Rh=G83O5Yi+QT6^GRl%iSoIwPQ9f?jYTQcrStS2A?7K7V>u%( z9hb?;i{VDq?ZB z4RJ*2I>gaZCb9C(Pzz4r8zyHx)o~GPg!jNFU>6aq9|&OBhG;{&7o#nZ&NmsC45a6+ zGfC1ZBUE0i_V#i|4dAs62`Sz^52w#X{KU6O2(p)fakOv)?0q9Te(&inwX9 zRFJ;mY{Z4TP?QAgp@H=6A=c`})T+k_3q_}}Mj%Mv_FK{jq%e}5VNr#!Y96cYB4$wO zfUvqCCN`aQSVcdVg4i!!K~4=8-WyYliPw3Xm6W_<;mZ9_8=_;ytYR3$g=W%V$D>f5 zj`k&9+>%Ktdpda1Rz;7M?&*sc1kXztB{t7d5HwKCA%-$x(OJ7du4!9z&yWvPP%Qd- zKbCw&pszDg?diNuYC2l&q*Vgv8Ftcew9Yan?p!|b?y~57L6+byBf`zEI81Q~R?3V6Qp!XxO=B*9moGB^b zRFgpO)G`z&1{)rq)&mB4m143hHUG~zT>L(|7u@d6 zQ4*D_n>h%)jjdUXLy>>mv^>O}ohsv$HHT%b-t0-aS9Pv-qP#nOe=kUFX@eF(rurUn zR-Afv{lA9HTbE7iL~CJ=_RBYj2^Op3FUzmtVvq;w6zxWpBBbX#iUoj?5kxa$7`Jzms8snYV zBFKp|;EO4O&x?&xf)Qfu#oDBh0&I0aT~z6=XzghzNX$h4d7f)yIlLi~kK5i@^8U(N z0OS2l>C>?;wQ}vl>gf@&ut8*K!HLifgR5-X z!L_Nl>g>N-vg4t_{tU%JEtf}nmK5nU2krpAQEW^eqU=_5)>N%k%H{4!DY14E_-qm6 zEKXEpC?7y>mJ?b*`k(bZTy-%vf%sHZpES9EREmS79hoYNg?=R=tFP*^rWbN7<=*D2HryBd&YjwlljbV>TL%O0`+c(>oD+hOy#c;fS7Vf!(HOdHM`yM{f! zA|HS-28^y)ynS*U?>cAOr*3v$^-#EH%`<{UMa4MEQ=v7H(p5fC2;gY^`;Z<_7|$qu z{6Hz7(PAO=(N3XWbcclF)FBl8o<^@M2E82V@mOicqTb!<@yei-$N4V3%XBF?^V^`2 z6_H-1*Ra}*9Oky!i`}6`Qj#wOi<%5FBc)HHrKF%4VeJdOsymRwqtqpse4h;IQu=(qNRn>L zgk3Qk3h4`$cc=>_MNcv-Na^!_rGhaO(v{fgsFdEajgA`W!QedtoahaagYXs;y@3nO z3$KjcfTh496$kkqVnw~OW`Lo%m!y=UflZz9 ziookBf`1gpgzBOBFE&;L6`EH8$!fs@0`)CBBGe*pHE$3x!abZVd@Nq8`izarMa+u= z$ZvT8lA>8fMMTO5J2mXwW#WXtdXpz&E* z_t|@X(u?d7)nl#>vPVN5vEf8})I$$Uti{5gd~ZP+X_p zO6u%~lTlU1YNdU(()_wmPdgxGch1OOk@gk|y2xsOe6>Gp8PS3GIsU41_Pa{g6;@0mkhFP(D-o@eO4o>^l4K$7^of&8u=<3XfPLqKUc7@zcUWx=&%nv6H~ z3P%O1z2T*wvFzcMHh`ARsMRTb;t{K-!9d2P*?0saeMx=NXE!7^|1xp_y+KKs^;JKu zTDAMI-^kJjiyEI7i**ibYPO=Al;w zil!PZC&YwJ8XZy0*3Z$Fji?X5i^;F?HD3=x&LUGSCY2zObeGoI7wMO??{v6%$ZUC` zq$smxdg8U1cu3cvc&oGYeY9^4{b%aqats=vAq#(ZW#mt@S}d45MoroRgXT^zD)YiE z@zU{Z*aN)>I2aP3s+S^biJ-W&?l;=7X+9&G_wp5YE>aqKD18g3=#`50xw z8soLMZ~1xIr&B;-i`9-p9sH(PQ(zQX#tjm!9llApc{Up#HLcC33KYVAEf!lp@hM%* z(M}~+(-LonJU7#4iDHXDyNl?<7FwPJE$n>bGJrBuxGVy}7&GFIk4zzLHArtoRhV;VFL_fU*k3(73Tkql~3 z*s;l)!61EUhh+g0ybFz{*w8l*5rxj%@_I=diKkq`E&=B|_8FP`rt`KeT=GIcR~8xs z)=j!&YiQ7!h3dR5@aMiO9M_eMj~{DP@i4p6dHY}}8|^(ceE{KrDK<1qq~xlz_W5&; z;G)Mw;|Y(oDF6u*b?eN1avTy@MhZR9u6$FiT?#DTDRx8lZiIP@T3VT1d5YfT=#dSP zjLzJf>d=k4Bmsz%K(`!A9JshJO?BrITEZ3!q#q&01z@P~?2Vd6tTUN;K5E!mT1d2A zr7`ubP0(Au^hm2zbW}-)sN{S!b||J&$(sHxT3nz&NJuAI~<3&&DTV2mLn%> z1iHTY^R#8ga?dP+b({pL$ zhfv4xG~n-T>wacfK|sfJ6tLfq?YN{G8K$aDU1fECtv#&dvq*qk5xRi+Ph>Y_J@@%T z(vj$y?W{Z$p;K1XZ6(YP8+~kItjrH7V6LwE?QL6%_mLH4u3#wFX!=T+P4@Ze{%|%K zz@4eZYuS@?d7haP%X9!+84!R60;8U z?Ix>6xvU9)gb`MyJVwo}D%ez8&^OmetEvJ2`P2R3T0y#pS}59C17%&*Qz?_zRvvPp z-Bry3?W@4}C@?+>P<$Jw0C1pmflY4pPBBCQAAuw#hMq6Pl$R7@_90eMQ4lM0vh&Zd zsku|m#-wtxWX@U!>I}ky+}tfw)DUJ`Np^p%g!$o^m0!U{=7(f_c#&bJOtzBI=k7AC z)-wj{5cOF4%un}+YXQM8s>QyYHBgrB3%$>?ELf#GOCyWdYW!as$#JT{gcB;=}t{t!22PvyCw8zoQkdPbs3}ML~mdO(e}mJluxfL^=xXM-KTCoU+gN-*lFDqmg$X zw*=Cu#1W9E6khN2g}D%XnYRaD<}Lk0NbW{R-h_}>%HCx6Jgk+8D`757MJR5v1;=XTL3o81~vPw3(pn?3jEcsjl3*pfc;GUk0=9IJnX^R|5DcVxr5iWx& zK^abgS<_VjjE}-`o$r?`KyeiaNN-`m^r~=3tvbJbIbmH=XPK$5r#ub@CDKW%OdH;JX6?yus`agRX&VDq zWB>`Qg|sM0N@DELXUvu9z89l=-^)Bz$s%q=%B5&q>QxUOybq&?-_2CYS8X$T zlJR(dGiu+a-_o$2a;namwe{ztHgIykHp=sF%l_fhfV$Ra%_>(t&dX{mSMf_gQ^i?Kt8Bs)3R&`~9C;2&`r{-0bIOCU})4d{v zGi(tOU_9r85;ymW7n7@fa&qIi@@CYrZNa2LdhO$@%-}Lkk@i&t_OekG5$#8}{SiJY zdoxTKk&`}ivXk>J<$TysXJ3dPxOI4mEY-uUdvj{d&e?|?)Re6UXqb$~G=rVtR)$nQ zF0J2ct$fHDw^d}+y69Z^t#Ug_4`)@DoQ6boXP(6q*qd5w{mf~$3!KrvGKQCtKO4zk zMG6=3Gn!jh;kx{s_IQ;w9?CC2XME+f=W{ULj6rd{B9%z64l>sd(E$$R3qpt%IB;IX zsP!l|%zI?k()F>q4%=#u;aR5IGU8>_dvnH(zeg{c0rjBnS(Y70jD}&jInB#%^M0gN$4v>M`PilBNCg|% z6pT^~8RZeswf{ORiE2Cpo@`th|kbajC8QEsQelQ34mI z;&llb3o=HE@FV(X6!h`cg>a>uq)so<-Rg9=tkd48FkmJoPVRK&be*$mi(j?H&)OpK z$bUGMrLW3Zb^H%o7r%*oWHh&VRtq>qpggQ@k@8ttu`?s)tbC5YIODGzhSWJbUJh9v z=j@=2>}B+?637T&8SyK_ZDVj7ZhH7gPhS;fTcCuGE>TAM%E(_63jM30q)% z6aYxrX0+0ZhCFSOiA{j?dg3}ItrjPBsuMMlAmxJ2+B)-f{8q`>;!|ALWJ>??--XjY z^}u2((NJnAjz)d8uC5+5dK1nv5MK6kfMDf&Tv_F z+V89sJ329)Zk1((g^-F}+(yzB`)$kREzNiIMtUem6jOM@!)+w~L3|^26g>Gk(Ba?& zd3nIG6rXN8 ze4rMCMfDRiS$eK>=~jfs-W`F+w%DS*$b4aI_1@V-#P@M=3pJZ4Dx8BIfBR&VpbB)dUD38WsyuG_i2Us<$UFx77sNAkq_iLRs?m zJZIU4vzxg0&7l`TeNAr{UKs0$-MMEqdV4AKwQ55XU!3T&2EH+FlzU5=$fepe>Pe!; zYjUh$CX{~kw)uJWRX*o5oG5GB-G4;!X^#zlikJDE~gUs2eN_Mmf)8T{FA%2jkcKF-Mi^7HP2f;x$1 zPP6qZKxoW*WgSbY^W;)f*NcONsn(x1HYP*sO^an~bJd3K0a~xtu{7}NRO42PG86i& zX0=6&j~Vl(8z|(nI+*`zT_kywLuc*f*(8`RlRKIi>(ff(oN?PMLCcv|KAe5_&YZ?T zqk-sZ-AMb-M0KfI3tWLUtJhmlnbV&g>RhpG9MU+{si3aO1;M++R=&gDm)=0{#})|* z>4%z?oA2OFUL8=e?Y9`xy``j# z(DoZ*YUA80BwlU!q1LS@IQe`uoi#--%H)1Y@}PG@`#sX*IXmSG29BB1oyVBS+OTS& zXbZF8YV@Y)*0kQOQqhR!xh@NxM2L(*XPrJzfBagq2Co7ZRkfg`krj2-UbGQgMod7_ zU|u9BS?JL~y2zrlHquv^AtkH6gm*GUtQLBdXCdpX4VD(_8mdBh#)Z=!xO^GG=kj*? zCh>LtY8dV@{mR+#V5WOam5^Eh9cPRJXTcz#)o|r)tn$?_WNSEdniY$k75Fte>%0S& zJ_E7Vn)S5sliZCLY1IShu9y}&ye$skwNT*gr(t`TRfN=$Usa40XMa12z58U@YW6EuWfiy3*=-E9fASv!=%xi9Cg}2K3;r= z`56D^>M#_vvAf;aG~Zok?HCndnmJa5k61Z~K<&{V?9f>!G=Uhb3aR(@n`}3oh!>Ru zD%9)-qp0F?*Y$YG8r33^gXm~E?Bcc}15Z>5Mowlu{!>PnnwD;)58xt{D`&eOP4mGw zQ`Xge#N#);A7!WlJuc}3>N9=f;ln42yKLo%mnk9oiOSkuR>VQ&_h`f!HnE#5qix|7M#YskA7k>8ZiA)b2;LmGtQ0fRyvxe$aR`PjU zs@D$1M32X#sAbG-x2UA3p~R%AZ}M2u(Qj&w1hU2gjp*$;wvLV-S&KcVU;78si1mP_ zw(vS-U%JLP{+{Zk3oHREZb7n$OqbOpP%oliqvw=V)Dr--tV6yKAmubo4nU>(rKiII? z+4nTpwK}t~H-4?!xsud47ES4$PP$LKj+YC7LAgr;ch-r>g!DL(zEwD;kUl&+;l`bk z} z_?YGsUc8R3=Zz~gJ$&T_dNmlsnbT?GStZ)bcs8<}k#u-5n}Of}Wz6+#D)?>O@hi+Y zc@>&@0YHb(LNxgTfZ4fEBkO>K&j)|zz4 z06q&l9byK?= zw_|AG{L^==$E&Wn4ilSw!6hH`q_Z|lLN0ee3P)svmdr*#dYqmINj-$&hBdwE+~&K^ z+Be$Oe3f>FOa;X&5)~DwQjzGUdQa@wz1TeVjU9!=-d2z7ymB1Rz}t*T=WLqaEUfDF zp;@TS<6(r4=|qzln~5pyVa~%9H<3=_CO@BKT>{_3z1##`WPC4`wW~ue)5o}+)?D8> z&@|@EdBe&Co)Eo9ESz*J&R#1T7mS>_t>zt|FkvhZfS@6N2;wq04^LLPINQ?^_?ei70Ix$&6Y)6%G3}~S^m3t`U+P z$I1iVLQ;@}IR60nH^UW?woercq6fi2- z8c93E1yl=c*k}+%uz>UG5_`KJ607qhLJyNM*(Z@quFZCTWCHSj>;?fIRwBSkqo3>V zUduXb*2U&{TvyhO6MjT+*)3s!7~@eC+Uz!{=%8$?ZVP0RVOZ^=3Xqb`7$_n=_IZ9s z_3lHa&(RL>O`pL*rCnhrIH~5?j6$nC`N<6rpDC9{r|^x*h$9(0M5M=QUzVZ*1)ogO z9;Gnh0rW|*;T*Pwev`)VnN0dyaJ0M#EfsavB+^c~T$hv=;7Hn>p<~!_dQhpM7ghi@ zYc31#0Qe0wV=r4WyADuYQUn`pzGSV(VTyIkmt^FJCvk_ZOfB=I2&&x3U9;B?v`yi02_Ofn((josY6 zP%if%E0CrO>SzH$J-*mUD4&j&6B#_g_Sq0IG$H5PeUGdAjELFfzRx3kG#|d253_kI zJ`D;9+l;j`%7is1G9)fa5SWTp7-NC+owYrGH&}^O7-#asOytSvcTrn;vOf^4^f;%eRW21i_^xCpZXNr<3l$I@kiiZ4tSEG|xe>$TB*hxWFO2JObd-tTS+7RI>&AB%yvJYi)RYf;X zVF9d7JVD;l4ysPaa#=e_U0y123A5!OO--Yd*dM(bn89Xk#VNi-YC7voWm)qg(FO?5 zKH0!(NS}J6)aq?>TggG$HK2|<>sZT618Nn}p18CP4uDWo|2AUKI!eCdJp~b<+Ex} zW_U3-$7-G~&CM9iqsXM+tRM{^aoat;MfwBp66Cj1vrebdHkdF`DC2r<6kB-^<;zPASA+sghWtEWKvd|}B_QBf#Td^S2DN}t+@926WN zxso??;6VVGHf0?%GPE;6buEuc&9a4r;8FfeMVA_3$!zmvn?O#Q$~4tPq44Rp1+tTGwh2Z&Xx8o) zr#y|^SZSqgZPm)7J4+EkJf9o3t867Wdn!8uGi9pj^eLTNq@ zH|e2M2pZp>Nt8ZSR{BVyh^)nF1377)e7X&C!)w+DsCL4LXvPJo{4C9RQCfJCpso5C zmaA=PgCE^j^s`xqA$oJFSJoazE_qS)1&_{J0~=2o5qV43SsOb&O{3(N;$ zF<;)zi*!8^8I*dtaEN!i;R}O#6A?);M1l&64!BUEH#*CPINh=#dfv&F7LY!%OS7T{ z@}kSe`k2xulvgflXOeOyTg_e~B|K}xvJNgn*wog5G1+wJ7x{`^)>z!XG0S)M8kYCc}L9GL>1dB6N*2* z=9*WLLQCGN7gzwfJc~(3mEkcOT_<6+Jd;u+`L^mWJP^M9g>Q8(ykqsySwUTkQ(c~# zz@~!UHaaJbsca$fXzn*@CtKJJ+KDyvN=H*PRA!~*NZC9+Nk&8tc+FWo34CL=Z}`xm zkw^z@jXg7rd!f`dPxUC2;~IR`ag(?<%g*1$qA;noIYE{3(g7<&8G^&H&w)rURXzs_ zWYyp}^A>{QDMs8tdY<}?B83g+ug!YWp#-VvjD={Tyk+1fO+<0T;i1m@(xGjxZP*vj zd|r!MRV&68r=|#=u%-^FJn~+E*yDJ9YK|XeX0@N;At;oORYYsb|C>ay<~X3fEEJEs z#%m5m^5oO4MeXGc=ji5m&814(!e(^JD3qr;N>d7Dx)c`6bvvAU= zskcP9x%|&`ymv?!f5X5}31>W>LS$dIYe0x4# zeAsu&D%}e!k@@B!VTT8uGtD|@qHXl3H5>MuGI=javY{ufRP9U1n;xcapelQ}cM5@` zW!)?>YHrTi9OQ^$1+9IkxVVboI@+U!qXXi($xpPO&$#y*ML% zDnPQnHxHjNknyI=7|3`t5hl1%nM7i;&439|Gb^CCf`5QLMnEh`2mb+P*$m2WkwymF z?`#m&qC-^Et;uEE8_{F(ZSl~Md?V7z<|mFd@$<~Mv&qHOe9r!p6G$c%R?J0up7*vX z$Pc=M^vTn_PE+C69Y<>qP~j4#!b}n$NCTqEI&$kONF)S9{%)Oc zD&_78Y!_rGt%w!D(ma5Acko2ZdZX=KBUj>)*80~K$VRwIjK_nu098P$zntDMb(c(7>y@>ySBywZDhuUmQ~2%LI<`S-fh^OkH4!lGm)tOJ^CMhXtQTLZtln?d ziw}hka%|IHe3@SK!eg(+jrH|9Yoic1L9il(HBK|1rI5Ev_rc;a+bZ-ALzSVkj(u7X z}vf`RJ+h4qWa5H^vuI03070hw-U#m}dR96S(%1SYY~qLU}3*nu4u? zi2cx*%-RDyknY$udiZEjj3{bw28hSa;x$K*3=|0lv6%oG+Op7<_g45#;YG^&l+n4J zbk3acu;lhOhDI$~VL2=`(Gd$Z+r!%ho?@-{7;8lO8$OUou}N^pQynF@pkggzZDV&t8#VT!5%#R;rK$zZ}jkM2?*)a#~>*J0!&e+PFMkM za2Ph7H?7nwW%DIU-ro!PMrNzOMfzC6RnsmDvj_GdZv3>Q^NvSD6T(d`3WhU23)3^| z^Onxq_w(*aQY1y`%y~0T+Y}nvl8k-XkW_~rd~dE(Gz|8cf3Tz*+{&i79xiVa$W`4s zu~9IZN9SyBlX-#Z(uIwfY6k>$cjY1Q45LgTbH#c3cBxE>w4&+xa3YI&xE^7pl@CQ; z`BdbU$xp2vZA@(FTD|J>bU|ox|A5ic84wS} zQp4-vZL8a}Bau~2)LFB(ykBCvJUb$6mtVo5Tdx7wlHob88#N&nni|(GU*lo+f~U6b zn7e}-XrzX`QD{Dlb_p8L*lNsJ%TPMUmd%&FOo?O$=7dXaKg*Iuxnsjsn?(})Lf7b7 zSZ5t5cPXqWJ1O>O@74(f;v?Rvx_QMzq4iePk5HOG_Kb@TDz;fuh?Ch z(8GEIb{*Z?{KInuz39e(p9)Rm=PnKSVcG$sj~?CYH?H12T76aB*Y7S}XAoW=zNy;_C=j10j+m7`k#%C*buGS-=<@RL=!tkF-s#L^ zJhR0ssXB)TB775jbi}p6EY>&`pirLDOP5XsI4o)p?u`exou2Gd1YdZj6fTWY@B|52tXmHTTqsiOI*aQoe68kA%Ui|ZxGL{b zSO5nyl`mJ`yzExWo&upXn1{;b!I;d(EN~Hfv%AH^d{fKx5$hTcvy=0|OITLDTi9qx z=k545rEHtv%R-!XjAQVPlNiE)(LHBErJO>e)IF0^EXdJX7?W8DgaK=<_ZG_QRF&3x z8Ct|wJnh!Rm@NNrJ{SgtLV58tWoH~2hsc4id&d4T{o ziNIX>#j0obSsbdNZcKV>-LK+Zc@u$7--+uvdvCUQukF@^6oulN8!6|GPSzeh7w^p$ z@3lQ!Yo)&5Y`Zkegp>v|jc$EsVI`JH?lb1KC^U5jUAe+yf4}l?cWg{y-J6=unl#lZ zm-|+=S13$&x>b7u%{9M^*Nxf}g^;`0PZ`=eg4mBkBQOI1d~9xx=|rB^kX@1ptZ`tc z)2(eKxDvKWx3-liv^cQTnI(Ev$Fkb(nCZgajg#t;Q|Q;&uoyiR3sOgoixT zy0v~Rgi{-J*1V5W=APW43akwVF+qjax)3-0 zCZ<*jPV~I+&XRqUfOQ((1uSUyTc{K<wU+wANI1E8e!HbX}!eIo# zG@x(bHx`AR3;T#y-0jXG4%NZCpL?|{m??J+rzVZ4fc#hbvJ{5fC;T{`<^e90C{(L0 zYtMCJMOM{TQYBNJUYp~)UXF6JD_a?;g>a#BY*rBH12-Ux{tW%o@t*2ZnFZkl7Vh0~ zMnn8LfTtUaSSs|K9xAI?!im8~h@N(a*2UOnQlXemh0+osaPYcr4QpV%fG3w;txs>9 z@Yxuzw77u%EzT2*)`HheT>ZNRbsX$!&j(l4Xn6CDT-jp4D-71+-D-de)YCXQjRFXT z%GCLFsR4q^7Mc2#Bjr3Y_9jjmJShuZw^Zl=bp!@W-MOqm(ECBS!hh;3@U(LATh+B@HqF?cGB(DATI2 zOQapZ@8BTm#j#7Otar2+z;B_F4@*_H-48ppzh{ecBMfxo(0SYIy{wqQkFxm*d1@*g z9#C04)p^?muk4`mnhP|(0b74eK%+tl)w2gwm#0ZmS3a3gO<}({RsnFU!yBHl3MkVk zmY1Vn&^1Iw&UN77v&w=9L)4o-kX^aj!vhIqoLuv95**XxxJQ!t_&VNh-z?CcW3_;1 zQQW7;<2Y_1m%1md7Vsns{atqg?ZBoHIzk(0r#+OrX)kKPCAdU(YqeJpotMs@;y^AT zck}n6;}etX?r@YPZJG#L^xeR?pZr8zF5hgNv=)B201^~Oy|v;3H=LMPT^Vt~K^rHn z#qxzQ9$mETOBKM;CIVnr4^<;`;PvoS&jN?6Z*<-?V9E>r0J)M@U`W@$%H*!fOiJ;q zLJX-D0^J69qo8QzapF!bm~PFVGM`A!l0vY94#V2L0~urbM0UBNKvzSkLHllmoaJ7m z-i;!4jB`avl)Ja1R14uPK0!<1S`CwQovpIEZmZ!g9~a9Ao8ry% zjlkw@_CX!GZwl${F_}hMD4n-)&q`dgq?|)WTivj>jxagf!Q_>VItO=7&I>wcJ@yH` zP}jJnd70mdu=XgLyh89m9C;5qA z+lHE-!hJB$dB|B_TI!_}=#Jrj>6}ICwg&GqU^m33DKHfI+JNV+&M8 zLM+BvB%2_MaXYcA2TME}273N%PF%(XVyRw&3h6V5-0fCP8~jPxc#u&M?&8*h7XG%x zNP2NBkxE&zl;reyd81Bu)9FT!PU69773s5xp{LNdtD1W5!CNX7F-j-oELFLDZmMM0 zTOBJm~BE9F3zg}Bs)aowD(NpEPPmX$*hDk{x~a(oCTn&mlZFO z)QTwrsOI(3Q&f>Kix^5kh_0otlA86lG@j1=Xs}_2F-(SJaO};xyz9dYjeB4XMLLNg z-MDF>%sQ%ya#D$Ox9iSJEh0a|_{coeCi0&VDs^EJGBQQon~rL7;{#EYdTq}5lDGSH zm(RYHF7c!jGqeW1<+}e!%goA{0-heNQry4E`lJ%Al5u5;&Z8Q#77D9+QL7~PqKsKO zWGyL2uiIEf3?DCJgHfs-Tq)9fam-?nvoMa7SxhD4JZdI7c$B0iGS<~pX!TiAJBJXB z&PzlkNo!7xa<8IT?%fNn30Ss@_`}AS0EJo-?>kEz~le zWN9AEKAFm39+V_sh64}Y0}Ar;MAOl)CzWGg1xMyYR-R74THs859vo)LQ{TV_>MgtS z1AK5^PLPGy6K+NlJ>TAf^YnnMWq7Tg9uR?%%b0aQ)|LGTEEe z@GVgli+LmyPJCjMyr@T5{)1A+pL#juIGQwpJ;#=72p8+0pbOcGw(}S@h0+ znMMN(>j6CGJ9<`RzJD@!ruRy^}f5=x>pDy`rzaVdLTH!RWP+ zwREd}C^zH5WgHn7dB++~%D5ChgiDz{j=bYUA~!iuc=*m`_yWN|uRGTjC74|MlY^(t z3bbl0LQn{~>?o48H#yuV#^a-Nzk=a#q9;X0=jIt7DuPm-Hhg}uFePeLrjoY`?Jmn@ z65XWDEt=cgSaghjIIOD=!x3Lu zb0Qk$?h3m`NMYj2o*^nNAFRg}c}LjwzlZ+_kCm+(soh7gkPQ#z(j>{arSQy#kJ7N= zk_eWK#xxvvZo*MsV^U}w4Eya+D~A+F4z;3CmgG+a`>+4;Z~yW?$?M#fNhDTwg&t;FLE)a`E-4!sIwX6Tbec zPzsdKn3rH9gFa(ps48cgJZUakR9To8r|G?|NCJ-ZaIbgz4H5LswcSRUc?VWq4)CqZ z<%1=KDFZ8h6v#szTi*J$5hlRUIg{qg@;e?Xj8kGqeP>Y%)m~ z1Q$UU=()p22!qOUs%S<~7u+;2xJFQdRr*$@KAJdUaHbiyKOL<*)`^Mi-bZLo4DfP* z{)aTsf^ve@(?)uk@#~DYLnVK==oxq;D=&?HuKI?dq6&| z!wLRGc+OF0ZP1>aAriuKBf}t>WKEhdnk7=gk%~JX>d$h(juX& zc$9@Qk0dNDDSEf3946ED2tVY-&QuhXLN=;S5x8xpVv7Ly0dNq(+J@oH4gfE~B97oi zVtIZmxDn|5X=1&mhao zkQ1g_RPnM1JDew>)5QZ61eoA3iuE`{{BF`wQe!7%4u=+D)4~;6(WX-_4@o@{20jRl z?;3LQdL@^>YjFlq8PNex$b{29tSjZyDR+;kX^(9(@fcn-q)t%X!)P>6YK6cYN~6L0 z!pEx)=xM-JbE<)0v`sp$^meRf$lHayZsgd5UkGa7o`@!-MsovCNn6)CI>K%D(WWkoT!_Sy~2DP zn!>{W`qzK?j~U;Soc`43z@sup`_{*WX(KG1T96jPt*Kj$q}7NlF%kuq)?q|ei7|Z< zXYvMF4`T@_A{|=2-Y@j^UDIq^fwFT9i2A`jN)k}+>M=3R!^%j505)9aR7I#)vJoeC zL}_@ZdH5j+>zaMBAL|kyPwq#V(awrx4NgNI+;(dqE6!Jqxi!|bEeLPvG#7fLxWT;m z>B2Uo-Qw|@g>pX`%?>{tdUWFtb3CUn%}F^CbS7cWE>q8boyxY@5k{5g$KI`B1#m6> z|5JA6SQ6_xww=qhGuIV+atP&=_2)m99|x2aqPUUol@SgRU?(;pnu7&~DSYFpPSQOo zR|^jg%g)~4xxDW_UDNo$XIEyiaKcg4N2G|#;x`ECB;D&coHac;l&|s(xvr0t0MR6X z{IZ_jeY$E|ibFh$7vR5W9?UhvMQ^0j+v~jPFO`t&3C}o8oqwr4Rn)iYI)q0zpNeDi z<~POhCK)Q==yEgb>p|15q2)z;5-wqFQJpB&jU>rkms+nwdAF{FpL(6iWz|%k=B4GV zHiwe&(%jr?ws0Ts%fld^Lf39DHweEDQi_;FU8R(3T1-9oYF|2_kT0clTD0FGzO~<1 zO*vgPrA2;y38S~#JBIR7BwjW3an%%-D^F9oDtvFzI({#hQ?$M+tNp4hFIw-A!v3u! zW|jEThTkhFTs18o2j%uS*br0{N|zhJCIz!B>LA01Vd&Sf^t5XAaar8poq0y&Zm^2t zDwjojywKjd9Z-njEeU>q4orx+FDzLf%d0S4Dxv3-(6YIkw2602s=N4A=0oKGKY*XI zI1=Bcg&5us(t824>$BBGr5r9XGCUVwyi#I4SC|y(;p*s9iyjQ(uaH)0;yf4BDy1jR z^LXIBtC1MSOJjd8zwt}|6^yO26i&6;wpuJpW!uA)YHOGO!=Biv-QdY* zxZN!(>Q=@Z*^C^&ZwXSKe5Ji?F!%X#f5)ewZszvXNL6AmtsPY*f=GQRxgXjRGbq&K zWg58qa4n9-24QGfyjgdEYjZgJkTvp{>(^6bd@n&%lpOEp*5gGF7a(9XhcUP|~YEcav z?vObpZ4MpU5vRp@2`Cr5tf{(L8`t~u(7hGFAzV7Owrt@L`fCf{52x!Ud~%F#4~X^g zaO+sMb#m{Me!WrJqUj5ln&7#1Teo?X9q+cTaJ43_uSmKEc3>V zCDhh=xena5$NAo%W6?&1$B`13%`onYo(fKhS!O}le7#~eIFARE$30t@IP?6trtG?O zj%CqLiMC39=XoL@+xrd*ZG8q@JMPJ0heLnrrf!{8cpMIK5en1Y-SpBa=3S>Kxa9Ma z*=9tr@>h^V%j+52-U7+lx;63}-B-M_^$UZ*rSd~cap+N2nR|tzj z=$_(B#$6&l^z^j|qD{?rq&u}~f9_H#s`~Nj*L@J(%Wl!!PUJ;?k%!i{7rDyf!#CnZ zdOhOrm3kd2&%aBDc!uVm>bp}Qm-hQ=pe$gw!MLur(;`LmYbP#seKt=xpOg;_LY0MY zK8%xei+$JgaMUHkP>AnL%=ZOXE41KeG)gW-Ya zTie2MDRGwKP|n?5o@uluJhOSq?T`^CL_vHJZ+PZ!7-tU)km8a>;fW|=&_w5h77{a9 zJE24XCwf--3}{hQsNzM(4tHZNVX{YUVPs;uo`ug$gzcFeV?5)_lrwIgf}3Rbp~TCP zc!9r_@4BJ!CCYbZ9@QyrKs;x@vkR$U(XhpJJA&EeB{&e#6a-BZzpiaQ*8 z=O!StJOlUMg|G5pJk*wk#r#m6r1XlJH_!V{c=;9-vC^)%`8zP;q3aiNT7RsqxZJvT z>WB4mH9y{9L4BLg(QG^HdVsLBv>Ia0@38y5+JN4q+uU&tXi*#r#p{j#bR+Sk+hwD^ zgS_XS-HpmKRy)0jcLaDDm(TD+Q*QF>_pZBW&*nPjk+nRa0Tan8WLq0E2Iym(=Sti& zh>d7uGn$07M2(lP*chK~G&0M`{Jz&F%B!|-?5&o6-2K{SxQ?>7@-wP?q_*H%$FE#G(qimR=06p8k1w&Pk+{3@eV85<#>MIDa|@a` zH}_l>hOOsfx_Ta#?zM@BF?I;oRA!j^*v#Mtvwo=$*7RZF(wc6{L~YSaaW&F{;vK&h zxU;%DIC7V0u6IS84r>FZHCvyvJBnG=K@OrU2-J`962qpA@%sG+7{4&BUnw|paKp`zyJoB1>kCN zV&wNNtS+1PsMe91*@u&^TE|!&aPEox>%12%kK*WbGY=Np4ppJqV zGDr#Cd@x6Dlmnw&XYW(K>C>J6YN)LZsU~M0zFg}(v`c;Vh-H_)rTkY3US^ zFBFv>kVq_QB6hG)o+!rtZ%+{BJ*phIOP-DpAe@|k#eix`&P!`ihXG0zal zu!Fo==v^Kw>2@=DR2UYtZ=u4d!recy%1zSl$lcvB8}+I%9cyrkZGgRp0wS@GxMP@n znCcl}KOSl?mDPv8(*keO@})=L9=e9XdSRp1HPwj1u*VK=o=zC!u{mN#%L{ecL?2p2 z70&Q&i;G*FwDXL)3_Fg9IMhhk6Fx}Zd}Jwn;D|I!1s1OiF5y^mN0u2Y8fv6bSz{F= zMsHPWjf=u)!b{CjJzk}94J1>$fSm;SGz#c`vPA%o9ecgbaQ<^z(|TCzGk0x=biLgDI#1zZp3|JD^PbOS+ zSKq>dt7747+L*g5nvyZty;J}`p`ST8lHH zX>$w7^-k#BmxKC@qzw&jgkpmUZ9t%HeF#|3Abh0Lu7>Zizd*CaGlF4TC@C6j>Xt7@D0g#< z?;puP_m7oyL*v!UbA2q>O?qo8q|*7Y$MRusIEIPU@I5eKo7G%E6n6!d-psnuOhokKWFt0oR-Q&w;uI?gemFvf2}V` zO`@15-;I}icZ$`=>9k?f_pC2k4uH?FAT_grXxEi=N&#`&Bxd)*8nvgd5%+*YbwDGH zF+kK_{D$_#CE!p#563hJ!}O`bu;&O9P~0_rp{6BcMy$7(RKtQDw#yse#A1r29ThZ1 z20lM(guG(k8G0&;&H&umfmbW4$C;n6<6nHZ94YObF1=Sb25by?$gQKeO%WEvnx8<%%&TrlA1WDY*?jMVFHA>FYD*E8}%U4c7> zdHTcMF()820`90^AM)_TThewD(t7}9lI{Ujn0Jty<2!X>Q5k*SmI`L`I#I9_ir${< z5IWJ$y_zB9yT;4mrRK%3SmS-B)+OpOO;Z}##rkCi+$HvO+ZE#x*UqV9-V8OEAu}tB#l)1qZq#vsX}3grIsmUrV+4Je@;AsME@1=~i!Lm0?73CAd$b8p>*{%ouPh$&e;<2tsXB8S z4#+Ller{!7?a!o!(`kOrLSI`M7M_A1sq#mX1I65y`wJ;uOLagXaJ}6vA6XGpSS{FP zc5kfcIl?{(ApJ`~lf8VC{==En?0)38Rf#%E^d7}u-{AF89A^A$+{3?hcIs4%duk#{ zV)5~+iBIs*I0KK7OVochmO62a9hPqWr$Ql+cRY-kU{7Yq2Sk@lfFmw zx9`^t3%sn-4(eRn;kav>2{p%Vcu3KxbFn;357o4&x9qmWEEyohbpGBNiq=SIgxyrX zF|(nC6{pK40=A%}Bvn`mh2!pdSYS$(>rzJ>_3zx$I~b|uv$*zj3oBT6y7gZRPU+{i zvZG^9QC83F5@WyS(p0RU4ZTxo-4fpO2AnBOKO10Ax1f|k3hNqszOmAcdN!2S&Z%SG zq?Tn;PY2H9gr%9CODhJFP>$m6MlCLNEbe)Vg(-h^F0PRw!;Flh0aSG~{nFTzeJFc- zztmh0?^etDY0f3H-+9HHQojS3p?b7N!e)jFXI8pXtXS@mYze(a0}(13j``TLdDJ|y z%xAyLn)w9>DFAA|;Sngvt9$WPJ zi*jd%y+gg)SLCsa{#Gfry2iLGiaqSRYgSfQ(l^MxJ_P!>t}Oei%=Jx|w{VR)8eYQJ zh?W&xEq}9C!hV_NdamFGxKB0T=TBSIr!{?7@bjxmo1n;L$ik9lBVjuh#8e-Vo6oHr z(!}@*yLGXi0}7jUQA~Hw!_$Ts*t2>CrNzaiBFA&tL3QceVI49I z)H@=%^(Bo!{n~Kat0C3oOx{CyStf5H6ph_cSV;B4uphgp@NvV~kHu41l5vTiA*5C? zgqSehou^Qxmyl8-C|SbT74VjxTz2L*AZOnNV=*34o+^tE0K)c)j#c<;*sq9aUu~?U zJGAaf+7RMcQVBewN&B&4yIDI4GLhT#hs{OIBKuAt_QgZYw6~vyu)FA6Uip$%(wz_F z%I7d1{`o44U(se5h4cACS_Ezv`LI zW9+hvB^;FzdXrsd-tTJ}l(pN#AW?X7#&dG+v@WlCzH_(K^6(jKOUCW^fR9*^tA#zO zugd?1unf!P{Ys@O^(&J?GZ8A`?e5ecFVEo3}oun^RqGloPz~iyZM&b^#Jj$JoC9b%6=PZ;$-BxX3GmRVa;}zH& zmZb6WbCIyvcOYtMLnWB@O~WMR#DyZ%+mdX_(!pG_(AI{A1!Us~zd~adKN4v?#lqtm zG#!$61Kr4HFhPH!X#G4w37**w6fV%a^Ud0TPc|8Nab7mgWo;^d z&pZcqbxDoq+8mJdr`GGh8A}q4`VBiAOZ0Kh2JhvGx*0@WeL*1;M!*S@7$umS9VqC- zWSy|dDJu@703E~b(^Bnoy-0UFe!ajJ!kV#Z%6QJ*dj)x~m#-`WItlg+z18y4r#6F3f0Vo0W(*vk+5gR?PXSI+oP)te$)G;<`(VOftV6wA;!Ye{%cimT>AY~95o0q$| zt}H_18N4HJk_UdvNGr;x@UbF*=-ce1mGlMqJU?qZUI?hdF$w$ms!pi3&^th&TDRvk z^feu+azBmT^H%0D8P3MYkdE{+o{jO)f2A{J)HMrv1reLGup{Q%LdYxWhM2f=P{kvx zC~%sE7z%aUY6}IxUaZ^p*bj@2sT-op*pCI}nNkL-F?MxYzq3${@zACzuJrNz8n1>_ zllQ^<{=rq9vG908#PJMEwKYKO%N7wZ#;!9PS5&}w;uqwZp6eP+T~XKV{l$+~duDEr zRx!m(7aN{W(`>U`-DNOf8D!(&1s^l4cSTMq*2;;A8wbY3&E#s*=IwsUvLtJpgdH&Y z!&R?`>%&c1W%cQ=8dd;bA@uIGiDI?=zIl|XZSLXyMX7~gCs~8^ZuJ5Vd_FW3PX3S} zmsgmi9!2&dU~@%q70W87odpKZelEohP)hYm-t%;fla}PGZyk#>q%HUEO7Pr?TRJ+o#)e2TIF$0m6j`EM_&+?$=i>l^0Llo5_|0R|3(l zN0URSgyS)`%^h#Fv=8-hR@Ir|?wZlDq7e&{CL}nqqcsvBJyyL_=7kj2wCdd=1i%X@ z%xrZl?M|$o?j%@GzlKj?er%%S=_8bFPbwH1vLeNqf^VgrA!o;(hfm~hW1qtO2-rBD zhfp>z6S?*BY}~4=utvmngTdY1aFo@rTN1y`4JR9t!Uf6k#Lg5Bb$f*OFR-FIjP)UR z>3UWu9p^Xzd+3VU2oLdEp3MmDSZz!?C_xw1?k`M97HhjFJuTS^>oTUa;&=?fZba^~`*+?KUn$#WkFrYfxMxf#of z{3O(;uq!xb5=*&&ZW@kYW4;s&y{&OZ=ib>rRx8)$rWmB!E=Yw3DyItTBN+a8`u}8G zxVE5nq;x}3pRH}qOG-L$r*}NsJ51_CT&Crj_vI;E4ozVUIAW_VZV6e$Wh0*Q;nVXg zPrTxL#EYG;%uLk{l5_Mq*3kAmYvqPO4oifWy!Iv4?cl+4{>%es6Ky|S<-$ab&kP5- zof$$uoIB#4qE;-_WCJo0-<3L3wh0I)byoZfvOYid+A7URBXES+hqEA7sjT2Ebe ze5OFv%U>Td>|UG2jAU|}tb3-vJi9)9Jf0tN1Us_A5g^S;n*Cde=VXLOy444cs|xcI z;^slqh-&}B*gOZ84XZ;b@c2WX2WVJ;MQ#(mEGmAfWKtuLCrMC9!LLF2b;( z;41#c+2U>4;!jAp!C$}5&h1~{xccq6Sl{V+weP?~*_N$(xw|NT*hIDwKmCveV_^?5 zhG;pBhv5M(qiX6GbTHKX>UP){Z8b!knO}8J%32JD^9jNEy;9GmxofUIJ8Evz4QNDc zwcjf5mnhiWpZk6Z zrR?*@-H|}VXYGW%=Qr%Lt*LsCYt&z#2L{|{)$o2++E-`}_r@=e+o#T0!MpQiU)8_w zWnC;$jPUxo>!D)Tlcjq8FzzrM3dl3Cs_lregx%qiN*5`j%_Pxx*O%L(&Uvqm+Ol@S z=JGAB5^gukwkEhfSLiN9j(jbe2Fb7MxL0UfP|9m>kIuK%GvA!t*|YlwM}B&C>uj#Z zlc|5!x47d^i)-9+PF^Es&t0->PV7sT7wwLwt>Zp}`jS$+_J_r=3cOIF_L3lM2Gj@eEO zds^PJN<;Y=D}=ROkKx#z9_rjON)ueM zthCcnFWr}QTr?>&pSJ-R?hlp;h~L21nVNnjp7(Bj zYqn~>+ zulbOLB@y?Tk7r>)&R%B>4KMs=SvKIJyOGT6b(lTFXB1eZ?!_HW=$wnb(r)zWcD>r;6HTaD%1R}wbC?cbsul#( zUH|I@{?~H6H6L2EAf{WT@U$RSMO4l$4}!kC0Q-?q=JJI(PgN&04!wK7*k_(!O{;9@?I@FWtx`q2(1% zWWszPOvHsJvcNkI0$W z>BW=gQ5cPzxlq$eI$J45J*!(rl8$A@uHsmhe_t2}f``*F^S)M- zVF+C<UeH0WND;*H_|=_7a*JNx36wILey_LIbN9q6;Euq60XIkeL)~0=Db81jpDTRhCQWGIK6<(F1p-6 z;XG#h)AW^0Yo_-)iAR0~TuhXcc&!5(QjjQB(OqQvi$zT)+mtA_>gR$IL zxgj4fOK}Fbjp<1vL@f5PIuiI;)#>MzT(`UqZh0-qU$o$6N(XGFuV3&yrPu@YOcodx z9C!}CKM$I}n({MgB|GM`^3&Crzl>$I&Ty%xlLUk=v{I(9Rtz?5#JcIXRti#OTgAA{aA?P9Nv4g0T5K&19G?XO619eGHP?ras zVBO&an-;hp-f;94|L9YYO6tg!f$JWBUh7e8fyEFw@eO5H$vns%0Wi z0^xi}P^(oeuoPl|R!{{=D8ipc=oPP=|pAk;=Fk6{LIx zycrBKJKV?J;a>h`^8w2)MMox=qKV1NfX}yibJ6IB)9u*ta}5RjT^ zX+X|}R>NHRWw{;92}alhPw$zFV@!_lOkZn0HRtPK@u?}63bo_wwl)))_Sfx4RxXY8 zL*=Js(hp7Ff#BrJyz|R0dS+?44^*_5pA<-AAFkPYA`U5ajk$)9`Jf~MRJa# zEZOQ$^v3aYa!YB-m2vkDmw+5r!l`-u%*WMiSd@72YWAt(`rMO(wA=O2pO*ltq0Keb zH0Zl}SmEW1w)Y;}v9x`u=Zg(_%~m|m#r=*r=YR3={we9DpF012*|(n1dF|)>-dlB6 zr!DR|$}v3#Xpq7`ph0Ruf3s2Fb+2mRTQU&B_j22PA-Y%P@3AcUvkz0h`z}`0^#ASe zUzE7D)%)CBEIqH%X&gMJG3QmRvj6Vy*Wr>$qxUL3QFo^D@l~7*cl!VI_giiAvRj#P z2z+qNwqD6ZYFv1tWiwpS5s@vu6!FMyep4}C_uZJ8GWITfm~!SW6vuWZ3iAj#2bG*+ zDS7uc(hOW+Hp_|rX}DQt!5sjgeFoAjMrT6+Ft+1X=Ps$Y1h$8VuBKqB4f58DX1a}? z$0)hLfb_C46>NTKb+T~r0vfQz#NvpUV(hy%(w4!?f9tD&k2#|gLpqJ?Z!5kwwQkS7 z17Lu*_l%I zC<1nvK@c5CG7%=Aw4dTEl$0;h_Iee~9=x!}ljn@0woax^6BV1|xTvnXOnEZFj%oWo z*5BLxHhkE|n<*UTG4hCR$e&MVgsIAWQa+{W!d)*asAK#{?GrL z+RqRdyXFk=*rE^g&-DE!3$T2S4wERC<~812*Vv8nt}N)uVhEa>*x8IYx7B311`*x` z@m-MCR?4{^Xq@TiPFe8muqrLrS6m5UuGYE6pUw2(HxquQZtTr7;$K~RgzLQe=261A zY2OpwvfofXmG;l-u1zsKu4rb91T!@5>Rxjy13nT;a|p9*=QI3KJ{yl-P z+x{N-?>gctbaeUq^;WsGMDMSGt+sn6%45WLRgtPXJNg@lpm$5!zIlw(It*$a$ukDA z4Bz#XcJh1Qwf8n_>0OZD1?62(-v#Ym(BB2)y}OUs?j9!Sz`|A__MmlbruG-h>zTEj zUWe87UWF?A@BaR*``wp3UE`=P87j|*&Enpd`d|K?>poAT>1IJwIUh+Ihvh-#-d}I9 zXLoA0s`lQe|MKr#_hsp-W(R=v-gkZHspqRdoz6>1^}RbBAs~z5D_xd~EK?eBSQ@cN z`7csIRk1jArQ+4q974uM@@Zk>RzB2!_QP)8Z!S+{StkAQ z$ueGva$2k2{O3X}N_v>Ro)uhvHT}^_P0noIi51qX|F1>Xyf4#njSIfj9ZJVFZf{qQ zW#Al-^2dT51$WZ%*NlZDF;lU$DIQaKo;(*z{cD|tM=;vT*8bQx;qbmfmU7iBBtsp11u01?4 z8hxW1GlOO)dQ67E5$W=JORf(*1)S&`?qR=vdvSSA42w-fo z1S|>;@>xPAmhxA}0xgcRfLFapC6L70hRb85;gTLf_!}vBq=|SGh_H*o`m(afsAN zy*mkcH>_Eh%s?yMIG%}nR<1EK3OQV;0WM0-=3JtOQR#L&EGdV>(+aUL(cpSMkPpr-)r&^wHA;3DeE%SIu6( z-b$*QFub}Pz28Sh!2M(_*{jQ)uTi~Ee>9Khw6bk;R^*rwlGC}e*<&v*1z1FvE73x? zZZyz67$NWKkXcSUqga*;Jk=EY$e*E%>};oE(G(;tmeJjYl2NI1;m>wRl9xLszGGBc zMh11;EQL`P=Yxu&3>Jh22tuE-G9tIp+%}3)w|h|Db0gvaHa;cU~pBZwv3XU{n-JB}TbiDHN~QDL0g|hC4Um>u>+sy*vXQ zhI;QsZ#pwiTZ0L>NvRFqL0%*Ar_wHs+;;TG5ofoMVsp=w%&qhE7IzrMnfT%?;^Gga z`14!*RaCZB^d&TU;0gCq@kC&$nc)uLyP{~Ky$uzU?!*30qKgqwLaTW`>&nTcc&!w#6_gu|z;feZF-$!1ierMBP@FVEatO`q?IxLhDc&cMfRm7rJr1v` z&4&D-?6!khUTH7b8gh)Su}q{>p5j>Cr5DiiKtU&Ld^e_4on7%db*_80|MB@n{b%1=oK!%MoMr+vx6d`9?kvwNGssg={alnmH+b!oUeQJ?H8&dG=UUIqRQ_Zt%v25M z(qm#jgDR~DdT>pyMkaBEDxep{G`dkja%q9c}c@MOG{pLcm=4W}JlE`=)#V1)XT z{C3_(sBbf9i2i(wv}+73H-OWIHkwOGoh-QW*N|cc*$plm7%A*KBRE=uIL2SqjeUEooZh1<$2%pR;1QC&hbZzOdaP~Hn@Q1c;SaShJT@@^^hH|8%ymaG7p1m zaCpifN3zcg=q({!{mzzvm})CV#eN_1|1AzzI>4DNX&6mzkLW zaKXq;cogS*eHH)*K=x`>_+H7|9b(Dg;h6hpHe=y#AKs=`wv%x<-HxAbH-{@lSnA4+ z=bS}ip-Vi=9Qf8aT;0yzrj}`SIA_s^qsQcMr9cJ%1zhm%5KF;sk59MxdeuzxrWW{# zWB5x)pQtd%B`S2gdS{VX3b_yu=`bQo1;>ZPX8D;@W8Yh&g8uee3Iew3PIaRGL$!hS zTIDyK!fP~b;+pTHu`uw8Zdg+4gIplkk?nSd?SBH;^aCF<0iU zbUHrMnAn>o%w+*Q-BF^6k`hS~xhU<$aCmZ|uP<3XIRyS-MJT|yqeV%X{8fepa6%mG z!PDRR;Y`0m#}hk%9rGC8r&7L#Y)urVDf`%cHc@x{+0wk8K_98j#}ZkJdr0w> z%{mzm*Q_EEnpH%oH?hh34z?^(*>#2}Oooy^BF+p@Xa(pTcmeOQ4aE@;b5~x=1Ob1Dw35 z3hoW@jDrSRX0CH!DImMvq=d0qNpe6ePIal%`(K*>!ab-)rFc}sJ5CN$$|#Qto-7>> zPkv-dTW#(?0UfgCWQpF;Q7+19cq|nH$gtjjsYHNT^z*`t8_^uxbtir3CHthXFUI2ykLrG4He4HirKxJxp!M zX+I`M#Uk{UJY25AO-&`L$F%ETY)Cmeli$z@dFr|m6(Tmk;pk83o)^XOq*J0?JkyPb zK27XD!yN|sFH8bm0g9ckc%IJ%36Hn-Ims)^Y}QQb&K8nM5)Y{ORpq+2aoelcR{GshU*YL>(`IZQJn=6N#Y8@n5;DJvvC$g_-796_g6*lVyg5d46u-86O@Lc7(p* zxDN`j2DgIHF_`6Z4K-XL0y-e=rwCK`x`Rr6PB4yg5C8)yaz)_Es-*!#%Xd|T{y=x4 z50j|mFlA}V&|BsRMn&gE%L7zgE>LGy?F7`pPZm_@T5>wCb7c&tbLG#@73$pKPF*l6 zcwCt$HB*i`a}I@2B8;#H^r+m%2~|~xqEc>tQn2~t_Bb-jtgCu;@lb5?xu)XPRGgY9 zT58O4t_WPt?BgOsn9pvQkKm~Uj5H39iB;etCG-~)At&r}D%mL?R8jV{-y%7UAD7wz z2!q_Q%OYwSEJ>`Z-Z{^1QDP5lAcOm(6ko<3xyy;1s-Qr8|y6wzC^m`WHmiv2| zr}aJXEiVIHQ}rxQjHD*ZBfdJsBr4q*vizd{LJSoz?$&0u8|G;aXo51~_*^x3Ttb%_ zE*IWT-J1uo9G&MO{Mn8Js}}Hx_>|Vbm_s4FJN+#`I#w3uX8;bHYT!s-U7u2{>*#x3 zcRm^NMA zDIr{Zn4TCgyAkc+lhV9pdb(&3r6!Ll<;-i_y1e;Snj)Ofk!IArF8PVkwV-m0=&qJB zGdh%1@$wnmNElvKMrj^}J7zg;lS6rX?|cc>CE!r{&nt-aTV9+qs!SF*RA%ElVEbo@ zSJt2jd>yrmVycOu>CLMJUAV+yiCE#}mzx5byC+kDTS-qYer^~`#Yo=djwsIL&D6L4 zXG0ifEJvt6Cc$|NCDgH`{GNgP{{R`A%Is61ax{xhQgv7ovvj|qP(3#*jo)O){DAnbu%#(lc!b$m>uKgQ!ug~4>S+Z7OHO%=U!f+TyXNFv=x8yRW z^)gEJnJP0?=i66zicjk{l+Q)6-2)QD-d+NC&^9L$$jMyOD3CT970$p+$p7YC%M~S~ zLiBks&r*+tT>`6|5u)D^8CN8nw&by#un2oY$DiFh9IpE3JiwW+Wa*g?_8ji+MIdEZ z>Q+u!3XFiNH#v(ih>(h{mA$rO_6%yPFs0|p9o%Othl|x(FU}aVQ%`p4AyL~tN%ZHJ zo-Wo1yw|J|Drb)Zl_!oX-(4!cgy9e}3(Xl^ExweRT}nYpoI{CwxpD9`j)q?_^}{KT zyn5%@fsh@^+(^7e!yLTBR8fT?UqSqk*`2RrcHkG*$~j^CR&*9caX)eOmP_@%{bvc= zNT7VSzPn(3&cTksgH@09fyV9{j7ryz9_tv#EQVSMtE7~Pl*KHCk&zVM`3Dp0>*P`U zN9QPukscnyZ^wa(8T+I@m}udAW@a1e$x`<5JSbF|2=#CXg@w3!?87;k+U&ruLjtUq zGTc6Qug~NC1-?zVW2w=rDLOSpucqMD1gS@CwID-t85rNtz>B;U8PNwn3cV9iz14Iq z(TQBjPMQnj>Y3N%*#)T10|_^-UU_oD;Bw4GAi_SJ2Pu0@&J7?E4%7%0S4;#fTsuc_ z6CXd0mw-+LXVv>0?%)S}moKUMBp&_nKG@jc-tSEuXxDdlFy)6d=Q{a20dz?r`i{1_ z9x2tic-qc#ewAueNStP#0~iNeEe;Xi2(qwN)@~^{-RVOz>MrFN0TKD6!s8wo530(f zF7LzTq2r_~A;up(B+PsouPjQ{GKYiZpc%6AL2ps4rOkf_D#z2H4wsV8FA|7A;-Iwx z+CWWHBm6Qkkefkm=PG`e*PocN*h_?z6h;<`vrJRsluN-$xg?%k*;AyJnZRl9L3DCH zi6tenGiJpV9mCKq5P?oM*^l7CE+Gn~xJ zCeP7OdGgA+o?H)S3%Mi7b0iMM8OZRadHAzA6N{z2mLR6#4MJhOfTK&P&h$XrMN=C&2^?iaK zOdap{@aH51&T&-PJ@->;GXOqj4OCgJ%w7d5$8}?r=5V0px^=g%FnN9*QsZ%OE750w zOS-kQB5IdTaI3#N4B43vDvwTiu$=-8Cy!7j0b8K*01 z2PwHEZwiV(o;=4B_Hvh{djslz=bAS=%^z#LsslnJ{f7?R10H%U%+|M4T^TVV#xhpD zNd^ju%E!_98daoCZ-E1fL0UVw}1@rCwc1s58KYUFGkOcV`nv=}hU(yk6}| za8*`&=Y}D<;jEs@+qPgH6=kQQ>{JxJiYQz8a2Tuwf<0BNVe^)K?z|YYAhR(6#pDW{ zcs%~ql!LgKwg3I5oK$C0z#>A4n96}+oU%P&rpU=dC}NV5eU?DjDH0w0o(0lUD2)-P zloQF}$@4S(;-OG5g3eN09p097s|)b$9;D=v%HeDgw|51vJ0sv69Dei13Jy{0)s`kS&tC1Imr8MeARuFA;lK#PA!P8fwQ}@QG78HXB2hXD z_195>8>!>Q%tEd}kWdXDaq5a70c-Mj8Y2uU*%AVZayXKx5r#vsFm7rbJ*$ku zGGKAieyG2WJ;6vF1E{mW<`}3p7?tK(P*B<9*@8yyoWl`w4##ba-P;f#RM0tl0T-oM7A3ZTvQ!pw&#S~O^uq|_-bBnSj71mp-GIp)c zf&{9=VG?ymdD6SmWhofHW~phtuGQf^V*5S^4=(48t={=f(Y|cQ#II(ahNo$hEzE64 zRN{$$wnOJktA9;htIfethJ4spFm!^CI^PA5X5sT^)R_bU_PH$KK*7LBeA0>(**h%O z;3W4prb;nrE&kEF*gS8S?xavOuI}Uxv6=9=k^^0s;_*ihQ^bIEQ4-EkDt`?)6||1D zrsFI*Os(M)JM}+@+cCN*hx!Lo4%J!3e!+BuW9QJiocjLex8^t{}7?fNx(#$F2UYMz^*p? z5CCmjs+e7sDhL4rHj?PSrkOn#>l+jOa0l3&gCzrSin;t z3l;^#MMcT?oZ1zA!$k=P zp@a&bH#7$PJe&m3JI$wSprJR^kfOq=m}wzPJ5lN!{p#h z8>Lb`tTiKTPCGLZY%j-dM*}8rG^AI~mD7#9_o!e7lXgr{LAZWCluSr6%8?U}22F&6 zK%u1uD4=!MLB$EW1c`&&M-e`NrB%j+DBsUE>DDlr)~Q0<5j2WjeXy^LQsDyqyap?c zLS9=aLy3~Wi>A-geV*PahOWIsjsr?i5ff;}EiK$AG~L5VLLv(9TBu)W`H^x1G$nhf z82{7+%)qaY4^vCD$XaUXaq9|Lxj3my6yrr9ujQz_Pl4Y5fVYYfH?aa!%V<=X7Bb2`tVo5w$Nl z1?^`Z1-W3V@TEw<2aTFBWufDot~%=B1^anFR!jmZAL3t#1+e*MW=(;Tw zvZ%t?5p2TwJRd@XoVj^E_)sg%zH#-Zb85%W|4Xi@nW=O?=Q&_fjs;SV1t&{d?8P}4 zY(ry`v|bQibU4p6ix3<*N%Sg`@~vvQhEv)}^fTyUOyCz8ot2dx}s zg2KxolWswU4YW#KnvQ{*4s?VPZag|0>HjV44M?`mDBa@4t*p^68RPyt9h2q6g@(rg zOGyM0l*(|g|3OmK2=9mOdDzAGVRs*!c=W$Tx$}nV?`!$q$9y-EuK2KdmDA4S?VuU^D#WXEg=8k zC({OLQ08UpAu zd$(Z(o#q03XH_vaDxJyX{RTeRv z${wDu%Py4!Nhh!LvbQz_#TgwT6>>cmeh}#ZDS-23YMa(QZ3xILUZz1Qm|nKvRVBqw zK(e3}elyNz>CT|Ce4utcnv!mx)U;{cZ>fTiE(6OHX?KIU6_0q!lif|?L zCex`j>gWO`S6vXIf}gw6j0O8AEn_mEYKxCt!FJKQJID6%|T3LTVW@nYXQ$U|f ztC)>v8}McKVWmB|EsoAw{wXNa+dHtJECU%C;mLS*w*a}K%ru98H#6TprHvII+TL&* z+(yS=Y8Orwy^_dmt%QGY3f<;ZeA|#6x;Ez=>NEF(V?h3;JB3a~POd%QX5^mGowu3U zGooWJFWzn0(eRG9rDg%ZLS(Dl5c@A zl!Fg<$>$V8p)!=+bz%k(a;9?+dWMD{dTpK8G@f+i!fI|vcyu-MY1;SZ?&tJaNwAsa zfrTqc5j$`l1jnI4@0f$U%Mwp%v;hC;xT8hV2u2vNd9}fxQ#b#(UDs9FJ8o(b;P6s3 zIf?r6;v-Do%>I2gKlH%o*)fj+5P3gkcv8zF9B$U&I6r=FtGzFSZ?P$_!*-07<#lxu zPIVpX374|c9>JM7FHiRRg6^0LYhg7&gcp;_SWjw7$pf8gQ7Ne<3&4b*qBrKkV?r~! z|KfyBS&^)hiDgASm;fnSW%ORMF9YhWlzwO<%4xd5VR*Y)|I#xGZj3q~UHjf`=48I@ z-OKTuJOmS{8B~TYg-SC9dW_4do*$s(*O&PLYP%Qa|5JwE*TUb0?jIaSAca@Q5C!Ur z#Wd`jrTuu;(>5@Yg3YbEw=$el62$S|l9T`vlSO?*6b9-K==+P4G~0Bz@aiefv)1hU zaF|GW5u)Sk3MZ|F(qt6sn}y~4=FqB$p9%;NTiuMlVQIBp<<&M@lW*=InY|CF(^JX>J*ell`` zf@q$@u#M+|yyt?pfc5=N7=9=Xl7iufA3V?R?1(}5_|CR>5IJMW@^?52$k-~v0-yp? zt2~kv$Ln9}cEo?4`n$*kQ$EMNe5%!fU~BH3kxlBssm6{#5CrgR3Txy>URv`2ThT-avGSh&}p5f!l+S6&l3wXWgiXiQ662Hl^?_9BJKV z;$x^z*0oTf*Zr*yyS?u!o)wBNO?Zq56*H5IYH2!*$+9a1{?}b|dD_uK{}C7QZrn(G z@(IW%quXcsyb3!)*NE~~;9nn~(@wrzH7*Bh$QeA^Pt6SB=Xi)KkQ|}eImfn2%|1ir z6en2SB!I?J;d(LxoFG=$D7-PLQz{#{Uqwln>d+_?o+Lcm~_gG5#+O)HLeufVRX6{fPAKKZONjGAJwI@xwA=&!1b9f^51_{BTD*$ad1R zaWe5qBFBk7m9)P|IGE5*m^N$#z1{IR%;qiB;B+WgFdVU%GMlPO-D5G;(JwWF!79|L zWR83Uoh%BwUy7x7hvga}kP7+GsIqf}z>@Od4n$16CBuIt0okwsXl?yq9^;tY)gV&j zU1Lmi+87Umr}Q6AaUcr5jFXokNt9_Q*(OqyR2)jiDBM!RM>@bL^H1x=fz+072d6bM zQU{e*yL^+j^H!8z{dVYkiqeh@yP^eWc4iNXL%|)O7CcciFs7#f%{d2PGUQjjXbmP6 z9l-J#s=W2tGBkIGk{V;KmMp|~3 zxy`kiJ@G1;q{s(RpBWUGbb5v&7yFp@6YFLhX=zvF$2M=4cN#RLLP~V<1sDlra3h4c z-!`S8-bm%BfHDFopsayGXQVX|xrsCw+E)pk8X-w3loC<8!%s!*b(y4T3+mx&FVX#e zIF5-_4o}oJ0l%T#o~}DYY;qsM&8U0Qn09uHnvNigiGl8!*+L|P+XN}yQL)QD>30+! zU4F&MTL1YJ0nvGWP?0sJ2ikVAho8zaquEt{!LX9EllQ63B#aD$*}Te7#*N-e6Hnx$ zQ4rGfT5g>lLen3E(o(1lf~Rb{eI(vp<~n*!>0yjeXKZm~IwS*^I!V z%F^LAW0Q##L;^9wDBf^RUqb9cJG_ws5`}BrI7KLY7>OlB7d|0^*C%G&5hZehGjpzB4aSE=!Be?8 zo`c2^yjC)V|EX-kTy8xUh4aN352}_$3E5>rhv9fZd+mbA@dsvOG%~%0w8F>*S%mmL z^6vu_-(rfmCo7*3oPi$MfvCU(;Zq2ftqua!6B7*dI_ak&T&_~IpxHnyIb}~5kJoAc zKIZl*L{(ow7sy;LJuWnz0zdUZ3-JV#hs`@?#u%tfB(_s2f8F#?-t`c1W}ZXJnVSY` zV<#_TL3N9wS+k=BJuWmVB3XjF04&36=Zq4;%Fw&OC^$QlaySj)984Be$la(%M9H28 zwVsaF`>k8A6g*TNx~&M%!MSurYTYAI%#xJ{x-m+1oL!U6I@)X>=H)EBl8~G%CEiKX)>o$>U5H1FDEHGk@(o3eC$t4M-UrpU>h4d4N6FUs>p@t1dRTrPdgveHVyd`0d~W zxhuZp>XgX9oV$~5wCovR&RovPs0cLgA%+Atm@3V8i#UykKUc?6mF@WbmavZc++o|%- z-e!&)nzG%aFsg+1WRxfvxAdta^Nah+KDT!@PA|7#Bt>>WFfPZwt3DK;goX@ZZaEp( zw&Wij1)am96ndk`w9S;vM@ zww)BmxP*1hOn=VTY4;@sB*(j5sSBDjq3A+6qjwWV_0GUl=J1^HQFQa9l;|D75mX4b zy#Q4_%2q`1w01M(`u3#;<-@900B)9}`A zR6Ixf6=_W*Ud5B*ywECZ_oF3;L%)=weq;6@Wl1kizZJgsU z{0$O#X8=Ic0K3SAN}|@~HXH%tAaUrJW6k`O8VBjEIluE1a`tt3>Q8CYB>zF5T+Ko9 zH(}a0;hNcJ*M?@#0xMD?Y&aA1xjg2>t17;A1b5I8vy8*L21If^&+@ zcU*a-h$lxjnH7>2R9L04$$L3sY>H3_GDU=DHdv@C19YJ=5O%h8sbiOFbZ}0qu32EP zkoVtC49?)HUgtC$7VwHSRUE@yS-@ZiY$UAK<1Y}`e}N^Tx0F#b&$#oLu(|3ENA)<~ z0q^&bmoca`Uz>mux>t|o;C=I{DP`8BMQ2wFH7L5Z72fY^huw%~7Y?rrwYW^Fx=oef zk*@DRTzHYF+wRLeqmp<+?hcQ|IsQKs@0p+7XMT<>p+?T>qjGl45+$*#q>(U6&Z_h9 zdOc}=fO7jD4f|3F96Jma&>j1B-Lga6+W5+$?`-HgZY@3N^?8JrQLvD=kSN>B=&lW4 zx}pEkfyAowTJQL`ypztX-AHm20f>!jh}j&t_{G`X#WLE0x1=2yg3Ae=GyuecLdhfr zmz1MVqJ#J>R$XFi#Uw>X>@O&AeiPXf3tkDIQe&YPE;$j%6*D@4FEk$Maa#!M6VWh%dB1+iOibtC0XxNA5Z2b(r8Y*M&R(ti~HD&;a zZe}A?SE&`s!(vqht_okuA`}!djnWP$r~u60LX-`KBL_N%NT?iB;`B4SC9G~gVY#Dq zx$}hVx|+k+eICBr<#2SL@^xz5X*5=)Hasa!0d$>xqj=pbg0ndnq4v;b5YMNYb}uiG zc)|YP9Pg`qH68aPQU&8jEuS;mDJP|(dB1?F<=mymnQ&y^zlY=NY&?}!MD4h}Oo$8Z z`0+yZWF`y;j1~qpoPN9CvoXiG0AGnj(N@M%yHgoMbEvy02GrqPd>;Z|(iYhZm$4X7 zZZHDe(hBRP+ur^^yoxebgz|^R%qiN3BOe%{QOG3+!1f=4Czc$IUV;%LT~*3?KSVg( z3?iuVGtZ!d^M^Xd`r?LH8|h%{U6Q+c4V?%G1TtqZ04)ES@Mu$L$)%t$-`>Liy_ry_ctlV<-xnX_8#cI(g7jni9ZE}+w z{1TBoS+X=wHZ6Bvy8WaHXU61x-WGml zF`=}rMp(n+h^N^T;j$;f<>BeIJoz*`@@e+u(Co;Y*%O(wBQoc4Mi^1c8OvWd7T@|S zAw_50sw(xc3XU^RgF|9uhU0`%z;;M~;G;4e@k+}Fd*2Dvl2$Ea-n@F|k0cge*0GRy zb)9?}ggz~4$EGx(Y5>uS*nf&dU zJb5AU?xdiyixL^L<&wSMw`I7h+R9%6zL$)|OHajt<^JQ=kP<0S@VW8e&XfwxbAl?- zad$MPQaq-Zqt{Y_tR>}p&H)Q=XQSZzZdTXaUT22~am{820`}P^8k)GYxE)CBJ2y$$ zBVAftsIZ0L3}>o9w-=j|nM)+-dwHRZiXu$M804r9N8Od{v+0gaPe+$fcgl&>4wTbN zqEai>X?lg_PF3z$9E`*k zhe^sF$+0-Z>_H07X*<07_$blBV_CRWM^J5*rRr84;ki{ucy84Zo?B(%xmA{tTV>I< zRY!Jim0t|4zGdoLcfuafd%nHfG*vvU5gVC~yrVnbX-N2v`V^lJ!@g54$D^$S16KS< zeAkYIIrsG6?7#-)!&Ri@!__1nZ@tHZBYKq~4$zeX=@$rZW9*%Tfm5b9^4c2id+UI~ ziMAYG+^~whdtW3x{`#4mZ9fyb?-0`AP`LZd@^A@`;Hk}Yo)#o3vtd;|fHh?0>!jUY zG>PXWc|wOM-pQA)lMg5?spP~GiGnN+dJtnZ!Boej4i#nJonI1;(I`B|Ng6Iwbo&q- z3ctvW!Y}N}1c}enHka3&kxfH|&Lho82+wa69=;3|!L802r8PuJX+^-$TuTS(h32vg zhO4=o6n@*?iOGq{S8$~LWKtQ=rcwCSAqp!#thV$=y3k+daRQwWPFf%D0O*~7dEc!( zaaeZRrMPrLV*ieRiR4U5awlcS(Y^^bjPs9T&|4LtZ$K<^hh^Kml!BZG3ovP*X zy4jT6oxf7)2a1IG14Xc5$GwdmN=s!GpoV67 z;g+w=g^75EQ&;xt%H(e;!s*YFcgj>qWn#$=3!)i_(9l0^R)(o8QhYx#?(#}r2a{0H z5hUVGrt$z8vsK<0?|e2gywGC>yDnV|DsyddhigSJB_CqYmBVunGZKHh*%VsP4(HUCWa}t%L}B&jWGXIG zaG7|roBI$h$)8sDU0tXT_aTBTHKLcY%6Xv1!P{;!Ri`p9`V+D5!{Jz7CuJ~9;^D^6 z7%4dQMJIEXF;Om+aCm#pc(U6Nz04-T+i{M&T<{dMqLe}k+WH5dR+_N!DlT0Xog9Gyy=a%3XC!au%(d7k;vIuQqpgq<0X>Z3NgAYbs+4z^PBh z@hm5BRPJ&x zs;o$b9`MG)*U4f8BlfJ0GE3)h4Q96|v3uQdc=LRm0>kef5OkbkL4xx6=-4Vd zoj<`Me+(zEcepDc?V`*rOF3X>jwDykn{PkMiu;5t{{2=wPhK&3p1im-ROp_W)iY>R zUyiEInH`)c6;UEPAJ*Z?>=uvNy+j9@HRWket_dTRp-$%~RKj>}PW%Dok7^T7^Uy?7+!!tH8I$&v5B zp+H2!qog>3Vd>XV0>=eDB7%F6R$r1FKB>8+(%lgLz`Dpe988B9yq9nCpV+}CmFvw8 zx7D0NK~x`hmg-m3z!r}@lY-`$aWqt zBuH4;q$Zzwb=Md~z?ibSkbQWT4@h9`_&C(dl>rTxXuxO}PauoS;rVcYy3~~R$<=Z* zrG(pW3Y?SBX>8WkP>zZhg*=_erE6A}+{)OWRo+>V1BK-~76*!Q(Pt_yDLUy!>=HbJ zcj$OKf(g}g0oLksN#(@v+>ISBOY=y!blKs*cu}+thwU=JfVEAK95;xX*!2lpXjf;+ z22Tt+(%3IsVv&O;Dxrv(v}j!j(ta}S$DZ3x_1a0vqZGf}<&T!qUo90_&DIcjX{egX zkYEDHb;2eMYMSl?5Qg z{v?LFRZ0KdDevPCq@7lepjiDWDE!V^ej!?;IKuMa6TCZw;t@3BfvEyMjWZ#i!2Z8` z<5)h<|L@T(_;>Zl2+$!a*EMp+DbXRsl$0DwNXZZ7>|S-%kN-@~CFvk!k}g%3%k4!f zK2!BbAy==yIQ;tjS+YszCyNa@J0iWqG(QMKirh?lT#VCB9&YDK_k$m!KP0!QdWH)_ z&_)V{fKWOU%x9e+|Mp!&K`GZ^v9LaF<{OR-zD-W9>RLS}of90SsF5L9%;Jcdojh4!?z4j0Ky0-&;UhLQK*mLmBB$& z2$sPK8>95I?T7T60!e7xD3>2tZc4}I=%SLRiy}CWT0A(9bYdy(%gF)27$?Ush!a$m zNjWsSWRHo)lbuKzV`3H(tPO%fJh0p>Nu@dp%TgKl#0aP_jNmQ7<nlXW5`(3Usq45%sk0Y_G6lDCZ*)mXRmj! zzV4DrbNg33rf_xQ7bOjks|3FneyaKEw`H?Vs@@iS5MiHWors<-lPLl#LCTyXQ+fH@+ts{k*qDQfP!92wsP&wS8x&tcybo;qqY!Nvmd#>U78ud!5LvN_)q5V0v z*}DNLad_34T82sUN#?3_9ny52a{Ts;07lK^oB&}@nD#}6bHKfYKFuUk9C=*bC6(s% z!bBIRsa(CT*W~B#jVH(`#I~a?)?y)BU~RaQuU@Sr##bbn(ST{gUIn>kszoX{+(Tzc zOoZEaql}ZQb_4rfscDB4zg!!XEw^KMj9l6D*~^YS*U3(mx(@|EVUoiR2#gYIt4?|5 z@_HpEBb5bN5XQ;yOOJc1$ut}ZeH*xi>Jk#xWUoL#nb8ZdCFlROk?rgv0G=EY<^wc3 zRnft1RUx6aNkC_+>b#4FcWLa-Bsz`>x!dlG!9kE$3uF@*9wZ;K=)-v|SHCt1MF7)o z=tW{D01JmN8STvui)oXbeG8#sO_b6p#b`w~r^5x}v_vTO9hh=pg$A(Zud_A+mDI$@L< zg$ZF20@+#U_>4|Pdb4;<2iA(!ElJJYC+5)Qz!c4)M@bIFvO3ULG&!N|%V7eZ@8wgv zqO2M1%t^RU32zrJR;q#Gy;YgxBOOu8>LpjDsl}>la~m(rp&4g_p=!DqfnLIRLmuK3 zU&W)ymuC!TBeafLg`E8E)@z5PY+c32SNx;G3Xw;KlZiHth72al)JE>`_7>oPm@E65 z^GZOE?AbMTupYxBnNtRPc<14@blf};1?$!34#}Qa&J?x7C0$AFFr3Jn*XCB2n>Sj? zkUV)Nia1Q!oucATL~@4|W}-gI3FQzx4$T|n@>0W8ZmX33ujN)81sE~dBIF)5CfGW| zu4bpJ$?0l5Gb56#2FKgm=&F-tuedS#oPf~`pbo{a?x+sabXKXZY1AQEC^c!&ErkYt zm^2B2@_|Oj&|4i3)dVi%Gc#pnC$fY-=Jm?d3+fmrTdYC(CCA4+di7Zx4|}zCH!p2I zNw6o}9wfI1VJ61K6mcHK=kT$$n%PNbJB{;beRrS8<19Hu!? zas>%)J2q55k$uFYVN3${nG)P|=l|7dz@{Z4jI@=blL-Gm4&F!6p%io41Hhn>XZilf z{}B4&C{}y&IFh3Y>7aqu3ji5D?IJ-Mxri_FQ6~W<$HDH@#Gv`Wa?^b|I&LJ)tlrI2 zay7_dT$o{MIU&$wP6vgi7>Z1$v=IFykfkFecJgC_%(AJt@8wk7_p(Rwxq7(U0(S}{ zvG#%~=FVT->?=$%doJS_TTDUmlI%HS%H17PZeD#d95W?XhY~Id`w=+RMVC?zw{vc{ zOYysq{b`8)3QO*{_$-xpIEn}+cpTj$XwAigH4#*`FXYsfQsNCarw5=T}(!N3V6k*YK@Q$uwh3k{# z5gbz`3!dp>API}Aios*ZKIQNzjk_gJTkfw!EBIs*h`{6+2maf{BrH!{Zs06b-koxJ zCvenyVEiAiJUaw)SBDm|Oh4?>oE#VE0KvpEcn88Uwr@#U&YSmtj}YWTLb{7^OakW1 zMHU;y!B7Mmh(|g+Qfgioa&xOwlxSqQKPp!>Idbyf=s+}3xgJT$dp-02!;w*+5su6i zF@y8}ba)kMf=Ia|X97BFM97u2;@a;JyKeS0!g7$xIsUZS*5%a{ZRJnGT04LgMF5YpuM z-4_(c{ePC3L-^DL2_NJp*9zxzrSebZxH>-K3#GECSS*V_c_7-MF&ynd7+x?NXjwvK z1~cUZvi*!%jvE>oA~RS7Qp)HdS3yV6?sD?`@+fgq2#}(AB#W>b1$&UuYr=BAI+Qpm z+yjR+U3fU?I`J=BAD9S1y7lne^b zNl1R8tP%tpb;x4Rw~s^6A(I@hCa!Jxb*Yn`6|a7NdhrsY{nX$edtGzPmw6_2T$ z)q#C>d`SexF@~p9bUGmw12aj};#60ij)#i}RGwGw7){J+srVh2g2rJgUMK8+c1SgO zUqi#~j<;LS6nl}FV9SJR(n^4G^#}j2X`u#eb#TkwBP4EG@1=M+&rnoA>Kzps*^fM= zJ~u2Chw@V*D@d?qopn$Y?6=1O>5iq5C6=XILg|uPazP|kYI#M(r3IuBln^QDMqvqI z33XxVMnLJ3ZV8ue*1h`v?wxyQ?#wf1KIi+)GjnF1^ZfJ7oO5n`&a~vjr>r4tZ32vL z4y%ve7R2%X zhWvozpQPr+5Ya}B;@N$nX0CcaaUZEx$Lr3yJb!p{SfPlbAW3h3nm(?6je62^zb- z8*g;ul(KqPy^ZbWN2D12&#}&pUpM%-jJk9;!qXj^$0&79mB0N$}x<$eW$3clwl=tt~^(B^QZ#k+%+u1$PZDDloD&ZQgi8lfmnG# zOgfLVIQA6q4pc52_y6l1OVx zLYyPrit;Y-nZ%8RXtQO#Gk}H~AHSxTs$z)(3(5p;a9cTnFvwup>Zshw@?hcNOJUKs zfRXd{AA!6M!`TOA8a&9dp+ugCAJpaqZz*=gZgFg$7&Edoi4$aO3H7CA(I(DIc&Dr- zkpXvnP0TzT=E^PvjV$er(yG7*ESn<8gV1Rt!)%D1WlbJAegW;X*>sB8-z*NMWAYH9 zKVGKzvf7&A98oub#?`gmwb|kG#V;#NC>nM+EWcn%(89d+HvQ1QTU8g{HeD(MGBrXh zym8bWbX;C}o>_CbGCV7S(5tLbacplJudE4fuYd1_2fCZE9Wd#C94H`)tg*+J92}@- zHYmp*rMjIjjx2R`QY3ipB+r(DnR(6P0MfjxXj0;UJ1PkNSoyj=lznhKqWtl>W9B3Y zTD?;}_3WEpnujP0Ugfdbx07G~Pzr78NcS1JS8;dZog@c>m!oTQo&r|h#bM7Zr47!OYr8%!r zEDr3T`MedS`EoJ11{#}VEX^qV*>vzn(G3ja*7_48Bw&CX<0|=N1q2AoVXZp?#>(}% zl7%|QeUuA7Cb5iSFF#%7QhKA=Mq@LtrP(WODaL0972AI;a1IApRZd?NOA9*nB;Eijot%S38daygpaI`v$S)ep^oGHp z;Lj|KFam@F-;Oz-k)<3nA0hgE-xMm*;^qE<(1L6A!#%PIF3+nggpQCp8wi+Wu$r^C0jKJnO`#UmeNIU_M5z#u{}WgGqfyCNk7OLAW@TqRS-q?xlYQn4 zEk?kSE~W#~l-6|!QN3LQVf!(X;T82JN~OA~3U#!gxMD}XNNxtfWC4lvsJac$;=6he zQ}{{ro%m?#got4vdOF(VWLy$uLjGFZ&>Ix0OynH;41CmPNA;Nk_1JgzT#I>bLF;Cd zXJBdBf;r-WN3208LBY{gAO30=cr&D06+STgHZ1tMOLD2D{uW0>XUUPG_PfV)I+V{_ zaXebGqHBe}_D|z3u=ULk+PFJHNah8+gCYZrP{4e{UIqB{Z`X`NNhF^th5T}LWzXo~ zqiM?+N2sJ+SVCE7>WU#)MZY1~d$(r`CIH2dWB5gmwE~9=KUt;Y^w>@Wy%omdhrD=V zsvvD$2+e=Iiw}G~U&I7b@?ib785f$>@W;&$rPhjUIa^(nzH~o0A8ej+hxRwGkG05c z|6mWCIX3F_xZ6t{+e(DkV{HA(;e>y=fsM0}`e>pebco78zMENB)w03?DCK&@E!s2t z_JlroS*jd~OCp!E zLY+Q!TsTw^x&XQ9^)uJt=UpDqvg;Dv)ny!9(0>=u@0Oc}iXInvT~Y&$_FK4*uTtaA z%m?(Zg&bb$E=1TOt>WNgPw3hrxA3|vjcDDoXAhIB8RDtT7YFvY{bEl0A9wS9Ut=$O zN@Cd5hAsC_X(x3k$&Gvl$vQdLLx8Y>Wk-==1?&n`Rj_)d@0$7ipNlvXi&8bz6pM=Z z6`KT2_$*v|DQs;XRR%itIvlc`nn-sBr5XkfWP)e*iA4f&{I=v2bS~Ilb>X8 z662TlFPJJ{nAFlnW<}+7rVyr14^3~JpiTWUCyO?<)<0!CWvrBn=tqTUv{yZj3PCVi zPL{s#8wfmH$IRabG0&IG(d@kyXpTQ}@Zl(ub2XMuuco7v?pJn-HubLh`lJpV1W_4X zi*nmV@Yto24bfMzj;@hscf^p*uh3e7dkCe)b9GeS1IG=b)Ob_edK3ocYr)#)+ECrF z3ZF@m9;Z!}z^zo%-8kOQ3|-a@cPZRd;0(X=T5``!8CHeN=4J#E{3bU4nH)OY&VDl6+^JaVs)d zP4#)~&Q*hKn{u%mukOqcxIXNZ_Hqfu1vKMf?Rv_$3wnPw;Ny1J0ZKGVbak?As_bO> zUU{gc%*6ZKMzH8xcaO)Wv*#+DuSIRR-c9dUTrYj$beO$I5R{iw9ijzXt|*wlOS89n ze2RHisA2n?T79%`2p8OuI)Qt?Y*<9=AAidOu5eu;#c5)1%=0_3z+R)Fc<1p-*6;n$ zZuqxVD-MSbzvLH^TJ8?ag+k_W6SPw;!C%_H=+z*vq5DeyVSO3|Y2zj8{*_m=MejEx zmOK(~M%(XC{(9XJQffai_MLF!mxSOk=}=kCQIH-_7}EDp9>EaPnF_T4zi6ayPbL(0{Cay%%5-T|d&e&71X`hM`coWsEMutpz01{NI- z!dg?db_)2@gyqX^jsd1swWGS8&y;hAFao6levRT3= zCyhwN5$tiSX6x}nT+ja@=S9QlCnqIbjAuv6%*%v}CJ#eugBL%ymJdGgo35y~Suz@J z!*9~rV^S27rLY`@MJxQlMv>dzVMJTU)~a)W8%3?RLeZ(Hv_0@W@pdK3ZHD0blY z?>DIPMJ~MV^IrA|M3t^S9`s-k&C2#CQw#muwpYW{-=b>#%|8 zI77x!!9U-u3`z7HJ6STeT$q;ALbLrdVuh4@5csKD2Z(sO!!Wh? zfzq@?uuW{_ul{BrdHuML*5#o(;Nn!o1E98q<%wpV(!<*17iV4OGPrKuw)V*`@`;Du zq@ar{pH?vK#`gPy)xsl{z*htbY0&;|!*2(h=_1(O-Z2H`&ytCPa#IS2jCJXlETNAN zF0|t*RQYn}Ebv$y2(v6pZQHzfhZ0T*pL~v;*EZYGkqbez`=~5Em`FyaoE({{qLxB$ zMsfF8Aycc)x1Eh1T`>||a7z%@G%>XU)SCo$5cko<^6HZSi5`%nk-jhKi&g>oVcRb6 zCJUs;-9Mwyhf(;|^@$7@vVSyAmypW8(D=4#S@gjL!ijMm}$qTe_DKKzO^OD zHgi=cCLLN#z9{FkT(8c&VMMbPw`=fbzM@rxEjFvXq9Kvd{50AuN4->2xwuT-mv!Da zf)}}{xQnTmEUM-mA9-hbPwpMiggTIst@h*MrE^Vd?C2HvRV7=Mhf_nv=vC>fN{%WI zw}#g8!;1flyEz;v54ZNt)raT4vQB?`gQfZT=n9HcH#Ca&7Jkz#tOR4+iv3Aqz9bZU zhi(d-5Q@V&wtlC|)FRA7(s;ZBd_wu|_(pUcF#N7^-_2#g{W8(A-* zxa&sluTx4OqcEyt)%4Si6?Q6K#nUEwG)wjA9};>c)%7Ml!+~-Wi&L-&$5v6WQ&YD2 zK{9N6nXun#QjpwJ`JRxPd!S+;B8)I^88B?!Anf_&m~KQ=V#$oHS9Wzab9->( zy|_=0{DitK_`#x_NNsJG>ZFT<>ck5nHeG3NvQfZ7!ZG#ehKfsAoXH*-#hjDvUsYbY z4c>%7V-Z#5fz$A8hiLdH#7YHQ(FZ%7K{4fI`s<+gW*tp^qj_M--X*bt8HA}unH5iS zDNX%!1~N)FVK0)j1SrU4VR|v_5-3xhCz)_)3u#2|Hh1s8}hxEl~;Zr@<84=HfF#s=x_xVcxWc&{agrcMLC54ivXP!notd^yPD_Ffu-kULJOiBs?|; z&?kQ~5`lDW*B-29rXnaIC-99N)Y0*BpdspDpBd<#t9A+uVF>Vi65M_JvqceuM>qJ^ zD+5+{r$)DqS-1mb`{f7ln;cqs(e)-T8POhDZX{7dsY5F9s#LWfH>jJAT-m+F{^KPc zm`-!wUHGG|r7u`fUJh$0rxBhIlI`ChlBJv9UK`q!k-<|n_ zA;9~MAi#_&Nk5xew|An#qK6!_lx4`mRvhfz2yAh>1-5w$9i7S=B=`vd{0$pRLDXSw zvMRt%m&_VLmT_C<2-MSCFY`Mr*}cIa2JxKGSAao`(`1mEc=*-0Oqygm4RT|Wpw3-c z9BLHrLfNz8``oxN=dSQK@WBW6ttCsU!`Q}WxhAGf%S_kf7@~JXbf<7AfwAD^y07^c z5VBsdv|dm{@K5Kd5q+XRkAmAq3@S-va&OecvTmqSYakS16X?mH>K=~ru|JqyPGOpCPAMhMhZ}DONcCxXieaCYXZIY^bJ2AinsOyd zns57a(e?bnKjyzhy5)fTVVCTsrh6tN-0&Y?;l>)90JyQvU!$>U@h>s`0QekP*ctb1 z0PKuAHZ1HSS!;a$ak}L3R$u-qu>XO$#|*-iV}KwOVdZjGu(b-WJvsvoSW+3w+=429 zs^23>c1J#Z!M>aw>B30Q;yp z(C{_au2jh?k>udtk9iOz1`QHp3KC-^PyJeq^&)mcQ|B~^^dDOQ{P4w57(~TxsWN{> zBwP}rf-11eD3-7_U_gtP^zX6|>byuUuGWk)l?p&cgD6ShXaKZ7Mz(*FBwB33MGGds zenX+{-?83B8o^icPlzuadH1{Q4j`Wf@SNvDtEdq5WZQ9ru-hcHjz}}k^EYdo9mN#{aJz=+!LI`>F%b`D=V@ZT@tbD~uwKQ)1@VU~2c0ibSuKbNY|L?0BhCQP z7L5xf=0|(Vkn{&DF-cr=j@;7YOqzfF(ca*Q65tO#CXYgeD}nMPJ4S#>eJb44fk`&b zuCA`!lWa%r*OUfzo#`%g{HN!TH1B}JxSi=n and r not in owned,('init',i));owned.add(r);peak=max(peak,len(owned));lifetimes+=1;rows[r]={};current[r]=e[2];scalar+=2 + elif op=='CLEAR': + need(r in owned and current[r]==e[2],('clear',i)); + if rows[r]:erased.append(dict(event=i,role=r,frame=e[2])) + rows[r]={};current[r]=None;owned.remove(r);scalar+=2 + else: + q,f=Q(e[-2]),e[-1];need(q!=0 and current[r]==f,('scalar frame',i,e,current[r]));a,d=abs(q.numerator),q.denominator + need(d&(d-1)==0 and abs(q)+1<2**16,('scalar alphabet',i)) + if op=='SCALE': + need(a&(a-1)==0,('unit',i));rows[r]={k:v*q for k,v in rows[r].items()};scalar+=2*(abs(a.bit_length()-d.bit_length())+int(q<0)) + else: + s=e[2];need(s!=r and 0<=s