From 87a9572b3375797ba743cc6699b2332b819e5dcc Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 08:29:41 +1100 Subject: [PATCH 1/4] Independently validate conditional eight-relation price plane --- .../.gitattributes | 1 + .../HANDOFF.md | 15 + .../NOTICE.md | 1 + .../PACKET.json | 897 + .../PATH-ALIASES.json | 179 + .../README.md | 65 + .../RESULT.json | 382 + .../SOURCES.json | 18 + .../SUPPLEMENT-MERKLE.json | 209 + .../TASK.json | 108 + .../VERIFY.json | 28 + .../package-run/BOUNDED-PACKAGE-RUN.json | 7703 ++++++ .../package-run/PACKAGE-POST-HASHES.json | 354 + .../package-run/PACKAGE-PRE-HASHES.json | 354 + .../exec_frozen.py | 14 + .../5387-delta/NARROW-TRANSFER-STOP.json | 15 + .../01-physical/5387-delta/check_delta.py | 86 + .../01-physical/5387-fresh/ENGINE-FREEZE.json | 12 + .../frozen/01-physical/5387-fresh/HANDOFF.md | 13 + .../5387-fresh/PHYSICAL-RECEIPT.json | 578 + .../01-physical/5387-fresh/PHYSICAL-REVIEW.md | 52 + .../01-physical/5387-fresh/VERIFIED-PINS.json | 233 + .../5387-fresh/independent_physical_check.py | 319 + .../frozen/01-physical/CONNECTOR-PROOF.json | 6 + .../frozen/01-physical/ENGINE-FREEZE.json | 12 + .../frozen/01-physical/HANDOFF-5383.md | 13 + .../frozen/01-physical/PHYSICAL-RECEIPT.json | 575 + .../frozen/01-physical/PHYSICAL-REVIEW.md | 82 + .../frozen/01-physical/README.exact-head.md | 280 + .../frozen/01-physical/VERIFIED-PINS.json | 221 + .../01-physical/independent_physical_check.py | 304 + .../02-census/CANDIDATE-CONTRACT-v1.json | 91 + .../02-census/CANDIDATE-CONTRACT-v2.json | 105 + .../frozen/02-census/DELTA-5387-v2.json | 2761 +++ .../frozen/02-census/INVOICE-v1.json | 384 + .../frozen/02-census/INVOICE-v2.json | 384 + .../frozen/02-census/RECEIPT-v1.json | 22 + .../frozen/02-census/RECEIPT-v2.json | 19 + .../REJECTED-WRONG-CAPSULE-INVOICE-v2.json | 384 + .../REJECTED-WRONG-CAPSULE-v2-attempt.json | 6 + .../frozen/02-census/REPORT.md | 41 + .../frozen/02-census/census-v2.py | 98 + .../frozen/02-census/census.py | 96 + .../frozen/02-census/reproduce.py | 16 + .../03-precision-stock/CLOSURE-5387-v1.json | 166 + .../frozen/03-precision-stock/CLOSURE-v1.json | 104 + .../frozen/03-precision-stock/CLOSURE-v2.json | 111 + .../ERROR-COUNT-ADDENDUM-v2.md | 42 + .../frozen/03-precision-stock/FILES.json | 13 + .../frozen/03-precision-stock/HANDOFF.md | 57 + .../LIGHT-ARITHMETIC-5387.json | 146 + .../03-precision-stock/LIGHT-ARITHMETIC.json | 189 + .../03-precision-stock/REPORT-5387-v1.md | 160 + .../frozen/03-precision-stock/REPORT.md | 393 + .../03-precision-stock/check_precision.py | 125 + .../check_precision_5387.py | 54 + .../5387-binding-controls-v1.json | 25 + .../04-exact-funding/5387-receipt-v1.json | 363 + .../04-exact-funding/5387-receipt-v1.sha256 | 1 + .../04-exact-funding/5387-receipt-v2.json | 398 + .../04-exact-funding/5387-receipt-v2.sha256 | 1 + .../04-exact-funding/HANDOFF-INDEX.json | 40 + .../frozen/04-exact-funding/REPORT-5387.md | 60 + .../frozen/04-exact-funding/REPORT.md | 63 + .../frozen/04-exact-funding/bind_5387.py | 48 + .../frozen/04-exact-funding/bind_and_check.py | 83 + .../04-exact-funding/check_5387_bindings.py | 23 + .../check_source_inventory.py | 21 + .../frozen/04-exact-funding/close_5383.py | 37 + .../frozen/04-exact-funding/close_5383_v3.py | 38 + .../frozen/04-exact-funding/close_5387.py | 43 + .../frozen/04-exact-funding/exact_engine.py | 129 + .../optimistic-screen-v1.json | 298 + .../frozen/04-exact-funding/receipt-v1.json | 355 + .../frozen/04-exact-funding/receipt-v1.sha256 | 1 + .../frozen/04-exact-funding/receipt-v2.json | 385 + .../frozen/04-exact-funding/receipt-v2.sha256 | 1 + .../frozen/04-exact-funding/receipt-v3.json | 390 + .../frozen/04-exact-funding/receipt-v3.sha256 | 1 + .../frozen/04-exact-funding/reproduce.py | 17 + .../frozen/04-exact-funding/reproduce_5387.py | 26 + .../04-exact-funding/run_optimistic_screen.py | 15 + .../04-exact-funding/source-inventory-v1.json | 73 + .../BOUNDED-REGISTERED-RUN.json | 10948 ++++++++ .../09-capsule-cold/CAPSULE-INDEX-5387.json | 134 + .../frozen/09-capsule-cold/FILES.json | 955 + .../frozen/09-capsule-cold/HANDOFF.md | 13 + .../MERKLE-NEGATIVE-CONTROLS.json | 29 + .../OFFICIAL-EXPORT-PREFLIGHT-5387.json | 171 + .../09-capsule-cold/POST-RUN-HASHES.json | 20537 ++++++++++++++++ .../frozen/09-capsule-cold/PR-BODY.md | 42 + .../09-capsule-cold/PRE-RUN-HASHES.json | 20537 ++++++++++++++++ .../frozen/09-capsule-cold/REPORT.md | 40 + .../frozen/09-capsule-cold/RESULT.json | 64 + .../09-capsule-cold/ROOT-HEAVY-GRANT.json | 33 + .../frozen/09-capsule-cold/VALIDATION.json | 185 + .../capsule-5387-v1-MERKLE-PROVENANCE.json | 728 + .../capsule-5387-v1/CANONICAL-COMMIT.raw | 6 + .../capsule-5387-v1/EXACT-COMMIT.raw | 6 + .../capsule-5387-v1/IMMUTABLE-MANIFEST.json | 448 + .../capsule-5387-v1/SOURCE-HISTORY.json | 7 + .../certificates/selected-result.json | 92 + .../docs/research/agent-task-catalog.json | 1242 + .../free-word-tensor-lift-audit/PROOF.md | 174 + .../higher-moment-strictification/verify.py | 421 + .../joint-helper-lattice/CONTROLLER.json | 5224 ++++ .../buffer-borrowing/verify_buffers.py | 351 + .../price_profile.py | 147 + .../architecture/mixed_target_probe.py | 291 + .../complex/native_extensions.py | 233 + .../ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../ARITHMETIC.json | 241 + .../dependencies/compiler-refill/endpoint.py | 240 + .../query-thinned-controllers/RESULT.json | 356 + .../certificates/selected-result.json | 92 + .../PREDECESSOR-5383.json | 961 + .../eight-owned-relations/PREDECESSOR.json | 24 + .../research/eight-owned-relations/README.md | 63 + .../eight-owned-relations/RELATIONS.json | 652 + .../eight-owned-relations/RESULT.json | 429 + .../eight-owned-relations/SOURCES.json | 90 + .../research/eight-owned-relations/TASK.json | 71 + .../eight-owned-relations/VERIFY.json | 38 + .../eight-owned-relations/WORD.json.gz | Bin 0 -> 207423 bytes .../research/eight-owned-relations/native.py | 329 + .../research/eight-owned-relations/price.py | 205 + .../research/eight-owned-relations/verify.py | 67 + .../higher-moment-strictification/verify.py | 421 + .../joint-helper-lattice/CONTROLLER.json | 5224 ++++ .../buffer-borrowing/verify_buffers.py | 351 + .../architecture/mixed_target_probe.py | 291 + .../ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../ARITHMETIC.json | 241 + .../dependencies/compiler-refill/endpoint.py | 240 + .../query-thinned-controllers/RESULT.json | 356 + .../snapshot/scripts/check_research_commit.py | 149 + .../snapshot/scripts/research_package.py | 1022 + .../capsule-v1-MERKLE-PROVENANCE.json | 696 + .../capsule-v1/CANONICAL-COMMIT.raw | 6 + .../capsule-v1/EXACT-COMMIT.raw | 6 + .../capsule-v1/IMMUTABLE-MANIFEST.json | 426 + .../capsule-v1/SOURCE-HISTORY.json | 7 + .../certificates/selected-result.json | 92 + .../docs/research/agent-task-catalog.json | 1242 + .../free-word-tensor-lift-audit/PROOF.md | 174 + .../higher-moment-strictification/verify.py | 421 + .../joint-helper-lattice/CONTROLLER.json | 5224 ++++ .../buffer-borrowing/verify_buffers.py | 351 + .../price_profile.py | 147 + .../architecture/mixed_target_probe.py | 291 + .../complex/native_extensions.py | 233 + .../ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../ARITHMETIC.json | 241 + .../dependencies/compiler-refill/endpoint.py | 240 + .../query-thinned-controllers/RESULT.json | 356 + .../certificates/selected-result.json | 92 + .../higher-moment-strictification/verify.py | 421 + .../joint-helper-lattice/CONTROLLER.json | 5224 ++++ .../buffer-borrowing/verify_buffers.py | 351 + .../kappa-joint-relations-20261023/README.md | 280 + .../RESULT.json | 961 + .../SOURCES.json | 90 + .../kappa-joint-relations-20261023/TASK.json | 80 + .../VERIFY.json | 38 + .../WITNESS.json | 434 + .../WORD.json.gz | Bin 0 -> 207650 bytes .../kappa-joint-relations-20261023/native.py | 344 + .../kappa-joint-relations-20261023/price.py | 198 + .../kappa-joint-relations-20261023/verify.py | 64 + .../architecture/mixed_target_probe.py | 291 + .../ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../ARITHMETIC.json | 241 + .../dependencies/compiler-refill/endpoint.py | 240 + .../query-thinned-controllers/RESULT.json | 356 + .../snapshot/scripts/check_research_commit.py | 149 + .../snapshot/scripts/research_package.py | 1022 + .../supplement-03-v1/MANIFEST.json | 36 + .../pr-intake-evidence/pr4610/PROOF-REVIEW.md | 137 + .../SPECIALIZATION.md | 130 + .../transfer-audit/FINITE-TEMPLATE-CLOSURE.md | 339 + .../query-thinned-controllers/PROOF.md | 278 + .../verify_merkle_provenance.py | 37 + .../replay_exact.py | 11 + .../verify.py | 143 + 188 files changed, 119382 insertions(+) create mode 100644 research/price-plane-independent-validation/.gitattributes create mode 100644 research/price-plane-independent-validation/HANDOFF.md create mode 100644 research/price-plane-independent-validation/NOTICE.md create mode 100644 research/price-plane-independent-validation/PACKET.json create mode 100644 research/price-plane-independent-validation/PATH-ALIASES.json create mode 100644 research/price-plane-independent-validation/README.md create mode 100644 research/price-plane-independent-validation/RESULT.json create mode 100644 research/price-plane-independent-validation/SOURCES.json create mode 100644 research/price-plane-independent-validation/SUPPLEMENT-MERKLE.json create mode 100644 research/price-plane-independent-validation/TASK.json create mode 100644 research/price-plane-independent-validation/VERIFY.json create mode 100644 research/price-plane-independent-validation/evidence/package-run/BOUNDED-PACKAGE-RUN.json create mode 100644 research/price-plane-independent-validation/evidence/package-run/PACKAGE-POST-HASHES.json create mode 100644 research/price-plane-independent-validation/evidence/package-run/PACKAGE-PRE-HASHES.json create mode 100644 research/price-plane-independent-validation/exec_frozen.py create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-delta/NARROW-TRANSFER-STOP.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-delta/check_delta.py create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/ENGINE-FREEZE.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/HANDOFF.md create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/VERIFIED-PINS.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/independent_physical_check.py create mode 100644 research/price-plane-independent-validation/frozen/01-physical/CONNECTOR-PROOF.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/ENGINE-FREEZE.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/HANDOFF-5383.md create mode 100644 research/price-plane-independent-validation/frozen/01-physical/PHYSICAL-RECEIPT.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/PHYSICAL-REVIEW.md create mode 100644 research/price-plane-independent-validation/frozen/01-physical/README.exact-head.md create mode 100644 research/price-plane-independent-validation/frozen/01-physical/VERIFIED-PINS.json create mode 100644 research/price-plane-independent-validation/frozen/01-physical/independent_physical_check.py create mode 100644 research/price-plane-independent-validation/frozen/02-census/CANDIDATE-CONTRACT-v1.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/CANDIDATE-CONTRACT-v2.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/DELTA-5387-v2.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/INVOICE-v1.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/INVOICE-v2.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/RECEIPT-v1.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/RECEIPT-v2.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json create mode 100644 research/price-plane-independent-validation/frozen/02-census/REPORT.md create mode 100644 research/price-plane-independent-validation/frozen/02-census/census-v2.py create mode 100644 research/price-plane-independent-validation/frozen/02-census/census.py create mode 100644 research/price-plane-independent-validation/frozen/02-census/reproduce.py create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-5387-v1.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v1.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v2.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/FILES.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/HANDOFF.md create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC.json create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/REPORT-5387-v1.md create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/REPORT.md create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/check_precision.py create mode 100644 research/price-plane-independent-validation/frozen/03-precision-stock/check_precision_5387.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/5387-binding-controls-v1.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v1.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v1.sha256 create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v2.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v2.sha256 create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/HANDOFF-INDEX.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/REPORT-5387.md create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/REPORT.md create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/bind_5387.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/bind_and_check.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/check_5387_bindings.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/check_source_inventory.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/close_5383.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/close_5383_v3.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/close_5387.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/exact_engine.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/optimistic-screen-v1.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v1.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v1.sha256 create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v2.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v2.sha256 create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v3.json create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/receipt-v3.sha256 create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/reproduce.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/reproduce_5387.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/run_optimistic_screen.py create mode 100644 research/price-plane-independent-validation/frozen/04-exact-funding/source-inventory-v1.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/CAPSULE-INDEX-5387.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/FILES.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/HANDOFF.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/MERKLE-NEGATIVE-CONTROLS.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/OFFICIAL-EXPORT-PREFLIGHT-5387.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/POST-RUN-HASHES.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/PR-BODY.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/PRE-RUN-HASHES.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/REPORT.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/ROOT-HEAVY-GRANT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/VALIDATION.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1-MERKLE-PROVENANCE.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/CANONICAL-COMMIT.raw create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/query-thinned-controllers/PROOF.md create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/verify_merkle_provenance.py create mode 100644 research/price-plane-independent-validation/replay_exact.py create mode 100644 research/price-plane-independent-validation/verify.py diff --git a/research/price-plane-independent-validation/.gitattributes b/research/price-plane-independent-validation/.gitattributes new file mode 100644 index 0000000000..fa1385d99a --- /dev/null +++ b/research/price-plane-independent-validation/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/research/price-plane-independent-validation/HANDOFF.md b/research/price-plane-independent-validation/HANDOFF.md new file mode 100644 index 0000000000..2f04d913c8 --- /dev/null +++ b/research/price-plane-independent-validation/HANDOFF.md @@ -0,0 +1,15 @@ +HANDOFF + +**Research discussion / PR / artifact:** Independent validation package `research/price-plane-independent-validation`; [current public review claim](https://github.com/CrocSwap/integer-mult-bounds/pull/5387#issuecomment-6374985927). This package is local until root publishes its committed branch. Operational drafts and publication receipts are in `outputs/price-plane-validation-package-20261024` at the coordinating workspace. + +**Exact commit:** Sources: strongest PR5387 `b1ab650d36f59e5be682a813145b7c67e219e341`; comparator PR5383 `4bd6efa51a495a7c7b7754915cf0244e7e60969e`; canonical base/source parent `1ec1119972c9aefe42525172d07b332fcff81cb4`. Root records the exact package publication commit separately from those source commits. + +**What is established:** Independent source-bound physical/census/precision/stock/tape/exact-funding gates admit strongest independently validated conditional point in this frozen round, κ=.003026674765. Complete bill64148paid/10800productive,surplus752. Unique fixed-profile crossing strictly within(.00302667476807,.00302667476808), with full domain derivative/away proof. One actual frozen PR5387 author registered pair passes140.030862s/223576KiB,44controls,20535unchanged files. Own registered independent normal/optimized pair passed128.740804s,224952KiBpeak,exit0,empty stderr,178package+174shared guarded inputs unchanged. The package independently reruns both physical words, full literal invoices/chronologies, scalar preparation and exact numeric funding; all stable fields must match, with explicit source/credit/semantic controls. The same five framework assumptions remain, and selected metadata is unchanged. + +**What remains uncertain:** Generic native/all-column, owned-erasure, compiler, precision/tape and analytic-recovery foundations remain conditional. Source phase lowering and ordinary BIT are authenticated inherited foundations. No own PR5383 author cold pair, emitted enormous compiler word, unconditional/formal-kernel theorem, independent human acceptance or global construction optimum is claimed. Hosted CI and maintainer selection require separate evidence. Original historical reports retain their then-open gates; final joined records supersede those stages without rewriting them. + +**Smallest useful next task:** Root reviews exact final package/export receipts, refreshes live source/head/guidance/overlap through the sole feed, publishes the focused independent validation PR and records public CI. New physical-profile research needs a changed literal witness and complete invoice; do not infer physical coverage from histogram equality or repeat the author cold pair. + +**Reproduction command and expected runtime:** `python3 -B scripts/research_package.py --package research/price-plane-independent-validation` runs normal/optimized independent checks with240seconds per mode and roughly70seconds per mode expected. Git-free direct: `python3 -I -B research/price-plane-independent-validation/verify.py`; optimized direct adds`-O`. Add`--integrity-only` for source/receipt authentication without mathematics. Frozen assertion-based census/precision checks are explicitly compiled with optimize=0 in both modes. Actual package results and resource guard are in RESULT.json/evidence/package-run; complete actual author cold records remain separately in frozen/09-capsule-cold. + +**Predecessor credit:** Ali Romman #5377 one-relation predecessor and #5383 eight-relation mechanism; Dugongue #5387 refinement and changed witness; Cao Yifan #4610; Cinna Davis controller/helpers; zxv native/cache/compiler/precision; Jacob Alan Sussman recursion; Chris R/Clear1nsight #5241/#5384 and this independent review; ToikY, Tekalign, Douglas Colkitt and all exact retained native/Clifford/BIT/precision/analytic/recovery source notices. Substantial OpenAI Codex assistance; Apache-2.0. No construction authorship or independent human acceptance claimed. diff --git a/research/price-plane-independent-validation/NOTICE.md b/research/price-plane-independent-validation/NOTICE.md new file mode 100644 index 0000000000..19624a4a45 --- /dev/null +++ b/research/price-plane-independent-validation/NOTICE.md @@ -0,0 +1 @@ +New independent review by Chris R / Clear1nsight with substantial OpenAI Codex assistance; Apache-2.0. Ali Romman owns #5377/#5383 construction; Dugongue owns #5387 completion-reserve refinement and distinct literal witness. Retain Cao Yifan, Cinna Davis, zxv, Jacob Alan Sussman, ToikY, Tekalign, Douglas Colkitt and all exact frozen source notices. No independent human review is claimed. diff --git a/research/price-plane-independent-validation/PACKET.json b/research/price-plane-independent-validation/PACKET.json new file mode 100644 index 0000000000..86c5d1fd86 --- /dev/null +++ b/research/price-plane-independent-validation/PACKET.json @@ -0,0 +1,897 @@ +{ + "schema": "independent-price-plane-packet/1", + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "strongest_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "files": [ + { + "path": "PATH-ALIASES.json", + "bytes": 32816, + "sha256": "d4f8c900cf984d8417ae403d289566bb910a07f08a95d2c858263af53be5794b" + }, + { + "path": "SUPPLEMENT-MERKLE.json", + "bytes": 666705, + "sha256": "b38c2d0ce7ba5ed9a5daf9b0d722d4a26c6df078c421c3254d97b5c1f417b160" + }, + { + "path": "exec_frozen.py", + "bytes": 790, + "sha256": "f5c7b9316784f82365f76e7c526d785b13854f7f9e056e55067cde0d47bbab4d" + }, + { + "path": "frozen/01-physical/5387-delta/NARROW-TRANSFER-STOP.json", + "bytes": 709, + "sha256": "06ca1f34dc893a2a905d77fec6012e2b5cdbdb0331deaa3120aef36386627d7e" + }, + { + "path": "frozen/01-physical/5387-delta/check_delta.py", + "bytes": 6258, + "sha256": "3141914411fa0b282d6dada93ba6fbd56d23643e8f0fa72775443c51e3d6766b" + }, + { + "path": "frozen/01-physical/5387-fresh/ENGINE-FREEZE.json", + "bytes": 741, + "sha256": "665bf8ca847aedd8fbb2253283df16bd6a8f7ac404a5ac75af7ce7031a030897" + }, + { + "path": "frozen/01-physical/5387-fresh/HANDOFF.md", + "bytes": 2054, + "sha256": "3d383b9d08bdf90fdaf87231bd837acd88054267372a40e9453c793c7c28d4bb" + }, + { + "path": "frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json", + "bytes": 11307, + "sha256": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd" + }, + { + "path": "frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md", + "bytes": 8637, + "sha256": "73f2af9fcafba3a7b449f18093a9fbf25d546dbd66050b019607819b2ed83e18" + }, + { + "path": "frozen/01-physical/5387-fresh/VERIFIED-PINS.json", + "bytes": 12444, + "sha256": "5d742de6e96277c35a475018e8da3406b196436e14ec1cf067a517541ebda078" + }, + { + "path": "frozen/01-physical/5387-fresh/check.stdout.log", + "bytes": 11307, + "sha256": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd" + }, + { + "path": "frozen/01-physical/5387-fresh/independent_physical_check.py", + "bytes": 19967, + "sha256": "824d02cddbfeadf1d6304724693f15cdbbc107df2575457932f6e0098cb1f9e0" + }, + { + "path": "frozen/01-physical/CONNECTOR-PROOF.json", + "bytes": 275, + "sha256": "6b96a962cdd180f9b218b39eb3c2bfd46ad7da66338c756700df7590f8aeb446" + }, + { + "path": "frozen/01-physical/ENGINE-FREEZE.json", + "bytes": 755, + "sha256": "bf9df616bf6afbba72770eba987916f3bf73ceb43346b97b1bf2a3c54c1bdaee" + }, + { + "path": "frozen/01-physical/HANDOFF-5383.md", + "bytes": 2176, + "sha256": "f324c54b5220a2448e5499223d494a81ba124bb208ec9c6249b0c4df5a25fc2e" + }, + { + "path": "frozen/01-physical/PHYSICAL-RECEIPT.json", + "bytes": 11049, + "sha256": "c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786" + }, + { + "path": "frozen/01-physical/PHYSICAL-REVIEW.md", + "bytes": 13494, + "sha256": "5982b858cef0e44452874214d86262adc70782bc3d19e3b509b4ed225ca6d893" + }, + { + "path": "frozen/01-physical/README.exact-head.md", + "bytes": 16479, + "sha256": "899027b74219ece1832d711e27def50eb49994cd28ede4fedcdd0bd0f2574c64" + }, + { + "path": "frozen/01-physical/VERIFIED-PINS.json", + "bytes": 11913, + "sha256": "9187117bb4323dd5a2fcbe46c379765b78a673241184095b430d46d45be7a17b" + }, + { + "path": "frozen/01-physical/independent_physical_check.py", + "bytes": 19038, + "sha256": "5c5bebffa16bb7d7dbfda74311997f8cd0f1a405259bef5fa319514f10d62644" + }, + { + "path": "frozen/02-census/CANDIDATE-CONTRACT-v1.json", + "bytes": 3356, + "sha256": "713be46d29cd2d33bf4cf7b1512f06f014a7d70fdc47d15b89c72fbb6948cbb8" + }, + { + "path": "frozen/02-census/CANDIDATE-CONTRACT-v2.json", + "bytes": 3856, + "sha256": "06c08bee274a19a83c19b8ea6be24bcee9a6eaab29ac794adf73bce25125873e" + }, + { + "path": "frozen/02-census/DELTA-5387-v2.json", + "bytes": 33058, + "sha256": "9ad4210af539f0886e4a56f57fc7bf32ec2af18eb07a902d0abb5e932e8710fc" + }, + { + "path": "frozen/02-census/INVOICE-v1.json", + "bytes": 8559, + "sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e" + }, + { + "path": "frozen/02-census/INVOICE-v2.json", + "bytes": 8541, + "sha256": "2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e" + }, + { + "path": "frozen/02-census/RECEIPT-v1.json", + "bytes": 1067, + "sha256": "d7aa82b1ecedbdc60ecd7e88dcac3a93f36c3f5a718529cd27c057ec7f1e0d1e" + }, + { + "path": "frozen/02-census/RECEIPT-v2.json", + "bytes": 1223, + "sha256": "33e8788b2fdb6026f091d1e997243a261a380e3f2e2e2e0fc7a6f29faed25bb2" + }, + { + "path": "frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json", + "bytes": 8559, + "sha256": "dc8d73ca9e1b224537aba267c00ab75dc86f4c9d84021e9228c9280a74581470" + }, + { + "path": "frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json", + "bytes": 337, + "sha256": "8edfafccf9324ebb8af7bb2619fb04de3cafcb80ade50416524ec06262138fd8" + }, + { + "path": "frozen/02-census/REPORT.md", + "bytes": 8585, + "sha256": "935b8033fa7e17f4918e01c8885b796823f8750ab00559649e40bfcac740f87b" + }, + { + "path": "frozen/02-census/census-v2.py", + "bytes": 9110, + "sha256": "4741988803404c0be8efdc6aaaf150dffd0b1a56eeb0d55380b8e6fbebd15901" + }, + { + "path": "frozen/02-census/census.py", + "bytes": 8962, + "sha256": "681c894f451c5237a7f8e150098a6a55e082a7919b2378641a15a0ba7519453d" + }, + { + "path": "frozen/02-census/reproduce.py", + "bytes": 1077, + "sha256": "d2237402c5723703b7bd8b43a9f7e7e40da7125d96c857c7ea30cd8bb104e206" + }, + { + "path": "frozen/03-precision-stock/CLOSURE-5387-v1.json", + "bytes": 7627, + "sha256": "2e90da356fdf32ad35dfe9bd8f7c4567e12e4fdf4453595c09f6bc6370e6cee3" + }, + { + "path": "frozen/03-precision-stock/CLOSURE-v1.json", + "bytes": 5221, + "sha256": "f2082ec98cead48372f5e98bb4bccadfcb4c9ef51c15dae30fb595a41cd2d2e6" + }, + { + "path": "frozen/03-precision-stock/CLOSURE-v2.json", + "bytes": 5728, + "sha256": "0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b" + }, + { + "path": "frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md", + "bytes": 2065, + "sha256": "eb92a064ef7c44435620e2151ab8fa1d7471518f5fd315725d84f726314f9aba" + }, + { + "path": "frozen/03-precision-stock/FILES.json", + "bytes": 1017, + "sha256": "6a3cdc904be70927293d567a4fb12a53898659578221c82fce113ff2713d4fcb" + }, + { + "path": "frozen/03-precision-stock/HANDOFF.md", + "bytes": 3567, + "sha256": "c545b0d871802e691af099f698a88567898c9741cdacbb6e24f074e67690c63b" + }, + { + "path": "frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json", + "bytes": 3227, + "sha256": "92309554ad5a60ba5cb02d582d814d1fe539cbcd27943e4561905ed376cf9519" + }, + { + "path": "frozen/03-precision-stock/LIGHT-ARITHMETIC.json", + "bytes": 4346, + "sha256": "aef988fc821609071c4b6a717e0476cdc5fe766c5b0968f38ea733bc759470fd" + }, + { + "path": "frozen/03-precision-stock/REPORT-5387-v1.md", + "bytes": 8542, + "sha256": "8e3cbbe31d549dff0c5c1c0acd31159e47bdbddc09279ded89d342562979789d" + }, + { + "path": "frozen/03-precision-stock/REPORT.md", + "bytes": 24349, + "sha256": "967bed225bcd30ff14597a56919f8d370a905f2c1391e8355f186dd81c58a542" + }, + { + "path": "frozen/03-precision-stock/check_precision.py", + "bytes": 6257, + "sha256": "2b2691ff1978fbb2a11fd9c355fd423a32b4e85cfc907d79fa77bd24b65c7043" + }, + { + "path": "frozen/03-precision-stock/check_precision_5387.py", + "bytes": 3123, + "sha256": "ab1036ab48950da4e0f60b54ba044b0c99301b5f23b750f0994a0212518ccc35" + }, + { + "path": "frozen/04-exact-funding/5387-binding-controls-v1.json", + "bytes": 863, + "sha256": "4f08d251098c8ff5b89a1ffb14bbe9e36d3fbb70c7db0570d2927da62f608645" + }, + { + "path": "frozen/04-exact-funding/5387-receipt-v1.json", + "bytes": 15435, + "sha256": "f077be8f5f4543f0677ecb9ce7a1d31370e2dc04d58744519720384e3bd54585" + }, + { + "path": "frozen/04-exact-funding/5387-receipt-v1.sha256", + "bytes": 87, + "sha256": "220bfdd6f0cf3426349e70e058a8fda74e47b2925e5667b5bbbfd08df1ac1ceb" + }, + { + "path": "frozen/04-exact-funding/5387-receipt-v2.json", + "bytes": 18756, + "sha256": "5fc2ef7fb7c0d9cecebc14597f411d17091060bf30a0fb805cbc59ad3fcbd7bf" + }, + { + "path": "frozen/04-exact-funding/5387-receipt-v2.sha256", + "bytes": 87, + "sha256": "45e9790f9c307c47c464c5a0a2f137fe6faef77244731b9a5890061f6f2d4c90" + }, + { + "path": "frozen/04-exact-funding/HANDOFF-INDEX.json", + "bytes": 2090, + "sha256": "53332a8ea7d81fd9987d9c8ccb23c1ac02b9cb01b39af298059bc41f55e41152" + }, + { + "path": "frozen/04-exact-funding/REPORT-5387.md", + "bytes": 8649, + "sha256": "e87b9437a9d39d4de27a36c7b7bc0e09f73ac7029bba475fb7d5e9602394292c" + }, + { + "path": "frozen/04-exact-funding/REPORT.md", + "bytes": 9352, + "sha256": "cc9ce3d3a24f846f858bc9cfaaed18f67b475044758ba2e3abebfb9fd5241f2e" + }, + { + "path": "frozen/04-exact-funding/bind_5387.py", + "bytes": 6112, + "sha256": "0bbbaa68e0f159a5c6b5e20a98d7f909c4109b1abe3fec13105a1710c6c40940" + }, + { + "path": "frozen/04-exact-funding/bind_and_check.py", + "bytes": 7522, + "sha256": "f44fac36a0f35d3287ae004d0251a3f3a5ebc70ada2a06c12b80cf1141103cb2" + }, + { + "path": "frozen/04-exact-funding/check_5387_bindings.py", + "bytes": 2187, + "sha256": "d4956ccdf5136a720bb98cf298e66621665462f37851bf1b2044dab131db7567" + }, + { + "path": "frozen/04-exact-funding/check_source_inventory.py", + "bytes": 1643, + "sha256": "bda392098bcb91f3bd0507d302e39577428f1c0601261f6c7b7548bb5e9eff1d" + }, + { + "path": "frozen/04-exact-funding/close_5383.py", + "bytes": 4675, + "sha256": "2ea807be4d9516f109934ee652626ca84c20f8f0a659b56b5b53e1a58bb1bac5" + }, + { + "path": "frozen/04-exact-funding/close_5383_v3.py", + "bytes": 4982, + "sha256": "741275e6a68e9d68f9094987ce9db6cce989f7610479ed7b6c85851041edbe78" + }, + { + "path": "frozen/04-exact-funding/close_5387.py", + "bytes": 6361, + "sha256": "4559931a4b6d667713bb69823e616ae311bc8d276f820a5bf8d2d8c2b8425c85" + }, + { + "path": "frozen/04-exact-funding/exact_engine.py", + "bytes": 10924, + "sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6" + }, + { + "path": "frozen/04-exact-funding/optimistic-screen-v1.json", + "bytes": 11159, + "sha256": "525d0a2f27748f2507b228910b7e36a56795ba8bf131d6dd83dacd52c96812ba" + }, + { + "path": "frozen/04-exact-funding/receipt-v1.json", + "bytes": 14263, + "sha256": "fd195f406b6e8e11e29cad1a8d7c4ecf264ea5b968d19472a1ff4a2db0f4b112" + }, + { + "path": "frozen/04-exact-funding/receipt-v1.sha256", + "bytes": 82, + "sha256": "d74cc4c765edc1fc2c464753186a9fe07526d3bf7ae6c60bd8aad61db965613f" + }, + { + "path": "frozen/04-exact-funding/receipt-v2.json", + "bytes": 17088, + "sha256": "9f607a7d522018c3e60acde2ea95f44814506fa9a6930eb646568f9533a6ab39" + }, + { + "path": "frozen/04-exact-funding/receipt-v2.sha256", + "bytes": 82, + "sha256": "90ddaa12f614ff0792656e963739ea23cd792e018d1440cc5cb6f8d1e38c7ed7" + }, + { + "path": "frozen/04-exact-funding/receipt-v3.json", + "bytes": 17478, + "sha256": "a5f48459f8500909a243462c2cd205c57f064fc76ef7082ba41c516fbd5a5794" + }, + { + "path": "frozen/04-exact-funding/receipt-v3.sha256", + "bytes": 82, + "sha256": "72018dd2f18cfe15a203ed76baf052cdc8dfe2fc8cf20dcd79082e335fdb3622" + }, + { + "path": "frozen/04-exact-funding/reproduce.py", + "bytes": 1462, + "sha256": "dd2f5eb095ae89e95206d447a98448dca96d145036dd13ba0363156ae2b2833b" + }, + { + "path": "frozen/04-exact-funding/reproduce_5387.py", + "bytes": 2226, + "sha256": "d1ce8cf0b67338048cea71775bfc84af6c0bce982e7d2391e0af147deb05f72f" + }, + { + "path": "frozen/04-exact-funding/run_optimistic_screen.py", + "bytes": 1473, + "sha256": "857c2b6a8b162052f7d7600a4228cf4e642bde684749f3cf9ef0999a086c848b" + }, + { + "path": "frozen/04-exact-funding/source-inventory-v1.json", + "bytes": 2389, + "sha256": "fb5552da9096651bcf8cec614d6ef2c3c6429d33f089697eb9b57d3622b69aa4" + }, + { + "path": "frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json", + "bytes": 165646, + "sha256": "4a807361411d4a226bd727c8e0d9f022be2827e1a2d7e31ed97e6ed39919a1a8" + }, + { + "path": "frozen/09-capsule-cold/CAPSULE-INDEX-5387.json", + "bytes": 5174, + "sha256": "3ed0f3fa33a0c5285811004abc80ae3ca77763f89a7c0a283790d19b69de70b9" + }, + { + "path": "frozen/09-capsule-cold/FILES.json", + "bytes": 46005, + "sha256": "5bcd9cd98f60ae85d0a4c116d3d00e253cc2792179016794a76e9ea695fda2fe" + }, + { + "path": "frozen/09-capsule-cold/HANDOFF.md", + "bytes": 3785, + "sha256": "0faca9bddcb92184f082065f5417c27d701b1904d67f54dc13617a164ecc7399" + }, + { + "path": "frozen/09-capsule-cold/MERKLE-NEGATIVE-CONTROLS.json", + "bytes": 800, + "sha256": "a36b6f9b6cda7533bb89e3145c6042a682686f1cfdbca58e69dfb69ebe7413f0" + }, + { + "path": "frozen/09-capsule-cold/OFFICIAL-EXPORT-PREFLIGHT-5387.json", + "bytes": 6330, + "sha256": "d222ea9365eb6fe804e325ef50774f2b00d15ec3eadedf948a1c61b9d3ca6245" + }, + { + "path": "frozen/09-capsule-cold/POST-RUN-HASHES.json", + "bytes": 2812881, + "sha256": "f688a454a47aa3987f4c468eebb8c9f4ad8f6bf9c84ad81afb35d2698aa61664" + }, + { + "path": "frozen/09-capsule-cold/PR-BODY.md", + "bytes": 7405, + "sha256": "fffcbd543fc05b873b99d533eafbdc5071b28bc61818690e038fb706db4ec6d8" + }, + { + "path": "frozen/09-capsule-cold/PRE-RUN-HASHES.json", + "bytes": 2812881, + "sha256": "f688a454a47aa3987f4c468eebb8c9f4ad8f6bf9c84ad81afb35d2698aa61664" + }, + { + "path": "frozen/09-capsule-cold/REGISTERED-COLD.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "frozen/09-capsule-cold/REGISTERED-COLD.stdout.log", + "bytes": 920, + "sha256": "36c8e4db54e08521bf44d0346c73a6e7e84612619ae176534cf36b57fe67856f" + }, + { + "path": "frozen/09-capsule-cold/REPORT.md", + "bytes": 6606, + "sha256": "097cbc775f0d3ad33033924018486594a3d1681548abbc3092e307dac8929975" + }, + { + "path": "frozen/09-capsule-cold/RESULT.json", + "bytes": 2474, + "sha256": "d42b801e8cf4dbf875498ac30f3bddd5b29568900e24919fc2a6e3856d746eca" + }, + { + "path": "frozen/09-capsule-cold/ROOT-HEAVY-GRANT.json", + "bytes": 1406, + "sha256": "4ce29aeae73bd9d5fe52eba2ae6f22fcb3bdf35c3eb9d3eead291cf329bc43f6" + }, + { + "path": "frozen/09-capsule-cold/VALIDATION.json", + "bytes": 8621, + "sha256": "3919c6afe9ee88449bb060a492b4dd5162561adf1664d643369020e6fc67a917" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/CANONICAL-COMMIT.raw", + "bytes": 317, + "sha256": "8fc74b8fe0be2ef8075db0f654579721bcaf73fa7f1744cb23fe086edc553716" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw", + "bytes": 313, + "sha256": "73c5b337305a1122b7d474f5ec1b74205bc169f51e34868b5cb40706a5263e00" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json", + "bytes": 20448, + "sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json", + "bytes": 137, + "sha256": "4a24f2964a93baf9e99b962d28a4c55a28498cf7b44f8ee5d1b9625f1d5f6004" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "bytes": 77545, + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "bytes": 9907, + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "bytes": 17152, + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "bytes": 9107, + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "bytes": 12470, + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "bytes": 11603, + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json", + "bytes": 22334, + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json", + "bytes": 1524, + "sha256": "a0fc52a167d033225cf62fcf88ac635317059d3ce09de336f9f81008450381ef" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md", + "bytes": 9358, + "sha256": "5d5f033c82a8ed8b7e9c3fe3d3f18f559f4f651bb11d0e6a2c916e244777fb99" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json", + "bytes": 8859, + "sha256": "bc9ba05595497f399da5e5a548b2d2c83696e539fa1257ab7e2cb49d438cd9dd" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json", + "bytes": 14772, + "sha256": "34ad456c1f98f7f8c361d63539ef26d75dad8ffb3444edf29652372acabf1aaf" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json", + "bytes": 3665, + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json", + "bytes": 5444, + "sha256": "e3d0ee26c8b6a409be30b83aada3a2c3d1b332408a59307733f4299c940ff8b8" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json", + "bytes": 1298, + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz", + "bytes": 207423, + "sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py", + "bytes": 16032, + "sha256": "21e616b991fdc3af414e5e390e9eb6bb93ba39a560e235d324f4bb303148c1e8" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py", + "bytes": 13912, + "sha256": "3785b27e75d85116706ecaf9f7174132a72d00e1c28cea2cd4afada4ba30e44a" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py", + "bytes": 3747, + "sha256": "d46b075109f4af659cc099801062fe34b9d714903edb1d2807c1bc75edac2757" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py", + "bytes": 17152, + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "bytes": 11603, + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py", + "bytes": 7048, + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py", + "bytes": 50854, + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f" + }, + { + "path": "frozen/09-capsule-cold/capsule-5387-v1-MERKLE-PROVENANCE.json", + "bytes": 673809, + "sha256": "627449e1d5f8dd503b257ea7df8059d000bda46fcb97e4ae54ccdb7adf403383" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw", + "bytes": 317, + "sha256": "8fc74b8fe0be2ef8075db0f654579721bcaf73fa7f1744cb23fe086edc553716" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw", + "bytes": 341, + "sha256": "d1a49634694ac9f77010440e9da8bbcaec5abfac9c7c2e7ec142b93008b27039" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json", + "bytes": 19658, + "sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json", + "bytes": 137, + "sha256": "4a24f2964a93baf9e99b962d28a4c55a28498cf7b44f8ee5d1b9625f1d5f6004" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "bytes": 77545, + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "bytes": 9907, + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "bytes": 17152, + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "bytes": 9107, + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "bytes": 12470, + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "bytes": 11603, + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py", + "bytes": 17152, + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md", + "bytes": 16479, + "sha256": "899027b74219ece1832d711e27def50eb49994cd28ede4fedcdd0bd0f2574c64" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json", + "bytes": 22334, + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json", + "bytes": 3665, + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json", + "bytes": 5801, + "sha256": "4d536a9bd6162b64ecf7bba20bec35fa0ca8fe61abf8e1404cd010b58de07a3d" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json", + "bytes": 1298, + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json", + "bytes": 5482, + "sha256": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz", + "bytes": 207650, + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py", + "bytes": 16822, + "sha256": "3c8efab1f830868c054d33391ee2f8bc74f9bae9c134edf5b455790eb674c1c4" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py", + "bytes": 13360, + "sha256": "6ec03cda9ab6cb27c4a281c12646bbbc232cc57b8ec179969c59b0072c4b59ba" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py", + "bytes": 3474, + "sha256": "43fb20a4ef18fb17f168c9e3c1608898551a04fb64496405d3682983dbf47828" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "bytes": 11603, + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py", + "bytes": 7048, + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py", + "bytes": 50854, + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f" + }, + { + "path": "frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json", + "bytes": 672562, + "sha256": "efa542598c0d9ccb497b1b4c3a5697296877be4d0c77ed748547a671d7574ed5" + }, + { + "path": "frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json", + "bytes": 1483, + "sha256": "08ba6ce4dfa2b829a6a081dc702a3ebf77455a41db842f99ea556fbc2cce5c72" + }, + { + "path": "frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "bytes": 8277, + "sha256": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148" + }, + { + "path": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md", + "bytes": 19802, + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + { + "path": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "bytes": 15369, + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9" + }, + { + "path": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/query-thinned-controllers/PROOF.md", + "bytes": 14363, + "sha256": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841" + }, + { + "path": "frozen/09-capsule-cold/verify_merkle_provenance.py", + "bytes": 2987, + "sha256": "440455b9ce309b628f3af22bdd58063d567aa88f55a211c4360c7d77e4cf618c" + }, + { + "path": "replay_exact.py", + "bytes": 629, + "sha256": "cf8eaf7b5f39faf56550421f8f3f75c471f71ea95ab3bc5e4c438865c551d115" + } + ] +} diff --git a/research/price-plane-independent-validation/PATH-ALIASES.json b/research/price-plane-independent-validation/PATH-ALIASES.json new file mode 100644 index 0000000000..57514c1de4 --- /dev/null +++ b/research/price-plane-independent-validation/PATH-ALIASES.json @@ -0,0 +1,179 @@ +{ + "paths": { + "outputs/price-plane-swarm-20261024/01-physical/5387-delta/NARROW-TRANSFER-STOP.json": "frozen/01-physical/5387-delta/NARROW-TRANSFER-STOP.json", + "outputs/price-plane-swarm-20261024/01-physical/5387-delta/check_delta.py": "frozen/01-physical/5387-delta/check_delta.py", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/ENGINE-FREEZE.json": "frozen/01-physical/5387-fresh/ENGINE-FREEZE.json", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/HANDOFF.md": "frozen/01-physical/5387-fresh/HANDOFF.md", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/PHYSICAL-RECEIPT.json": "frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/PHYSICAL-REVIEW.md": "frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/VERIFIED-PINS.json": "frozen/01-physical/5387-fresh/VERIFIED-PINS.json", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/check.stdout.log": "frozen/01-physical/5387-fresh/check.stdout.log", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/independent_physical_check.py": "frozen/01-physical/5387-fresh/independent_physical_check.py", + "outputs/price-plane-swarm-20261024/01-physical/CONNECTOR-PROOF.json": "frozen/01-physical/CONNECTOR-PROOF.json", + "outputs/price-plane-swarm-20261024/01-physical/ENGINE-FREEZE.json": "frozen/01-physical/ENGINE-FREEZE.json", + "outputs/price-plane-swarm-20261024/01-physical/HANDOFF-5383.md": "frozen/01-physical/HANDOFF-5383.md", + "outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-RECEIPT.json": "frozen/01-physical/PHYSICAL-RECEIPT.json", + "outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-REVIEW.md": "frozen/01-physical/PHYSICAL-REVIEW.md", + "outputs/price-plane-swarm-20261024/01-physical/README.exact-head.md": "frozen/01-physical/README.exact-head.md", + "outputs/price-plane-swarm-20261024/01-physical/VERIFIED-PINS.json": "frozen/01-physical/VERIFIED-PINS.json", + "outputs/price-plane-swarm-20261024/01-physical/independent_physical_check.py": "frozen/01-physical/independent_physical_check.py", + "outputs/price-plane-swarm-20261024/02-census/CANDIDATE-CONTRACT-v1.json": "frozen/02-census/CANDIDATE-CONTRACT-v1.json", + "outputs/price-plane-swarm-20261024/02-census/CANDIDATE-CONTRACT-v2.json": "frozen/02-census/CANDIDATE-CONTRACT-v2.json", + "outputs/price-plane-swarm-20261024/02-census/DELTA-5387-v2.json": "frozen/02-census/DELTA-5387-v2.json", + "outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json": "frozen/02-census/INVOICE-v1.json", + "outputs/price-plane-swarm-20261024/02-census/INVOICE-v2.json": "frozen/02-census/INVOICE-v2.json", + "outputs/price-plane-swarm-20261024/02-census/RECEIPT-v1.json": "frozen/02-census/RECEIPT-v1.json", + "outputs/price-plane-swarm-20261024/02-census/RECEIPT-v2.json": "frozen/02-census/RECEIPT-v2.json", + "outputs/price-plane-swarm-20261024/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json": "frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json", + "outputs/price-plane-swarm-20261024/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json": "frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json", + "outputs/price-plane-swarm-20261024/02-census/REPORT.md": "frozen/02-census/REPORT.md", + "outputs/price-plane-swarm-20261024/02-census/census-v2.py": "frozen/02-census/census-v2.py", + "outputs/price-plane-swarm-20261024/02-census/census.py": "frozen/02-census/census.py", + "outputs/price-plane-swarm-20261024/02-census/reproduce.py": "frozen/02-census/reproduce.py", + "outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-5387-v1.json": "frozen/03-precision-stock/CLOSURE-5387-v1.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v1.json": "frozen/03-precision-stock/CLOSURE-v1.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v2.json": "frozen/03-precision-stock/CLOSURE-v2.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md": "frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md", + "outputs/price-plane-swarm-20261024/03-precision-stock/FILES.json": "frozen/03-precision-stock/FILES.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/HANDOFF.md": "frozen/03-precision-stock/HANDOFF.md", + "outputs/price-plane-swarm-20261024/03-precision-stock/LIGHT-ARITHMETIC-5387.json": "frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/LIGHT-ARITHMETIC.json": "frozen/03-precision-stock/LIGHT-ARITHMETIC.json", + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT-5387-v1.md": "frozen/03-precision-stock/REPORT-5387-v1.md", + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT.md": "frozen/03-precision-stock/REPORT.md", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision.py": "frozen/03-precision-stock/check_precision.py", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision_5387.py": "frozen/03-precision-stock/check_precision_5387.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/5387-binding-controls-v1.json": "frozen/04-exact-funding/5387-binding-controls-v1.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/5387-receipt-v1.json": "frozen/04-exact-funding/5387-receipt-v1.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/5387-receipt-v1.sha256": "frozen/04-exact-funding/5387-receipt-v1.sha256", + "outputs/price-plane-swarm-20261024/04-exact-funding/5387-receipt-v2.json": "frozen/04-exact-funding/5387-receipt-v2.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/5387-receipt-v2.sha256": "frozen/04-exact-funding/5387-receipt-v2.sha256", + "outputs/price-plane-swarm-20261024/04-exact-funding/HANDOFF-INDEX.json": "frozen/04-exact-funding/HANDOFF-INDEX.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/REPORT-5387.md": "frozen/04-exact-funding/REPORT-5387.md", + "outputs/price-plane-swarm-20261024/04-exact-funding/REPORT.md": "frozen/04-exact-funding/REPORT.md", + "outputs/price-plane-swarm-20261024/04-exact-funding/bind_5387.py": "frozen/04-exact-funding/bind_5387.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/bind_and_check.py": "frozen/04-exact-funding/bind_and_check.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/check_5387_bindings.py": "frozen/04-exact-funding/check_5387_bindings.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/check_source_inventory.py": "frozen/04-exact-funding/check_source_inventory.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/close_5383.py": "frozen/04-exact-funding/close_5383.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/close_5383_v3.py": "frozen/04-exact-funding/close_5383_v3.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/close_5387.py": "frozen/04-exact-funding/close_5387.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/exact_engine.py": "frozen/04-exact-funding/exact_engine.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/optimistic-screen-v1.json": "frozen/04-exact-funding/optimistic-screen-v1.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v1.json": "frozen/04-exact-funding/receipt-v1.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v1.sha256": "frozen/04-exact-funding/receipt-v1.sha256", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v2.json": "frozen/04-exact-funding/receipt-v2.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v2.sha256": "frozen/04-exact-funding/receipt-v2.sha256", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v3.json": "frozen/04-exact-funding/receipt-v3.json", + "outputs/price-plane-swarm-20261024/04-exact-funding/receipt-v3.sha256": "frozen/04-exact-funding/receipt-v3.sha256", + "outputs/price-plane-swarm-20261024/04-exact-funding/reproduce.py": "frozen/04-exact-funding/reproduce.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/reproduce_5387.py": "frozen/04-exact-funding/reproduce_5387.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/run_optimistic_screen.py": "frozen/04-exact-funding/run_optimistic_screen.py", + "outputs/price-plane-swarm-20261024/04-exact-funding/source-inventory-v1.json": "frozen/04-exact-funding/source-inventory-v1.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/BOUNDED-REGISTERED-RUN.json": "frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/CAPSULE-INDEX-5387.json": "frozen/09-capsule-cold/CAPSULE-INDEX-5387.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/FILES.json": "frozen/09-capsule-cold/FILES.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/HANDOFF.md": "frozen/09-capsule-cold/HANDOFF.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/MERKLE-NEGATIVE-CONTROLS.json": "frozen/09-capsule-cold/MERKLE-NEGATIVE-CONTROLS.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/OFFICIAL-EXPORT-PREFLIGHT-5387.json": "frozen/09-capsule-cold/OFFICIAL-EXPORT-PREFLIGHT-5387.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/POST-RUN-HASHES.json": "frozen/09-capsule-cold/POST-RUN-HASHES.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/PR-BODY.md": "frozen/09-capsule-cold/PR-BODY.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/PRE-RUN-HASHES.json": "frozen/09-capsule-cold/PRE-RUN-HASHES.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/REGISTERED-COLD.stderr.log": "frozen/09-capsule-cold/REGISTERED-COLD.stderr.log", + "outputs/price-plane-swarm-20261024/09-capsule-cold/REGISTERED-COLD.stdout.log": "frozen/09-capsule-cold/REGISTERED-COLD.stdout.log", + "outputs/price-plane-swarm-20261024/09-capsule-cold/REPORT.md": "frozen/09-capsule-cold/REPORT.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/RESULT.json": "frozen/09-capsule-cold/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/ROOT-HEAVY-GRANT.json": "frozen/09-capsule-cold/ROOT-HEAVY-GRANT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/VALIDATION.json": "frozen/09-capsule-cold/VALIDATION.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1-MERKLE-PROVENANCE.json": "frozen/09-capsule-cold/capsule-5387-v1-MERKLE-PROVENANCE.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/CANONICAL-COMMIT.raw": "frozen/09-capsule-cold/capsule-5387-v1/CANONICAL-COMMIT.raw", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw": "frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json": "frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json": "frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json": "frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py": "frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json": "frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw": "frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw": "frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json": "frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json": "frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json": "frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json": "frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json": "frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py": "frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py": "frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/MANIFEST.json": "frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/snapshot/research/query-thinned-controllers/PROOF.md": "frozen/09-capsule-cold/supplement-03-v1/snapshot/research/query-thinned-controllers/PROOF.md", + "outputs/price-plane-swarm-20261024/09-capsule-cold/verify_merkle_provenance.py": "frozen/09-capsule-cold/verify_merkle_provenance.py" + }, + "workspace_prefix": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453" +} diff --git a/research/price-plane-independent-validation/README.md b/research/price-plane-independent-validation/README.md new file mode 100644 index 0000000000..5047f943e0 --- /dev/null +++ b/research/price-plane-independent-validation/README.md @@ -0,0 +1,65 @@ +# Independent complete price-plane validation for PR5383 and PR5387 + +This package independently validates **conditional κ = .003026674765** at Dugongue's PR5387 head `b1ab650d36f59e5be682a813145b7c67e219e341`, and retains the independent static conditional admission of Ali Romman's PR5383 `.00302666` at `4bd6efa51a495a7c7b7754915cf0244e7e60969e`. Both source commits have canonical `1ec1119972c9aefe42525172d07b332fcff81cb4` as their actual parent. The PR5387 point in this frozen round gains `.000004324765` over independently validated PR5377 and `.000004898965` over selected PR4610. All claims retain the same five framework assumptions; no selected record changes. + +The new contribution is independent complete-cost, changed-word physical and precision applicability coverage plus authenticated evidence of one actual PR5387 candidate registered cold pair. It neither authors the eight-relation mechanism nor infers physical validity from a matching histogram. Read the exact frozen [PR5387 physical proof](frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md), [literal census](frozen/02-census/REPORT.md), [expanded precision/stock review](frozen/03-precision-stock/REPORT-5387-v1.md), [leaf-inclusive error addendum](frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md) and [independent funded-point proof](frozen/04-exact-funding/REPORT-5387.md). + +## Physical and complete-invoice implication + +Eight independent helper relations surrender eight rank-nine productive outputs at each of sixteen backward LOCAL calls. The complete invoice debits all 128 lost H9 targets. It has **64,148 paid jobs and 10,800 productive fields**, paid/productive rank mass 237,982/238,734 and surplus 752. The per-backward change is `-8 H1 -8 H8` paid and `-8 H9` productive; the complete sixteen-call controller moment change is `128*(1+8^t-9^t)>0` for `0 1/[1024*(2^30-1)]`, while the paid ratio requires `rho < 1-alpha`; the new reserve lies strictly within that interval. Original `10^-9` and insufficient `10^-13` reserve controls fail. The uniform gap is `1/7000000000000`; integer grid `j=58507` satisfies `(7000000000000*j+1)^1000 < 2^j`, and the preceding grid fails. It supplies `H=409549000000000000` and `N=2^H`. All **54 strict plus four functional** outer predicates are freshly recomputed and positive. Full exact values, root/derivative/away enclosures, compiler predicates and controls appear in [5387-receipt-v2.json](frozen/04-exact-funding/5387-receipt-v2.json). The separately funded PR5383 point uses its own complete receipt and threshold. + +## Precision, storage and inherited premises + +The constructive finite-template proof prescribes fresh expanded W/P/O/R/G and thresholds for the actual prepared, completed, split and compiled word at the new N. Each raw occurrence has 274 full LOCAL private banks, plus disjoint query, compiler, completion, split and internal scratch banks. The new preparation has coefficient row norm at most9 and dyadic denominator2; no unit-ball hypothesis is imposed on prepared inputs. Fresh scalar height is29193. The proof pays for all changed instruction counts and uses `Z=W+O`, `E=64*(Z+N+P+G+1)^3`, `B=P+E`, `C0=32*N*B^2`, `C1=1`. Its leaf-inclusive logarithmic error count is `(G+N+2P+4)*d`; no approximate zero is silently treated as exact. Ordinary BIT and complex stock use their simultaneous product and a new eventual threshold. The small raw 181,098,496 allowance is not an expanded storage/precision cap. The astronomical word is not materialized. + +The exact retained assumptions are `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. Source phase lowering, native movement, ordinary BIT stock/conversion and analytic recovery are authenticated inherited foundations. They were not freshly re-executed here. There is no new candidate-specific assumption, unconditional theorem, Lean/kernel proof or independent human acceptance claim. Frozen reports preserve the status at their original execution time; later joined gates and the complete cold record resolve their then-outstanding package obligations without rewriting historical evidence. + +## Frozen actual cold evidence and fresh package replay + +[VALIDATION.json](frozen/09-capsule-cold/VALIDATION.json), the complete [resource receipt](frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json), full stdout/stderr, root grant and original pre/post inventories authenticate **one actual normal/optimized registered PR5387 author pair**: 140.030862 seconds, 223,576KiB peak sampled aggregate descendant RSS, exit0, empty stderr, no resource stop and all20,535 scientific/provenance/Git files unchanged. Both modes reconstructed and checked the complete committed RESULT and decompressed WORD. Fifteen native, five cost/outer and two reserve controls per mode supplied 44 author-path control executions. No own PR5383 author cold pair is claimed. + +This package's registered commands freshly rerun the independent physical engines for both candidates, full literal census/chronology, scalar/RREF precision audits and independent rational funding engines. Every stable physical/precision field and every numeric result must equal the exact original reviewer receipt; only execution time is excluded. Original chronology files are regenerated in a private directory and checked against their frozen full SHA256 values in the independent invoices; the approximately40MB of redundant chronology JSON is not vendored. Frozen assertion-based census/precision scripts execute through `compile(optimize=0)` so their checks remain active in both wrapper modes. Physical/rational engines use explicit need/raise checks and inherit wrapper optimization. Frozen source copies and all package evidence are rehashed after execution. + +Package/CI replay authenticates the frozen author cold execution; it **does not rerun the author cold pair**. Package receipts, hosted CI, public review and maintainer selection are separate evidence. The actual registered independent normal/optimized package pair passed in128.740804seconds, peak224952KiB, exit0, empty stderr and no resource stop. All178guarded package inputs and174corresponding shared inputs remained unchanged. See [RESULT.json](RESULT.json) for the complete registered independent package run, and [HANDOFF.md](HANDOFF.md) for publication state. + +## Source integrity and reproduce + +[PACKET.json](PACKET.json) inventories every frozen source, proof, script, result and log, and is itself SHA256-pinned in verify.py. Original source manifests and compressed bytes remain exact. Compact raw commit/tree Merkle proofs authenticate every source path of both capsules plus all four canonical precision source proofs without Git or network. Historical absolute receipt paths are resolved through the explicit [PATH-ALIASES.json](PATH-ALIASES.json) mapping; no historical workstation path is read. Full original pre/post inventories remain evidence of the actual cold execution, while only necessary raw source objects are vendored. No private Git store is published. Package SOURCES pins canonical task/selected-record provenance only, avoiding an unavailable unmerged-head dependency in a clean checkout. + +From repository root, CPython3.12 standard library: + +```sh +python3 -B scripts/research_package.py --package research/price-plane-independent-validation --check-only +python3 -B scripts/research_package.py --package research/price-plane-independent-validation +python3 -B scripts/check_research_commit.py --package research/price-plane-independent-validation --check-source-history +``` + +After verifying and extracting the committed export into a fresh Git-free directory: + +```sh +python3 -I -B research/price-plane-independent-validation/verify.py --integrity-only +python3 -I -B research/price-plane-independent-validation/verify.py +python3 -I -O -B research/price-plane-independent-validation/verify.py +``` + +Expected full independent replay is about70 seconds per mode; each registered mode has a240-second timeout. Integrity-only does no mathematical replay and takes roughly one second. Semantic controls reject actual WORD mutation, unearned128H9 productive credits, wrong preparation/snapshots/frames/owned returns, reserve/completion/outer violations and unsupported numeric domains. Source authentication and funded finite evidence do not by themselves discharge the inherited theorem premises. + +## Open next questions + +[TASK.json](TASK.json) records structured next questions. Changed physical profiles need their own literal witness, independent invoice and fresh closure before any comparison to this fixed-profile ceiling. Independent discharge of one retained generic foundation is a separate scoped task. More digits of the same root are not additional independent mechanism coverage. The [public claim](https://github.com/CrocSwap/integer-mult-bounds/pull/5387#issuecomment-6374985927) records the review scope and overlap; publication requires a fresh root-owned source/head/guidance check. + +## Credit and license + +Ali Romman supplied #5377's one-relation predecessor and #5383's eight-relation mechanism. Dugongue supplied #5387's completion-reserve application and distinct literal witness. Cao Yifan supplied #4610's source word/phase evidence; Cinna Davis the controller/helper lineage; zxv cache/native/compiler/precision work; Jacob Alan Sussman mixed-target recursion; Chris R/Clear1nsight #5241/#5384 and this independent review. ToikY, Tekalign's exporter, Douglas Colkitt's replay contract and every native, Clifford, BIT, precision, analytic and recovery predecessor notice remain in exact frozen sources. New review by **Chris R / Clear1nsight, with substantial OpenAI Codex assistance**, under Apache-2.0. No construction priority or independent human review is claimed. + +Later [PR5390](https://github.com/CrocSwap/integer-mult-bounds/pull/5390) proposes a changed compiler tuple and a later claim. It is outside this frozen review; this package makes no claim of globally strongest current κ or acceptance of that later submission. diff --git a/research/price-plane-independent-validation/RESULT.json b/research/price-plane-independent-validation/RESULT.json new file mode 100644 index 0000000000..039cd9aac2 --- /dev/null +++ b/research/price-plane-independent-validation/RESULT.json @@ -0,0 +1,382 @@ +{ + "author_cold_freshly_rerun_by_this_package": false, + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "comparison5383_static_kappa": ".00302666", + "execution_sources_sha256": { + "PACKET.json": "ab787e2df2650c7027d54f6fad9faae0c763bdbc5b41d299a792b0972dfe1b68", + "VERIFY.json": "9066f4f2ebfb2e4c570b8f82c8174bdecf876ef7ebbed338d38ebd8a8d9e560a", + "exec_frozen.py": "f5c7b9316784f82365f76e7c526d785b13854f7f9e056e55067cde0d47bbab4d", + "replay_exact.py": "cf8eaf7b5f39faf56550421f8f3f75c471f71ea95ab3bc5e4c438865c551d115", + "verify.py": "fe6bd19557b6a182672737913150e0b7c1c01ab47e378da58762cea6f7bdb0b0" + }, + "fixed_profile_ceiling_scope": "Necessary same complete P/T moment ceiling on0=224,'every prep RHS is helper input') + check(clears[dst]>0,'owned pivot cleared before first preparation read/write') + check(q.denominator & (q.denominator-1)==0,'dyadic coefficient') + for key,a in state[src].items():merge(state[dst],key,q*a) + adds[dst]+=1 + check(set(clears)=={('L',p) for p in PIVOTS} and all(q==1 for q in clears.values()),'exactly one initial clear for each pivot') + return state,{'clear_count':sum(clears.values()),'add_count':sum(adds.values()),'adds_by_pivot':{str(r[1]):n for r,n in sorted(adds.items())},'all_RHS_nonpivot_independent_helpers':True,'dirty_entry_columns':17,'retained_columns':624} + +def main(): + start=time.monotonic() + oldmanifest=(OLD/'IMMUTABLE-MANIFEST.json').read_bytes() + check(hashlib.sha256(oldmanifest).hexdigest()=='ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8','frozen5383 manifest') + base_receipt=jread(HERE.parent/'PHYSICAL-RECEIPT.json') + freeze=jread(HERE.parent/'ENGINE-FREEZE.json') + check(hashlib.sha256((HERE.parent/'PHYSICAL-RECEIPT.json').read_bytes()).hexdigest()==freeze['files']['PHYSICAL-RECEIPT.json'],'old independent receipt frozen') + check(base_receipt['status']=='PASS_BOUNDED_INDEPENDENT_PHYSICAL_EIGHT_RELATIONS','positive old physical gate') + newmanifest=(NEW/'IMMUTABLE-MANIFEST.json').read_bytes(); manifest=jread(NEW/'IMMUTABLE-MANIFEST.json') + check(manifest['candidate_head']=='b1ab650d36f59e5be682a813145b7c67e219e341','exact5387 head') + for r in manifest['rows']: + b=(NEW/r['capsule_path']).read_bytes() + check(hashlib.sha256(b).hexdigest()==r['sha256'],'new capsule SHA256') + check(hashlib.sha1(b'blob '+str(len(b)).encode()+b'\0'+b).hexdigest()==r['git_blob'],'new capsule blob') + oldwordpath=OLD/'snapshot/research/kappa-joint-relations-20261023/WORD.json.gz' + newwordpath=NEW/'snapshot/research/eight-owned-relations/WORD.json.gz' + a=jread(oldwordpath);b=jread(newwordpath) + check(a['canonical']==b['canonical'],'complete canonical physical data identical') + check(a['owned']==b['owned'],'identical owned and retained field contracts') + check(a['programs']['forward']==b['programs']['forward'],'identical forward literal word') + ap,ab=prefix_and_body(a);bp,bb=prefix_and_body(b) + check(ab==bb,'entire post-preparation body exact literal equality') + ast,ac=evaluate_prefix(ap);bst,bc=evaluate_prefix(bp) + check(ast==bst,'all641initial-field columns equal after preparation') + controls=[] + wrong=copy.deepcopy(bp);wrong[1][1][3]*=-1 + try:wrongst,_=evaluate_prefix(wrong); rejected=wrongst!=ast + except ValueError:rejected=True + check(rejected,'wrong preparation sign rejected');controls.append('wrong preparation sign') + wrong=copy.deepcopy(bp);wrong.pop(0) + try:wrongst,_=evaluate_prefix(wrong);rejected=wrongst!=ast + except ValueError:rejected=True + check(rejected,'omitted dirty-entry clear rejected');controls.append('omitted dirty-entry clear') + raw=newwordpath.read_bytes() + result={'status':'PASS_BOUNDED_PHYSICAL_DELTA_INHERITS_EXACT5383_GATE','candidate_head':manifest['candidate_head'],'manifest_sha256':hashlib.sha256(newmanifest).hexdigest(),'base_head':base_receipt['candidate_head'],'base_receipt_sha256':hashlib.sha256((HERE.parent/'PHYSICAL-RECEIPT.json').read_bytes()).hexdigest(),'word_sha256':hashlib.sha256(raw).hexdigest(),'word_payload_sha256':hashlib.sha256(gzip.decompress(raw)).hexdigest(),'word_git_blob':hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest(),'old_preparation':ac,'new_preparation':bc,'postpreparation_literal_events':len(bb),'preparation_identical_as_event_multiset':Counter(map(str,ap))==Counter(map(str,bp)),'canonical_frames_maps_phases_identical':True,'forward_identical':True,'owned_inventory_identical':True,'full641column_preparation_maps_identical':True,'all_RHS_nonpivot_commutation_proved':True,'same_paid_target_physical_interface':True,'negative_controls':controls,'seconds':round(time.monotonic()-start,3),'scope':'Preparation-only exact matrix-map delta plus byte-identical body transfers the frozen5383 all624retained/17dirty-owned physical gate, phases/subset/returns/controller/all-f implication. New scalar/precision/stock/compiler/funding bill stays separate; no new whole physical or cold replay.'} + (HERE/'DELTA-RECEIPT.json').write_text(json.dumps(result,indent=2)+'\n') + print(json.dumps(result,indent=2)) +if __name__=='__main__':main() diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/ENGINE-FREEZE.json b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/ENGINE-FREEZE.json new file mode 100644 index 0000000000..95e977cf77 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/ENGINE-FREEZE.json @@ -0,0 +1,12 @@ +{ + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "files": { + "independent_physical_check.py": "824d02cddbfeadf1d6304724693f15cdbbc107df2575457932f6e0098cb1f9e0", + "PHYSICAL-RECEIPT.json": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd", + "PHYSICAL-REVIEW.md": "73f2af9fcafba3a7b449f18093a9fbf25d546dbd66050b019607819b2ed83e18", + "VERIFIED-PINS.json": "5d742de6e96277c35a475018e8da3406b196436e14ec1cf067a517541ebda078", + "check.stdout.log": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd", + "HANDOFF.md": "3d383b9d08bdf90fdaf87231bd837acd88054267372a40e9453c793c7c28d4bb" + } +} diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/HANDOFF.md b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/HANDOFF.md new file mode 100644 index 0000000000..3e5fd47681 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/HANDOFF.md @@ -0,0 +1,13 @@ +**Research discussion / PR / artifact:** Dugongue PR5387, fresh independent physical audit in this directory; earlier5383physical receipt remains frozen in the parent directory. + +**Exact commit:** `b1ab650d36f59e5be682a813145b7c67e219e341`; immutable manifest `b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594`; word Git blob `c62fcb59643f87919208100517a2fbc4b57cb7d7`. + +**What is established:** Fresh 16 unrestricted source identities, exact rank 8 / RREF preparation, literal new source delta, all 624 retained plus 17 arbitrary owned columns, actual gauges/zero rows/owned returns, fresh source-phase subset and universal all-f/spectator implication. The changed owned pivot L261, newly retained arbitraryL288, earlier L256 snapshot and new zero 17233 are explicitly covered. Seven executable-word mutations reject. Runtime 10.661 seconds; no candidate evaluator imported. + +**What remains uncertain:** New ordinary/route bill, expanded precision/stock/tape, exact funded κ/compiler/outer transfer, registered normal/O replay and public review have separate gates. Five selected assumptions remain. Narrow ordering-only inheritance was rejected and replaced by this fresh gate; no mathematical counterexample was found. + +**Smallest useful next task:** Combine this fresh physical receipt with 02's new exactinvoice,03's precision/stock and 04's exactfunding receipts; run the sole registered cold pair under 09's root-managed token. + +**Reproduction command and expected runtime:** `python3 -B outputs/price-plane-swarm-20261024/01-physical/5387-fresh/independent_physical_check.py`, approximately 11 seconds from the project workspace. No physical-check process remains running. + +**Predecessor credit:** Dugongue5387; Ali Romman5383/5377 mechanism with no construction-priority claim displaced; Cao Yifan4610; Cinna Davis controller/helper/free-word; zxv native/compiler/precision; Jacob Alan Sussman recursion; Chris R/Clear1nsight5241/5384 independent admission; ToikY and retained notices. Substantial OpenAI Codex assistance used. diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json new file mode 100644 index 0000000000..46debd6409 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-RECEIPT.json @@ -0,0 +1,578 @@ +{ + "status": "PASS_BOUNDED_FRESH_INDEPENDENT_PHYSICAL_5387_EIGHT_RELATIONS", + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "word_sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b", + "word_payload_sha256": "9aa0d7112b4e13f1aa13a93dab0af6f4435ffe99b842aad841685becdafee492", + "word_git_blob": "c62fcb59643f87919208100517a2fbc4b57cb7d7", + "verified_capsule_rows": 38, + "rank": 8, + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "rref": [ + { + "225": "1", + "384": "-1", + "388": "-1", + "390": "1", + "391": "1", + "392": "1", + "397": "-1" + }, + { + "227": "1", + "231": "1", + "232": "-1", + "234": "1", + "235": "1", + "237": "1", + "238": "-1", + "239": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + { + "229": "1", + "231": "-1", + "236": "-1", + "238": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + { + "230": "1", + "324": "-1", + "326": "1", + "328": "1", + "333": "-1" + }, + { + "241": "1", + "243": "-1", + "253": "-1", + "255": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + { + "245": "1", + "247": "-1", + "252": "-1", + "254": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + { + "257": "1", + "259": "-1", + "269": "-1", + "271": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + { + "261": "1", + "263": "-1", + "268": "-1", + "270": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + } + ], + "unrestricted_source_identities": [ + { + "relation": 1, + "snapshot": 11205, + "lender": 92, + "frame": 254, + "center": 11332, + "zero": 15584, + "sign": 1, + "snapshot_terms": 61, + "relation_terms": 5, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 2, + "snapshot": 11218, + "lender": 57, + "frame": 274, + "center": 11358, + "zero": 17264, + "sign": 1, + "snapshot_terms": 63, + "relation_terms": 7, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 3, + "snapshot": 11231, + "lender": 81, + "frame": 619, + "center": 11384, + "zero": 17256, + "sign": 1, + "snapshot_terms": 73, + "relation_terms": 17, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 4, + "snapshot": 11244, + "lender": 224, + "frame": 279, + "center": 11410, + "zero": 17722, + "sign": -1, + "snapshot_terms": 68, + "relation_terms": 12, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 5, + "snapshot": 11257, + "lender": 11, + "frame": 621, + "center": 11436, + "zero": 15876, + "sign": 1, + "snapshot_terms": 64, + "relation_terms": 8, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 6, + "snapshot": 11270, + "lender": 240, + "frame": 280, + "center": 11462, + "zero": 17245, + "sign": -1, + "snapshot_terms": 75, + "relation_terms": 19, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 7, + "snapshot": 11283, + "lender": 9, + "frame": 624, + "center": 11488, + "zero": 15870, + "sign": 1, + "snapshot_terms": 64, + "relation_terms": 8, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + }, + { + "relation": 8, + "snapshot": 11296, + "lender": 256, + "frame": 281, + "center": 11514, + "zero": 17233, + "sign": -1, + "snapshot_terms": 75, + "relation_terms": 19, + "center_minus_snapshot": "sign*D/4", + "later_zero_row": "-sign*D/4" + } + ], + "all_columns": { + "source_forward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "source_backward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "candidate_forward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "candidate_backward": { + "persistent_inputs": 624, + "owned_arbitrary_inputs": 17, + "owned_roles": [ + [ + "C", + 0 + ], + [ + "C", + 1 + ], + [ + "C", + 2 + ], + [ + "C", + 3 + ], + [ + "C", + 4 + ], + [ + "C", + 5 + ], + [ + "C", + 6 + ], + [ + "C", + 7 + ], + [ + "C", + 8 + ], + [ + "L", + 225 + ], + [ + "L", + 227 + ], + [ + "L", + 229 + ], + [ + "L", + 230 + ], + [ + "L", + 241 + ], + [ + "L", + 245 + ], + [ + "L", + 257 + ], + [ + "L", + 261 + ] + ], + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "checked_zero_event_indices": [ + 15680, + 15966, + 15972, + 17329, + 17341, + 17352, + 17360, + 17818 + ], + "endpoint_pass": true, + "frame_pass": true + } + }, + "source_phase_catalogue_subset": { + "forward": { + "warp_occurrences": 240, + "retained_paid_occurrences": 3298, + "removed_paid_occurrences": 0, + "removed_literal_events": [] + }, + "backward": { + "warp_occurrences": 240, + "retained_paid_occurrences": 3282, + "removed_paid_occurrences": 16, + "removed_literal_events": [ + [ + "center", + 0, + 0, + 254, + 8 + ], + [ + "center", + 0, + 0, + 274, + 8 + ], + [ + "center", + 0, + 0, + 619, + 8 + ], + [ + "center", + 0, + 0, + 279, + 8 + ], + [ + "center", + 0, + 0, + 621, + 8 + ], + [ + "center", + 0, + 0, + 280, + 8 + ], + [ + "center", + 0, + 0, + 624, + 8 + ], + [ + "center", + 0, + 0, + 281, + 8 + ], + [ + "climb", + "warp_retimed", + 92, + 254, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 9, + 624, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 11, + 621, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 256, + 281, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 240, + 280, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 81, + 619, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 57, + 274, + 1, + 1 + ], + [ + "climb", + "warp_retimed", + 224, + 279, + 1, + 1 + ] + ] + } + }, + "source_phase_lowering_rerun": false, + "source_phase_foundation": "accepted exact4610 through selected5241; unchanged recipes plus subset proof, not fresh lowering", + "snapshot_lifetimes": { + "all_eight_live_before_first_center": true, + "distinct_snapshot_owners": 8, + "distinct_owned_backward": 17 + }, + "controller": { + "backward_stages": [ + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31 + ], + "forward_stages": [ + 0, + 32 + ], + "queries": 15, + "independent_helper_outputs": 7216, + "main_outputs": 3584, + "productive_total": 10800, + "bank_rule": "eachLOCALstage has disjoint helper bank and distinct suspended owned banks; source controller proof section4" + }, + "negative_controls": [ + { + "control": "wrong preparation sign", + "status": "REJECTED", + "reason": "independent endpoint 0" + }, + { + "control": "omitted pivot entry clear", + "status": "REJECTED", + "reason": "independent endpoint 0" + }, + { + "control": "wrong snapshot role", + "status": "REJECTED", + "reason": "scalar source gauge" + }, + { + "control": "wrong zero output frame", + "status": "REJECTED", + "reason": "authorized zero replacement" + }, + { + "control": "wrong retained paid rank", + "status": "REJECTED", + "reason": "whole paid rank" + }, + { + "control": "wrong COPY frame", + "status": "REJECTED", + "reason": "scalar output gauge" + }, + { + "control": "omitted pivot output clear", + "status": "REJECTED", + "reason": "all owned outputs erased" + } + ], + "preparation_ordering_checked": "exact event multiset matches independently derived RREF; RHS uses only nonpivot independent helper inputs; actual chronology checked on all641entrycolumns", + "seconds": 10.661, + "scope": "Exact free-word identities; all624retained plus17arbitrary-owned columns; literal delta, actual gauge chronology, owned returns, unchanged phase catalogue subset and 18-call controller incidence. Inherits five selected conditional framework assumptions; no full phase lowering/compiler/precision/BIT/analytic replay." +} diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md new file mode 100644 index 0000000000..6a6c29ad6a --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/PHYSICAL-REVIEW.md @@ -0,0 +1,52 @@ +# PR5387 fresh independent physical gate + +**Decision: PASS for a fresh bounded physical audit at exact head `b1ab650d36f59e5be682a813145b7c67e219e341`.** Runtime was 10.661 seconds. This is an independently executed new-head proof, rather than inheritance based on equal rank histograms. No candidate evaluator was imported. Complete cost, precision/stock, exact funding and registered cold replay retain their separate gates. + +The immutable source capsule manifest is `b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594`. All 38 source/head rows were checked for SHA256 and Git blob equality. New word compressed SHA256 is `6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b`; decompressed SHA256 is `9aa0d7112b4e13f1aa13a93dab0af6f4435ffe99b842aad841685becdafee492`; Git blob is `c62fcb59643f87919208100517a2fbc4b57cb7d7`. The canonical main and accepted final4610 source payload are unchanged. + +The initial ordering-only transfer check was correctly stopped. PR5387 changes the eighth source relation and the physical helper inventory. Its owned pivot L261 replaces PR5383's owned pivot L288. Its eighth snapshot is L256 immediately after source event 11296 in exact frame281, replacing L288 after 11306. Its zero replacement is source event 17233 on L256; the original paid rank-one transition on L288 at 17580 is retained. Final cleanup erases L261. The first seven sites are unchanged. These differences are recorded in the sibling `5387-delta/NARROW-TRANSFER-STOP.json`; that diagnostic is not a counterexample to the new candidate. + +The source-specific new eighth relation is + +```text +D8new = h225 - h257 + h259 + h261 - h263 - h268 + h269 + h270 + - h271 - h324 + h326 + h328 - h333 - h384 - h388 + + h390 + h391 + h392 - h397. +``` + +Fresh reverse functional propagation through the unrestricted original 632-input source word proves + +```text +C0 at 11514 - L256 just after 11296 = -D8new/4, +L256 at 17233 = D8new/4. +``` + +These are exact rational equalities over noncommuting free invertible operator words, not numerical samples. The source snapshot has 75 terms before subtraction. The same independent reverse interpreter freshly verifies the fourteen source identities for the seven unchanged sites as well. Changing the relation sign or snapshot source rejects each respective identity. + +Rational elimination of the eight published relation rows independently derives exact rank eight and pivots `225,227,229,230,241,245,257,261`. Its reduced basis matches the published RELATIONS rows exactly, has the identity pivot block, and contains only integer/half-integer coefficients. Every preparation ADD reads a retained nonpivot independent helper. The new preparation has 64 events, consisting of 8 clears and 56 ADDs. Its event multiset equals the independently generated RREF preparation; its within-row ordering differs. Distinct pivot blocks write different owned destinations and read only untouched nonpivots, while ADD order on each destination is exact-linear and commutative. No cyclic preparation or independent productive input erasure is introduced. The actual chronology is additionally executed on all entry columns, so no unsafe movement of a CLEAR is inferred from a multiset alone. + +The independent checker reconstructs the new complete source delta from its own RREF and source event sites. After the preparation boundary, the entire literal event list agrees exactly with that independently generated word. Forward is literally identical to the accepted source. Every canonical ordered frame, native map, gauge and main chart is identical. + +A fresh forward evaluation executes source and candidate in both orientations. New candidate backward includes all **624 independent retained fields plus17 independent arbitrary owned entry fields**. L288 is now a fully arbitrary retained helper and has its exact source physical endpoint; L261 is an arbitrary dirty owned entry, cleared before preparation and erased after its final use. C0 through C8 and the seven other owned pivots also return zero. All 224 main and 400 retained helper endpoints pass, with no owned-entry dependence. Every scalar/native/paid frame, nested paid rank, zero-site complete row and final gauge passes. + +The new eight physical zeros occur at shifted candidate indices15680,15966,15972,17329,17341,17352,17360,17818. Their complete rows are exactly zero on all641initial columns. Same-frame COPY into cleared C0 reproduces the complete source center operator with coefficient one and its inherited absolute gauge. Identity on zero needs no new phase operator and performs no runtime zero test. All eight snapshots are simultaneously live before the first center replacement; the last source snapshot 11296 precedes first center 11332. Eight distinct C1 through C8 fields are therefore charged and required. + +A fresh source catalogue check confirms the signed warp occurrences are unchanged and all retained paid occurrences are exact source occurrences. Eight centers and eight rank-one jobs are removed in backward orientation; forward removes none. L288's restored paid transition belongs to the original exact catalogue. This is why accepted final4610/PR5241 phase evidence applies even though the particular removed rank-one site changed. The authenticated source PHASE-VALIDATION binds the same source payload; the full phase foundation remains the accepted PR5241 foundation. No fresh Gaussian phase lowering or all 5710 phase replay is claimed here. + +The universal operator implication is the one stated fully in the parent5383 physical report, with the freshly proved new relations substituted: evaluate each free generator at the full actual oriented f-column source lift, keep rational scalar coefficients outside the substitution, and include identity on all spectator fields. This homomorphism preserves all sixteen new row equalities for every positive f, including correlated/nonseparable inputs. No tensor power is distributed over a sum. The physical tariff retains the original source geometry/record-fiber domain. Ideal exact zeros are not an assumption that numerical child errors disappear: fresh precision propagation for this changed word remains required separately. + +The unchanged source controller has 16 backward calls, two forward calls and 15 queries. Every full call retains its fresh disjoint helper bank. Removing the new eight pivots at backward stages leaves `16*400 + 2*408 = 7216` distinct independent helper outputs, plus 3584 main outputs, for 10800 productive fields. Pivots, snapshots and scratch earn no productive credit. Every suspended recursive occurrence needs its own relevant owned banks. The independently counted backward paid profile remains `{1:2193,2:412,3:510,4:127,5:40}`; forward remains `{1:2201,2:412,3:510,4:127,5:40,8:8}`. The invoice is equal in rank moments to5383, while its changed preparation scalar and precision charges must be checked afresh. + +Seven executable-word mutations reject: wrong preparation sign, omitted dirty pivot entry clear, wrong snapshot role, wrong zero frame, wrong retained paid rank, wrong COPY frame and omitted pivot output clear. The full correct all-column execution is their positive control. Independent output columns include every newly arbitrary field, rather than silently retaining5383's smaller domain. + +The candidate remains within the same five selected assumptions: `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. This physical gate identifies no extra primitive or candidate-specific premise. It does not independently prove the historical native/tape/BIT/analytic stack, fund the new compiler-margin κ, supply a new human/kernel acceptance or change selected metadata. + +Reproduce from the project workspace: + +```sh +python3 -B outputs/price-plane-swarm-20261024/01-physical/5387-fresh/independent_physical_check.py +``` + +The source code's final post-execution edit corrected a provenance comment only; executable logic is unchanged. `PHYSICAL-RECEIPT.json` is the actual 10.661 second execution. `ENGINE-FREEZE.json` binds all final files. + +Credit Dugongue's5387 application and alternate eighth witness; Ali Romman's5383 public eight-relation mechanism and5377 predecessor; Cao Yifan's4610 word; Cinna Davis's controller/helper/free-word lineage; zxv's native/compiler/precision work; Jacob Alan Sussman's recursion; Chris R/Clear1nsight's5241/5384 independent admission; ToikY and all retained notices. The author explicitly makes no priority claim over5383 for the construction. This independent review used substantial OpenAI Codex assistance. diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/VERIFIED-PINS.json b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/VERIFIED-PINS.json new file mode 100644 index 0000000000..07e1b7e975 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/VERIFIED-PINS.json @@ -0,0 +1,233 @@ +{ + "manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "rows": [ + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "snapshot/certificates/selected-result.json", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/PREDECESSOR-5383.json", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/PREDECESSOR.json", + "sha256": "a0fc52a167d033225cf62fcf88ac635317059d3ce09de336f9f81008450381ef", + "git_blob": "193625791f182b71005f0f34c546db7b7c6dc226", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/README.md", + "sha256": "5d5f033c82a8ed8b7e9c3fe3d3f18f559f4f651bb11d0e6a2c916e244777fb99", + "git_blob": "17901a8af82a17135f8414fa592c63c65d85a785", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/RELATIONS.json", + "sha256": "bc9ba05595497f399da5e5a548b2d2c83696e539fa1257ab7e2cb49d438cd9dd", + "git_blob": "f558b9ddd903badb2301944cb978824b32ad42f7", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/RESULT.json", + "sha256": "34ad456c1f98f7f8c361d63539ef26d75dad8ffb3444edf29652372acabf1aaf", + "git_blob": "2e13818df03e9fd93b9e13ada8663646ec948572", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/SOURCES.json", + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3", + "git_blob": "71c57c8a90585da602b8df163d582e7c77949c00", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/TASK.json", + "sha256": "e3d0ee26c8b6a409be30b83aada3a2c3d1b332408a59307733f4299c940ff8b8", + "git_blob": "8b9df431cc81487d1993dc1babb39dd466abfd59", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/VERIFY.json", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/WORD.json.gz", + "sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b", + "git_blob": "c62fcb59643f87919208100517a2fbc4b57cb7d7", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/native.py", + "sha256": "21e616b991fdc3af414e5e390e9eb6bb93ba39a560e235d324f4bb303148c1e8", + "git_blob": "86c10d2e1e9ee83c0d6927c50f3ab8995825d6aa", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/price.py", + "sha256": "3785b27e75d85116706ecaf9f7174132a72d00e1c28cea2cd4afada4ba30e44a", + "git_blob": "ffc2b0fdfcf2010a4ca0c4de58d87625932fd821", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/verify.py", + "sha256": "d46b075109f4af659cc099801062fe34b9d714903edb1d2807c1bc75edac2757", + "git_blob": "3bcf8f5e05bbec9351c521addbd5593d805452cd", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/higher-moment-strictification/verify.py", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/research/query-thinned-controllers/RESULT.json", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/scripts/check_research_commit.py", + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + }, + { + "capsule_path": "snapshot/scripts/research_package.py", + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341" + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/independent_physical_check.py b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/independent_physical_check.py new file mode 100644 index 0000000000..6e3619a694 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/5387-fresh/independent_physical_check.py @@ -0,0 +1,319 @@ +#!/usr/bin/env python3 +"""Independent exact PR5387 physical audit; no candidate evaluator imports. + +Core free-group pullback/forward algorithms adapted from our independent PR5377 +engine. PR5387 obligations below are newly instantiated and derived from bytes. +""" +from collections import Counter +from fractions import Fraction as F +from pathlib import Path +import gzip, hashlib, json, time + +HERE = Path(__file__).resolve().parent +P = HERE / 'pinned' + +def read(name): + raw = (P / name).read_bytes() + return json.loads(gzip.decompress(raw) if name.endswith('.gz') else raw) + +def check(test, message): + if not test: + raise ValueError(message) + +def merge(dst, key, value): + q = dst.get(key, F(0)) + value + if q: + dst[key] = q + else: + dst.pop(key, None) + +def right_letter(word, op): + return word[:-1] if word and word[-1] == -op else word + (op,) + +def pullback(program, role, stop): + """Right-append words while pulling one output functional to source inputs.""" + functional = {role: {(): F(1)}} + for event in reversed(program[:stop+1]): + if event[0] == 'warp': + dst, op = tuple(event[1]), event[2] + if dst in functional: + functional[dst] = {right_letter(w, op): q for w, q in functional[dst].items()} + elif event[0] == 'scalar': + g = event[1]; dst = tuple(g[1]) + row = functional.get(dst, {}) + if g[0] == 'clear': + functional.pop(dst, None) + elif g[0] == 'scale': + functional[dst] = {w: q*F(*g[2:]) for w,q in row.items()} + else: + src = tuple(g[2]); copy = g[0] == 'copy' + check(copy or g[0] == 'add', 'known scalar pullback') + q = F(1) if copy else F(*g[3:]) + if copy: + functional.pop(dst, None) + for w, a in tuple(row.items()): + merge(functional.setdefault(src, {}), w, q*a) + else: + check(event[0] in ('climb','center','phase','adapter'), 'source opcode') + return {(r,w): q for r,row in functional.items() for w,q in row.items() if q} + +def difference(a,b): + out=dict(a) + for k,q in b.items(): merge(out,k,-q) + return out + +def span(basis): + s={0} + for b in basis: s |= {x^b for x in tuple(s)} + check(len(s)==2**len(basis), 'independent frame basis') + return s + + +# Published source obligations: seven shared PR5383 rows plus the exact-head +# PR5387 RELATIONS eighth row; proved by reverse propagation without importing +# either candidate native.py or a candidate witness evaluator. +SPECS=[ + (11205,92,254,11332,15584,1,{230:1,324:-1,326:1,328:1,333:-1}), + (11218,57,274,11358,17264,1,{225:1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11231,81,619,11384,17256,1,{225:1,227:-1,229:1,231:-2,232:1,234:-1,235:-1,236:-1,237:-1,238:2,239:1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11244,224,279,11410,17722,-1,{227:1,229:1,232:-1,234:1,235:1,236:-1,237:1,239:-1,324:-1,326:1,328:1,333:-1}), + (11257,11,621,11436,15876,1,{241:1,243:-1,245:1,247:-1,252:-1,253:-1,254:1,255:1}), + (11270,240,280,11462,17245,-1,{225:1,241:-1,243:1,245:1,247:-1,252:-1,253:1,254:1,255:-1,324:-1,326:1,328:1,333:-1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11283,9,624,11488,15870,1,{257:1,259:-1,261:1,263:-1,268:-1,269:-1,270:1,271:1}), + (11296,256,281,11514,17233,-1,{225:1,257:-1,259:1,261:1,263:-1,268:-1,269:1,270:1,271:-1,324:-1,326:1,328:1,333:-1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), +] + +def rref_relations(): + columns=sorted(set().union(*(set(s[-1]) for s in SPECS))) + a=[[F(s[-1].get(i,0)) for i in columns] for s in SPECS] + pivot_columns=[]; row=0 + for j,col in enumerate(columns): + found=next((k for k in range(row,len(a)) if a[k][j]),None) + if found is None:continue + a[row],a[found]=a[found],a[row] + q=a[row][j]; a[row]=[x/q for x in a[row]] + for k in range(len(a)): + if k==row:continue + q=a[k][j] + a[k]=[x-q*y for x,y in zip(a[k],a[row])] + pivot_columns.append(col);row+=1 + if row==len(a):break + check(row==8,'relations have exact rational rank eight') + check(pivot_columns==[225,227,229,230,241,245,257,261],'source-declared pivot set derived') + rows=[{col:q for col,q in zip(columns,r) if q} for r in a] + for pivot,r in zip(pivot_columns,rows): + check(r[pivot]==1 and all(p not in r for p in pivot_columns if p!=pivot),'pivot block is identity') + check(all(q.denominator in (1,2) for q in r.values()),'preparation dyadic half-integer grammar') + return pivot_columns,rows + +def source_identity_checks(source): + old=source['programs']['backward']; identities=[] + for n,(snap,lender,frame,center,zero,sign,relation) in enumerate(SPECS,1): + check(old[snap][0]=='climb' and old[snap][2]==lender and old[snap][4]==frame,'literal snapshot endpoint') + check(old[center]==['center',0,0,frame,8],'literal rank-eight center') + check(old[zero][0]=='climb' and old[zero][2:]==[lender,frame,1,1],'literal rank-one zero job') + q=pullback(old,('L',lender),snap) + c=pullback(old,('C',0),center) + z=pullback(old,('L',lender),zero) + d={(('L',i),()):F(v*sign,4) for i,v in relation.items()} + check(difference(c,q)==d,'unrestricted center-snapshot identity D'+str(n)) + check(z=={k:-v for k,v in d.items()},'unrestricted zero identity D'+str(n)) + wrong=dict(d);k=next(iter(wrong));wrong[k]=-wrong[k] + check(difference(c,q)!=wrong,'wrong relation sign rejects D'+str(n)) + check(difference(c,pullback(old,('L',(lender+1)%632),snap))!=d,'wrong snapshot rejects D'+str(n)) + identities.append({'relation':n,'snapshot':snap,'lender':lender,'frame':frame,'center':center,'zero':zero,'sign':sign,'snapshot_terms':len(q),'relation_terms':len(d),'center_minus_snapshot':'sign*D/4','later_zero_row':'-sign*D/4'}) + return identities + +def advance_all(word, direction, specialized): + c=word['canonical']; owned={('C',0)} + if specialized: owned|={('C',i) for i in range(1,9)}|{('L',p) for p in rref_relations()[0]} + state={('L',i): {(('L',i),()): F(1)} for i in range(632)} + state.update({r:{(r,()):F(1)} for r in owned}) + frames={('L',i):f for i,f in enumerate(c['start'])} + frames.update({r:None for r in owned if r[0]=='C'}) + spaces=list(map(span,c['frames'])); paid=Counter(); zeros=[] + for index,event in enumerate(word['programs'][direction]): + kind=event[0] + if kind=='scalar': + g,frame=event[1:]; dst=tuple(g[1]) + if g[0]=='clear': + check(dst in owned,'erase only owned storage') + state[dst]={}; frames[dst]=frame + else: + check(frames[dst]==frame,'scalar output gauge') + if g[0]=='scale': state[dst]={k:q*F(*g[2:]) for k,q in state[dst].items()} + else: + src=tuple(g[2]); check(frames[src]==frame and src!=dst,'scalar source gauge') + if g[0]=='copy': + check(dst in owned and not state[dst], 'copy clears owned destination') + state[dst]=dict(state[src]) + else: + check(g[0]=='add','known scalar') + for k,q in tuple(state[src].items()): merge(state[dst],k,q*F(*g[3:])) + elif kind=='warp': + _,role,op,old,new=event; dst=tuple(role) + check(frames[dst]==old,'native warp input gauge') + transformed={} + for (r,w),q in state[dst].items(): + nw=w[1:] if w and w[0]==-op else (op,)+w + merge(transformed,(r,nw),q) + state[dst]=transformed; frames[dst]=new + elif kind in ('climb','center'): + if kind=='climb': _,_,i,old,new,rank=event; dst=('L',i) + else: _,i,old,new,rank=event; dst=('C',i) + check(frames[dst]==old,'paid input gauge') + check(spaces[old]=224 and g[2][1] not in pivots,'every RHS nonpivot independent helper') + else:check(g[0]=='clear','preparation scalar species') + relations=load('research/eight-owned-relations/RELATIONS.json') + check(relations['pivots']==pivots,'published pivot set independently derived') + check([{int(k):F(q) for k,q in r.items()} for r in relations['rows']]==rref,'published relation basis independently derived') + witness=relations['sites'] + for w,s in zip(witness,SPECS): + snap,lender,frame,center,zero,sign,relation=s + check(w['snapshot']==snap and w['role']==['L',lender] and w['frame']==frame and w['center']==center and w['zeros']==[[zero,1,['L',lender]]],'witness event fields') + check({int(i):F(q) for i,q in w['relation']}==relation,'witness relation equals independently proved relation') + check(len(witness)==8,'eight distinct witnesses') + allcolumns={name+'_'+d:advance_all(word,d,specialized) for name,word,d,specialized in [('source',source,'forward',False),('source',source,'backward',False),('candidate',candidate,'forward',False),('candidate',candidate,'backward',True)]} + check(candidate['owned']=={d:allcolumns['candidate_'+d]['owned_roles'] for d in ('forward','backward')},'declared owned inventory exact') + subset=phase_catalogue_subset(source,candidate) + phase=load('research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz') + check(phase['actual_word_canonical_sha256']=='cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd','exact phase source payload binding') + check(phase['status']=='PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES','source phase receipt status') + controller=load('research/joint-helper-lattice/CONTROLLER.json') + calls=[e for e in controller['physical_events'] if e[0]=='LOCAL'] + check([e[1] for e in calls if e[3]]==list(range(1,32,2)),'16 backward call stages') + check([e[1] for e in calls if not e[3]]==[0,32],'two forward call stages') + check(sum(e[0]=='QUERY_SHEAR' for e in controller['physical_events'])==15,'15 thin queries') + # Full word controls mutate executable data, with positive all-column run above. + def reject(label,mutate): + bad=copy.deepcopy(candidate);mutate(bad['programs']['backward']) + try:advance_all(bad,'backward',True) + except ValueError as e:return {'control':label,'status':'REJECTED','reason':str(e)} + raise ValueError('mutation incorrectly accepted: '+label) + def first(p,predicate):return next(i for i,e in enumerate(p) if predicate(e)) + controls=[] + controls.append(reject('wrong preparation sign',lambda p:p[1][1].__setitem__(3,-p[1][1][3]))) + controls.append(reject('omitted pivot entry clear',lambda p:p.pop(0))) + def badsnapshot(p): + i=first(p,lambda e:e[0]=='scalar' and e[1][0]=='copy' and e[1][1]==['C',1]);p[i][1][2]=['L',93] + controls.append(reject('wrong snapshot role',badsnapshot)) + def badzero(p): + i=first(p,lambda e:e[0]=='zero_retag');p[i][3]=2 + controls.append(reject('wrong zero output frame',badzero)) + def badrank(p): + i=first(p,lambda e:e[0]=='climb');p[i][-1]+=1 + controls.append(reject('wrong retained paid rank',badrank)) + def badcopy(p): + i=first(p,lambda e:e[0]=='scalar' and e[1][0]=='copy');p[i][2]=0 + controls.append(reject('wrong COPY frame',badcopy)) + controls.append(reject('omitted pivot output clear',lambda p:p.pop())) + raw=(snapshot/candidate_path).read_bytes() + result={'status':'PASS_BOUNDED_FRESH_INDEPENDENT_PHYSICAL_5387_EIGHT_RELATIONS','candidate_head':manifest['candidate_head'],'canonical_main':manifest['canonical_main'],'manifest_sha256':manifest_hash,'word_sha256':hashlib.sha256(raw).hexdigest(),'word_payload_sha256':hashlib.sha256(gzip.decompress(raw)).hexdigest(),'word_git_blob':hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest(),'verified_capsule_rows':len(verified),'rank':8,'pivots':pivots,'rref':[{str(k):str(q) for k,q in r.items()} for r in rref],'unrestricted_source_identities':identities,'all_columns':allcolumns,'source_phase_catalogue_subset':subset,'source_phase_lowering_rerun':False,'source_phase_foundation':'accepted exact4610 through selected5241; unchanged recipes plus subset proof, not fresh lowering','snapshot_lifetimes':{'all_eight_live_before_first_center':max(s[0] for s in SPECS) (x,y+x)` and backward map is `(x,y) -> (x−y,y)`. Every retained helper has the source complete physical entrance/exit interface because its logical endpoint and actual ordered frame bases agree with the source. Every owned field is zero at return. No retained input is cleared or overwritten. + +The eight pivot helpers start in frame0 and end in frame1, of dimension nine. Their independent productive credit is surrendered. Arbitrary initial values in those physical slots are erased under the inherited owned-erasure premise before relation preparation. The final dependent values are erased only after their source uses. This explicitly changed contract preserves400 backward helpers and408 forward helpers; it does not claim that the full changed backward map is the inverse transpose of an unchanged632-independent-field map. + +Seven executable-word controls reject: wrong preparation sign, omitted pivot entry clear, wrong snapshot role, wrong zero output frame, wrong paid rank, wrong COPY frame and omitted pivot output clear. The full correct all-column run is their positive control. The first two controls survive until a main output differs; the last detects an uncleared owned return. + +## Source phases, spectators and every positive column width + +The canonical physical data is exact-source identical. Each signed native occurrence is unchanged, in the same order with the same owner/frame interface. A counter census proves that every retained paid occurrence is an exact source occurrence; backward removes exactly eight rank-eight centers and eight rank-one climbs, while forward removes none. Main charts are unchanged. Retained helper endpoint recipes are the source recipes on their original start/end frames. No new Gaussian operator or phase recipe is introduced by preparation, same-frame COPY/CLEAR or identity on zero. + +The authenticated source PHASE-VALIDATION binds the accepted source payload and its absolute-phase evidence. That author receipt alone did not newly lower the full paid catalogue here. The broader exact4610 native/paid/helper phase foundation is inherited from accepted PR5241; the existing audit's `RESUME-PUBLIC-RECEIPT-BINDING-20261024.json` distinguishes the public maintainer cold pass from local preflight. This review supplies the exact subset/applicability implication needed to reuse that foundation. It does not claim a new replay of all5,710 oriented paid phase classes. + +For any positive column multiplicity f, map each free native generator to the source's full actual f-column lift and each inverse to its inverse lift. This is an algebra homomorphism from rational free-group rows to linear operators. Retain each scalar coefficient **outside** the substitution. Hence the sixteen universal row identities survive simultaneously on every field, including correlated and nonseparable inputs. No tensor power is distributed over a sum. Backward and forward use their actual separately oriented source substitutions; no additional transpose identification is assumed. + +Exact same-frame COPY uses identical full frame operators and scalar coefficient one. CLEAR is the permitted owned primitive. Every full linear frame operator maps zero to zero. These operations act as identity on every spectator field; each source operator lift has the inherited complete-owner and spectator interface. Thus the argument is a universal operator identity at every positive f, rather than evidence from finitely many separable or basis fixtures. Physical tariff applicability retains the source geometry/record-fiber domain; no arbitrary permutation or new movement exponent is assumed. + +The ideal zero identity concerns the exact changed program. Approximation errors in its actual execution require fresh precision propagation for that changed program. They are not erased by the frame marker, and this proof assumes no runtime test that a rounded intermediate is literally zero. Fresh expanded W/P/O/R/G/N, stock products, tape and eventual thresholds belong to worker03's separate closure. + +## Controller banks and resulting contract + +The unchanged literal controller has backward LOCAL stages1,3,...,31, forward LOCAL stages0 and32, and15 thin QUERY_SHEAR events. Its proof section4 assigns a disjoint helper bank to every full call. Label every helper by `(LOCAL stage, helper role)` and remove the eight pivot roles only at backward stages. This yields `16*400 + 2*408 = 7216` independent helper outputs, plus `32*112 = 3584` main outputs, hence **10800** unique productive fields. Snapshots, pivots, C0 and query scratch receive no productive credit. This is a unique-owner inventory, not a rank-only count. + +The independently counted local paid profiles are source forward `{1:2201,2:412,3:510,4:127,5:40,8:8}` and candidate backward `{1:2193,2:412,3:510,4:127,5:40}`. Therefore the controller delta is minus128 H1 and128 H8 paid jobs, against minus128 H9 productive targets. The separate invoice and arithmetic workers own the complete ordinary/route/compiler bill and κ admission. + +Every suspended recursive occurrence must retain its own relevant owned fields, including all eight live snapshots and pivot preparation lifetimes. Reusing raw slots between sequential calls is not permission to alias suspended parent and child banks. This is the same existing selected owner rule with a larger explicitly counted finite instance, not a new allocation premise. + +Credit remains with Ali Romman's PR5383 construction and PR5377 predecessor, Cao Yifan's final4610 source word, Cinna Davis's controller/helper/free-word lineage, zxv's native/compiler/precision work, Jacob Alan Sussman's mixed-target recursion, Chris R/Clear1nsight's PR5241/PR5384 independent admission and the other source notices. This review used substantial OpenAI Codex assistance. It is positive scoped physical evidence and supplies no unconditional multiplication theorem or independent human/kernel acceptance. diff --git a/research/price-plane-independent-validation/frozen/01-physical/README.exact-head.md b/research/price-plane-independent-validation/frozen/01-physical/README.exact-head.md new file mode 100644 index 0000000000..d0593a46e8 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/README.exact-head.md @@ -0,0 +1,280 @@ +# Conditional kappa 0.00302666 from eight joint helper relations + +This construction gives **conditional kappa = 151333/50000000 = 0.00302666**. +It improves the one-relation [PR #5377](https://github.com/CrocSwap/integer-mult-bounds/pull/5377) +value by **431/100000000 = 0.00000431**. The gain over the selected final +[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +value is **24421/5000000000 = 0.0000048842**. + +Eight independent helper relations replace all eight backward rank-eight +centers with exact saved values. They also remove eight later rank-one jobs +on zero fields. Each backward call gives up eight rank-nine productive helper +targets. All 224 main inputs and the other 400 helper inputs stay independent. +The forward word and p16 controller stay unchanged. This changes the complete +paid profile and proves a strict moment gain. + +[WITNESS.json](WITNESS.json) lists the eight relations and source events. +[WORD.json.gz](WORD.json.gz) contains the complete literal program. +[RESULT.json](RESULT.json) gives the exact row identities and complete bill. +[SOURCES.json](SOURCES.json) pins every consumed input by Git blob and SHA256. +The package has no runtime dependency on the pending PR #5377 package. + +## Source and research boundary + +The branch starts at canonical main +[1ec1119972c9aefe42525172d07b332fcff81cb4](https://github.com/CrocSwap/integer-mult-bounds/commit/1ec1119972c9aefe42525172d07b332fcff81cb4). +This base selects the final PR4610 result with the independent +[PR #5241](https://github.com/CrocSwap/integer-mult-bounds/pull/5241) audit. +The [selected review](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md) +records its exact scope and five retained framework assumptions. + +The frozen native source is Cao Yifan's +[round-three word](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz) +at final PR4610 commit `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`. +Its decompressed SHA256 is +`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. +The prior complete bill and crossing come from its +[round-six arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json). +All consumed source bytes occur in the recorded main base. + +The [canonical claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154290) +covers only the eight named centers and their joint relation system. +The separate [no-snapshot relation search](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154267) +has released its scope and explicitly excludes joint relations and center reuse. +The original-input cache search in +[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355) +is also released. The coded caller in +[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930) +retains all original helper outputs. This package changes eight helper inputs +in backward calls. It does not take those other research scopes. + +## General relation construction + +Consider an exact linear register program with independent helper inputs in +one common input frame. Let r independent scalar relations have a reduced +basis with dyadic coefficients and r helper pivots. Make these r fields owned. +Clear them and prepare each pivot from the nonpivot inputs with scalar ADDs. +Each relation is then zero for every remaining independent input. The r owned +fields receive no productive output credit. + +Suppose that an earlier field and a later owned center output have the same +exact frame, and their logical row difference is zero under these relations. +Clear a new owned field, COPY the earlier value into it and retain it. At the +center, clear the old owned center and COPY the saved value into that same +output frame. Clear the snapshot after use. This implements the old output +exactly without the center job. If another paid job has an identically zero +input row, the physical identity also implements that job on the restricted +domain. A frame annotation may change only after this exact zero check. + +Each replacement preserves the source state on that domain. Induction through +the chronological word therefore preserves every retained output. Clear all +owned pivots at return. The complete cost must remove their productive +credits and count every new scalar operation and storage route. Independence +of the relations is necessary: counting eight apparent formulas is not a +proof of eight independent pivots or of eight distinct saved jobs. + +## Eight exact source identities + +Let h_r denote the unrestricted logical input of source helper Lr. Define: + +```text +D1 = h230 - h324 + h326 + h328 - h333 +D2 = h225 - h384 - h388 + h390 + h391 + h392 - h397 +D3 = h225 - h227 + h229 - 2h231 + h232 - h234 - h235 + - h236 - h237 + 2h238 + h239 - h384 - h388 + h390 + + h391 + h392 - h397 +D4 = h227 + h229 - h232 + h234 + h235 - h236 + h237 + - h239 - h324 + h326 + h328 - h333 +D5 = h241 - h243 + h245 - h247 - h252 - h253 + h254 + h255 +D6 = h225 - h241 + h243 + h245 - h247 - h252 + h253 + + h254 - h255 - h324 + h326 + h328 - h333 - h384 + - h388 + h390 + h391 + h392 - h397 +D7 = h257 - h259 + h261 - h263 - h268 - h269 + h270 + h271 +D8 = h288 - h294 - h296 - h297 + h300 + h303 +``` + +Every helper in these relations starts in frame 0 and ends in frame 1, of +rank nine. Exact row reduction gives the eight pivots +**225, 227, 229, 230, 241, 245, 257, 288**. The reduced basis has no other pivot +in any pivot row. Its nonzero coefficients are integers or half-integers. +The emitted preparation thus uses only independent inputs and dyadic ADDs; +it has no cyclic dependence and needs no recursive job. The full reduced +basis is recorded in the word and result. + +The following indices are zero-based indices in the frozen backward source. +A snapshot is taken immediately after its named event. The two last columns +are identities in the unrestricted source, before any relation is imposed. + +| Relation | Snapshot event and role | Frame | Center event | Later zero event and role | Center minus snapshot | Later row | +|---|---|---|---|---|---|---| +| D1 | 11205, L92 | 254 | 11332 | 15584, L92 | D1/4 | -D1/4 | +| D2 | 11218, L57 | 274 | 11358 | 17264, L57 | D2/4 | -D2/4 | +| D3 | 11231, L81 | 619 | 11384 | 17256, L81 | D3/4 | -D3/4 | +| D4 | 11244, L224 | 279 | 11410 | 17722, L224 | -D4/4 | D4/4 | +| D5 | 11257, L11 | 621 | 11436 | 15876, L11 | D5/4 | -D5/4 | +| D6 | 11270, L240 | 280 | 11462 | 17245, L240 | -D6/4 | D6/4 | +| D7 | 11283, L9 | 624 | 11488 | 15870, L9 | D7/4 | -D7/4 | +| D8 | 11306, L288 | 281 | 11514 | 17580, L288 | D8/4 | -D8/4 | + +The COPY coefficient is one in every case. All eight snapshots are live +before the first center replacement. They use distinct owned fields C1 through +C8. Each is read once and cleared after use. The source owned center C0 is +cleared before each replacement. Each later zero job changes from the listed +frame to frame 1 and has rank one. `zero_retag` is a physical no-op; the verifier +requires its complete row to be zero and checks both exact frame identifiers. + +A separate source interpreter checks all sixteen identities on the unrestricted +632 source inputs. The new interpreter then executes the emitted program on +all **624 independent persistent columns and 17 arbitrary owned entry columns**. +It checks every scalar frame, paid rank, native transition, retained endpoint, +final frame and owned return. No independent input is silently set to zero. + +The identities are over rational coefficients and reduced free operator words. +They hold for any invertible interpretation of the native generators. At +positive tensor width f, replace each generator with its source tensor power +and each inverse with the inverse tensor power. Keep each rational coefficient +outside this substitution. Evaluation is a representation of the free group, +so the identities still hold. In particular, no tensor power is distributed +over a sum. The retained +[free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md) +records this termwise argument and credits Cinna Davis and ToikY. + +All 4,429 source frames, 72 native maps, adapters and retained paid operators +are unchanged. The package authenticates and reuses the source +[absolute-phase evidence](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz). +Same-frame COPY and identity on zero add no phase recipe. This package does +not rerun the source Clifford lowering or amplitude checks. The new identities +hold for the full source operators, including their absolute phases. + +## Complete bill and compiler + +Each backward call has the following complete local profiles: + +```text +paid: {1:2193, 2:412, 3:510, 4:127, 5:40} +helpers: {4:28, 7:7, 8:47, 9:318} +``` + +The controller has 16 backward calls, two unchanged forward calls and 15 thin +queries. Every idle and main target remains paid or credited as in the source. +Compared with PR4610, the complete difference is **minus 128 H1 and 128 H8 paid +jobs, with minus 128 H9 productive targets**. Compared with PR5377 it removes +224 further paid jobs and 112 further productive fields. The complete bill has +**64,148 paid jobs and 10,800 productive fields**. The respective rank masses +are 237,982 and 238,734, with unchanged surplus 752. + +For every real `0 < t < 1`, the complete target-minus-paid moment increases by + +```math +128(1+8^t-9^t)>0. +``` + +Both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; summing and multiplying by `9^t` +proves the strict inequality. This comparison charges the lost helper jobs. + +The backward scalar allowance is **158,744**, which is 576 above the source. +Its maximum formal prefix L1 norm is **163**, below the source value 169, and +its maximum denominator stays 64. The forward values remain 158,120, 457 and +32. Eight new physical slots hold C1 through C8; the eight private helpers use +existing slots. The local route allowance charges both routes for each of +these sixteen new owned lifetimes. It is **4,834,000**. The local scalar-plus-route +bill stays below 10^7. The complete raw nonrecursive bound remains +**181,098,496 < 10^9**. These bounds include preparation, storage, COPY and CLEAR. +The retained precision and tape prescriptions must use this expanded fixed +template, not a former numerical template-size cap. + +Two rational interval engines verify the complete moment. Its unique crossing +in `0 < kappa < 1` lies in **(0.00302667476807, 0.00302667476808)**. Exact interval +bounds prove decrease on `[0,0.05]` and negativity on `[0.05,1]`. This is a ceiling +for this fixed complete profile. It does not optimize all relation systems. +The claimed kappa leaves more than **0.00000001476807** raw headroom. + +The tested saving is **0.00302667**. The paid/target ratio is below +`0.999999995016963387587258118167`, with reserve `1e-9`. The two charged tail +ratios are below 0.957 and 0.952, respectively, hence below 0.97. Tensor power +1024, cutoff 20, floor 21, tail offset 1/5, complement factor 63/64 and logarithm +power 1000 all pass. The finite compiler uses gap `1/700000000`, `j=44836`, +`H=31385200000000` and `N=2^31385200000000`. The exact test +`(H+1)^1000 < 2^44836` passes; the preceding grid integer fails. The uniform +complex saving is `529667/175000000`. All **54 strict outer predicates and +four functional predicates** pass with the retained ordinary BIT saving 0.0034. + +## Verification and limitations + +Use CPython 3.12 or 3.14 and the standard library. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/kappa-joint-relations-20261023 --check-only +python3 -B scripts/research_package.py --package research/kappa-joint-relations-20261023 +``` + +The registered verifier runs normal and optimized modes. The direct commands +also work in the official Git-free export: + +```sh +python3 -B research/kappa-joint-relations-20261023/verify.py +python3 -O -B research/kappa-joint-relations-20261023/verify.py +``` + +Both print `PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS`. +The verifier reconstructs and compares the literal published word and result. +`--write` is an authoring mode that writes only this package after all checks +pass. Regeneration compares decompressed payloads, not gzip container bytes. + +Fresh checks cover both original and changed words, all retained and owned +entry columns, sixteen unrestricted source identities, exact relation rank, +phase source bindings, the p16 Laurent controller and both boundary programs, +two complete invoice counts, two interval engines, the fixed profile ceiling, +completion, compiler and every outer predicate. Seven native controls reject +a wrong preparation sign, omitted input clear, wrong snapshot, wrong zero +frame, wrong paid rank, wrong COPY gauge and omitted output clear. Five +cost controls reject unearned helper credit and four invalid outer parameters. + +Normal and optimized registered checks passed on CPython 3.12.14. The direct +author replay also passed on CPython 3.14. Metadata and source pins passed. +The publication handoff records committed-byte and Git-free export checks. +The optional full-history preflight is not claimed in this shallow checkout. + +These are author checks. The source phase lowering, BIT native construction, +physical tape execution, numerical precision execution, analytic decomposition, +fine-prime avoidance and exact integer recovery are inherited. They are not +rerun here. No expanded compiled word, Lean proof, Docker run or independent +human acceptance is claimed. The complete result retains the selected five +framework assumptions: all-column native realization, owned erasure, uniform +compiler closure, precision/tape and analytic recovery. No selected record is +changed. This is a conditional mathematical improvement, not a timing result. + +## Credit + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +The new code and proof generalize our +[frozen one-relation package](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md) +from PR5377. That package supplies D1, its COPY/zero argument and the original +complete-cost verifier. The new work is the joint rank-eight system, seven +further centers, eight simultaneous snapshots and the new complete bound. + +Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +supplies the exact word, phase evidence and compiler lineage. Chris R's +[PR #5241](https://github.com/CrocSwap/integer-mult-bounds/pull/5241) supplies the +independent admission evidence now used by main; that audit does not cover +this changed helper inventory. Cinna Davis's +[PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470) supplies the +controller and productive-helper lineage. zxv's +[PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) supplies the +related cache contract and handoff to actual row/lifetime matches. + +The retained [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py) +and [native source](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py) +credit Dugongue's transported frames, zxv's native/compiler work, Jacob Alan +Sussman's mixed-target recursion and the earlier contributors. Their notices +and the original source bytes remain unchanged. + +## Open next questions + +An independent reviewer should check the eight pivot preparations and sixteen +unrestricted identities, then the COPY/zero realization and complete bill. +Independent physical and all-size acceptance remains necessary. A further +construction must change another paid job or relation system: all eight +backward centers are already removed here. Check live claims and price every +lost target before that search. [TASK.json](TASK.json) records both questions, +first checks and blockers. No optimum over helper relations is claimed. diff --git a/research/price-plane-independent-validation/frozen/01-physical/VERIFIED-PINS.json b/research/price-plane-independent-validation/frozen/01-physical/VERIFIED-PINS.json new file mode 100644 index 0000000000..440c218da9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/VERIFIED-PINS.json @@ -0,0 +1,221 @@ +{ + "manifest_sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "rows": [ + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "capsule_path": "snapshot/certificates/selected-result.json", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/higher-moment-strictification/verify.py", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/README.md", + "sha256": "899027b74219ece1832d711e27def50eb49994cd28ede4fedcdd0bd0f2574c64", + "git_blob": "d0593a46e89eb63a533968cd6bc1d2a129f3c22e", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/RESULT.json", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/SOURCES.json", + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3", + "git_blob": "71c57c8a90585da602b8df163d582e7c77949c00", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/TASK.json", + "sha256": "4d536a9bd6162b64ecf7bba20bec35fa0ca8fe61abf8e1404cd010b58de07a3d", + "git_blob": "5b57a9e8233575c97042b774a8ee3881e6ece6f7", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/VERIFY.json", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WITNESS.json", + "sha256": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591", + "git_blob": "19665f9eac2238d709758e0296eb6016e71b2b1a", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WORD.json.gz", + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "git_blob": "a4a58afce144541603385e9bf4e0695c54eade7c", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/native.py", + "sha256": "3c8efab1f830868c054d33391ee2f8bc74f9bae9c134edf5b455790eb674c1c4", + "git_blob": "cbff46fe6e7d71c10fe439610f1916ad07fa3cd8", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/price.py", + "sha256": "6ec03cda9ab6cb27c4a281c12646bbbc232cc57b8ec179969c59b0072c4b59ba", + "git_blob": "2868905a1650d4b94fb92cdac9c86ea98877e047", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/verify.py", + "sha256": "43fb20a4ef18fb17f168c9e3c1608898551a04fb64496405d3682983dbf47828", + "git_blob": "3f7eb9359a980f2467d202d567a100fceccd8f20", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/research/query-thinned-controllers/RESULT.json", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/scripts/check_research_commit.py", + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + }, + { + "capsule_path": "snapshot/scripts/research_package.py", + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e" + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/01-physical/independent_physical_check.py b/research/price-plane-independent-validation/frozen/01-physical/independent_physical_check.py new file mode 100644 index 0000000000..b905d71157 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/01-physical/independent_physical_check.py @@ -0,0 +1,304 @@ +#!/usr/bin/env python3 +"""Independent exact PR5383 physical audit; no candidate evaluator imports. + +Core free-group pullback/forward algorithms adapted from our independent PR5377 +engine. PR5383 obligations below are newly instantiated and derived from bytes. +""" +from collections import Counter +from fractions import Fraction as F +from pathlib import Path +import gzip, hashlib, json, time + +HERE = Path(__file__).resolve().parent +P = HERE / 'pinned' + +def read(name): + raw = (P / name).read_bytes() + return json.loads(gzip.decompress(raw) if name.endswith('.gz') else raw) + +def check(test, message): + if not test: + raise ValueError(message) + +def merge(dst, key, value): + q = dst.get(key, F(0)) + value + if q: + dst[key] = q + else: + dst.pop(key, None) + +def right_letter(word, op): + return word[:-1] if word and word[-1] == -op else word + (op,) + +def pullback(program, role, stop): + """Right-append words while pulling one output functional to source inputs.""" + functional = {role: {(): F(1)}} + for event in reversed(program[:stop+1]): + if event[0] == 'warp': + dst, op = tuple(event[1]), event[2] + if dst in functional: + functional[dst] = {right_letter(w, op): q for w, q in functional[dst].items()} + elif event[0] == 'scalar': + g = event[1]; dst = tuple(g[1]) + row = functional.get(dst, {}) + if g[0] == 'clear': + functional.pop(dst, None) + elif g[0] == 'scale': + functional[dst] = {w: q*F(*g[2:]) for w,q in row.items()} + else: + src = tuple(g[2]); copy = g[0] == 'copy' + check(copy or g[0] == 'add', 'known scalar pullback') + q = F(1) if copy else F(*g[3:]) + if copy: + functional.pop(dst, None) + for w, a in tuple(row.items()): + merge(functional.setdefault(src, {}), w, q*a) + else: + check(event[0] in ('climb','center','phase','adapter'), 'source opcode') + return {(r,w): q for r,row in functional.items() for w,q in row.items() if q} + +def difference(a,b): + out=dict(a) + for k,q in b.items(): merge(out,k,-q) + return out + +def span(basis): + s={0} + for b in basis: s |= {x^b for x in tuple(s)} + check(len(s)==2**len(basis), 'independent frame basis') + return s + + +# Published source obligations, transcribed from exact-head README, then proved +# by a reverse interpreter rather than candidate native.py or WITNESS evaluator. +SPECS=[ + (11205,92,254,11332,15584,1,{230:1,324:-1,326:1,328:1,333:-1}), + (11218,57,274,11358,17264,1,{225:1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11231,81,619,11384,17256,1,{225:1,227:-1,229:1,231:-2,232:1,234:-1,235:-1,236:-1,237:-1,238:2,239:1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11244,224,279,11410,17722,-1,{227:1,229:1,232:-1,234:1,235:1,236:-1,237:1,239:-1,324:-1,326:1,328:1,333:-1}), + (11257,11,621,11436,15876,1,{241:1,243:-1,245:1,247:-1,252:-1,253:-1,254:1,255:1}), + (11270,240,280,11462,17245,-1,{225:1,241:-1,243:1,245:1,247:-1,252:-1,253:1,254:1,255:-1,324:-1,326:1,328:1,333:-1,384:-1,388:-1,390:1,391:1,392:1,397:-1}), + (11283,9,624,11488,15870,1,{257:1,259:-1,261:1,263:-1,268:-1,269:-1,270:1,271:1}), + (11306,288,281,11514,17580,1,{288:1,294:-1,296:-1,297:-1,300:1,303:1}), +] + +def rref_relations(): + columns=sorted(set().union(*(set(s[-1]) for s in SPECS))) + a=[[F(s[-1].get(i,0)) for i in columns] for s in SPECS] + pivot_columns=[]; row=0 + for j,col in enumerate(columns): + found=next((k for k in range(row,len(a)) if a[k][j]),None) + if found is None:continue + a[row],a[found]=a[found],a[row] + q=a[row][j]; a[row]=[x/q for x in a[row]] + for k in range(len(a)): + if k==row:continue + q=a[k][j] + a[k]=[x-q*y for x,y in zip(a[k],a[row])] + pivot_columns.append(col);row+=1 + if row==len(a):break + check(row==8,'relations have exact rational rank eight') + check(pivot_columns==[225,227,229,230,241,245,257,288],'source-declared pivot set derived') + rows=[{col:q for col,q in zip(columns,r) if q} for r in a] + for pivot,r in zip(pivot_columns,rows): + check(r[pivot]==1 and all(p not in r for p in pivot_columns if p!=pivot),'pivot block is identity') + check(all(q.denominator in (1,2) for q in r.values()),'preparation dyadic half-integer grammar') + return pivot_columns,rows + +def source_identity_checks(source): + old=source['programs']['backward']; identities=[] + for n,(snap,lender,frame,center,zero,sign,relation) in enumerate(SPECS,1): + check(old[snap][0]=='climb' and old[snap][2]==lender and old[snap][4]==frame,'literal snapshot endpoint') + check(old[center]==['center',0,0,frame,8],'literal rank-eight center') + check(old[zero][0]=='climb' and old[zero][2:]==[lender,frame,1,1],'literal rank-one zero job') + q=pullback(old,('L',lender),snap) + c=pullback(old,('C',0),center) + z=pullback(old,('L',lender),zero) + d={(('L',i),()):F(v*sign,4) for i,v in relation.items()} + check(difference(c,q)==d,'unrestricted center-snapshot identity D'+str(n)) + check(z=={k:-v for k,v in d.items()},'unrestricted zero identity D'+str(n)) + wrong=dict(d);k=next(iter(wrong));wrong[k]=-wrong[k] + check(difference(c,q)!=wrong,'wrong relation sign rejects D'+str(n)) + check(difference(c,pullback(old,('L',(lender+1)%632),snap))!=d,'wrong snapshot rejects D'+str(n)) + identities.append({'relation':n,'snapshot':snap,'lender':lender,'frame':frame,'center':center,'zero':zero,'sign':sign,'snapshot_terms':len(q),'relation_terms':len(d),'center_minus_snapshot':'sign*D/4','later_zero_row':'-sign*D/4'}) + return identities + +def advance_all(word, direction, specialized): + c=word['canonical']; owned={('C',0)} + if specialized: owned|={('C',i) for i in range(1,9)}|{('L',p) for p in rref_relations()[0]} + state={('L',i): {(('L',i),()): F(1)} for i in range(632)} + state.update({r:{(r,()):F(1)} for r in owned}) + frames={('L',i):f for i,f in enumerate(c['start'])} + frames.update({r:None for r in owned if r[0]=='C'}) + spaces=list(map(span,c['frames'])); paid=Counter(); zeros=[] + for index,event in enumerate(word['programs'][direction]): + kind=event[0] + if kind=='scalar': + g,frame=event[1:]; dst=tuple(g[1]) + if g[0]=='clear': + check(dst in owned,'erase only owned storage') + state[dst]={}; frames[dst]=frame + else: + check(frames[dst]==frame,'scalar output gauge') + if g[0]=='scale': state[dst]={k:q*F(*g[2:]) for k,q in state[dst].items()} + else: + src=tuple(g[2]); check(frames[src]==frame and src!=dst,'scalar source gauge') + if g[0]=='copy': + check(dst in owned and not state[dst], 'copy clears owned destination') + state[dst]=dict(state[src]) + else: + check(g[0]=='add','known scalar') + for k,q in tuple(state[src].items()): merge(state[dst],k,q*F(*g[3:])) + elif kind=='warp': + _,role,op,old,new=event; dst=tuple(role) + check(frames[dst]==old,'native warp input gauge') + transformed={} + for (r,w),q in state[dst].items(): + nw=w[1:] if w and w[0]==-op else (op,)+w + merge(transformed,(r,nw),q) + state[dst]=transformed; frames[dst]=new + elif kind in ('climb','center'): + if kind=='climb': _,_,i,old,new,rank=event; dst=('L',i) + else: _,i,old,new,rank=event; dst=('C',i) + check(frames[dst]==old,'paid input gauge') + check(spaces[old]L261; C8 snapshot and zero row L288->L256, same frame281 and rank tariff; new physical receipt required", + "predecessor_invoice_sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e", + "promotion_rule": "No numerical PASS promotes this census to complete bill or funded status without all required external receipts. Unknown charges retain UNKNOWN status.", + "required_external_receipts": { + "01": "literal all-column identities, exact frames and owned return", + "03": "fresh expanded precision, stocks and common primitive tariff applicability", + "04": "independent exact funding/compiler/outer constraints" + }, + "schema": "source-bound-candidate-contract/1", + "source_interface_parameters_only": { + "author_claimed_kappa": "605334953/200000000000", + "complement_factor": "63/64", + "completion_reserve": "1/1000000000000", + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "source": "capsule snapshot README read after own census; requires independent funding/applicability", + "tail_offset": "1/5", + "tensor_power": 1024, + "tested_saving": "1513337383/500000000000" + }, + "status": "WITNESS_READY_CENSUS_READY_APPLICABILITY_PENDING" +} diff --git a/research/price-plane-independent-validation/frozen/02-census/DELTA-5387-v2.json b/research/price-plane-independent-validation/frozen/02-census/DELTA-5387-v2.json new file mode 100644 index 0000000000..481350c23e --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/DELTA-5387-v2.json @@ -0,0 +1,2761 @@ +{ + "aligned_middle_mismatches": [ + { + "new": [ + "scalar", + [ + "clear", + [ + "C", + 8 + ] + ], + 281 + ], + "new_index": 11375, + "old": [ + "scalar", + [ + "add", + [ + "L", + 304 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "old_index": 11373 + }, + { + "new": [ + "scalar", + [ + "copy", + [ + "C", + 8 + ], + [ + "L", + 256 + ] + ], + 281 + ], + "new_index": 11376, + "old": [ + "climb", + "warp_retimed", + 336, + 305, + 281, + 4 + ], + "old_index": 11374 + }, + { + "new": [ + "scalar", + [ + "add", + [ + "L", + 304 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "new_index": 11377, + "old": [ + "scalar", + [ + "add", + [ + "L", + 336 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "old_index": 11375 + }, + { + "new": [ + "climb", + "warp_retimed", + 336, + 305, + 281, + 4 + ], + "new_index": 11378, + "old": [ + "climb", + "warp_retimed", + 384, + 309, + 281, + 4 + ], + "old_index": 11376 + }, + { + "new": [ + "scalar", + [ + "add", + [ + "L", + 336 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "new_index": 11379, + "old": [ + "scalar", + [ + "add", + [ + "L", + 384 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "old_index": 11377 + }, + { + "new": [ + "climb", + "warp_retimed", + 384, + 309, + 281, + 4 + ], + "new_index": 11380, + "old": [ + "climb", + "warp_retimed", + 416, + 1922, + 281, + 3 + ], + "old_index": 11378 + }, + { + "new": [ + "scalar", + [ + "add", + [ + "L", + 384 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "new_index": 11381, + "old": [ + "scalar", + [ + "add", + [ + "L", + 416 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "old_index": 11379 + }, + { + "new": [ + "climb", + "warp_retimed", + 416, + 1922, + 281, + 3 + ], + "new_index": 11382, + "old": [ + "climb", + "warp_retimed", + 432, + 1933, + 281, + 3 + ], + "old_index": 11380 + }, + { + "new": [ + "scalar", + [ + "add", + [ + "L", + 416 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "new_index": 11383, + "old": [ + "scalar", + [ + "add", + [ + "L", + 432 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "old_index": 11381 + }, + { + "new": [ + "climb", + "warp_retimed", + 432, + 1933, + 281, + 3 + ], + "new_index": 11384, + "old": [ + "climb", + "warp_retimed", + 288, + 301, + 281, + 4 + ], + "old_index": 11382 + }, + { + "new": [ + "scalar", + [ + "add", + [ + "L", + 432 + ], + [ + "L", + 256 + ], + -1, + 1 + ], + 281 + ], + "new_index": 11385, + "old": [ + "scalar", + [ + "clear", + [ + "C", + 8 + ] + ], + 281 + ], + "old_index": 11383 + }, + { + "new": [ + "climb", + "warp_retimed", + 288, + 301, + 281, + 4 + ], + "new_index": 11386, + "old": [ + "scalar", + [ + "copy", + [ + "C", + 8 + ], + [ + "L", + 288 + ] + ], + 281 + ], + "old_index": 11384 + }, + { + "new": [ + "zero_retag", + [ + "L", + 256 + ], + 281, + 1 + ], + "new_index": 17329, + "old": [ + "climb", + "warp_retimed", + 256, + 281, + 1, + 1 + ], + "old_index": 17327 + }, + { + "new": [ + "climb", + "warp_retimed", + 288, + 281, + 1, + 1 + ], + "new_index": 17676, + "old": [ + "zero_retag", + [ + "L", + 288 + ], + 281, + 1 + ], + "old_index": 17674 + } + ], + "backward_middle_events_equal": false, + "canonical_byte_semantics_equal": true, + "forward_events_equal": true, + "from_head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "middle_equal_after_removing_snapshot8_pairs": false, + "new_owned_persistent": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "new_prefix_events": 64, + "new_preparation": [ + [ + "scalar", + [ + "clear", + [ + "L", + 225 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 384 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 388 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 390 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 391 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 392 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 397 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 227 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 231 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 232 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 234 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 235 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 237 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 238 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 239 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 229 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 231 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 236 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 238 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 230 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 324 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 326 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 328 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 333 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 241 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 243 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 253 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 255 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 324 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 326 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 328 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 333 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 245 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 247 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 252 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 254 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 257 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 259 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 269 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 271 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 324 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 326 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 328 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 333 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 261 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 263 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 268 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 270 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 261 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ] + ], + "new_return_events": [ + [ + "scalar", + [ + "clear", + [ + "L", + 225 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 227 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 229 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 230 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 241 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 245 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 257 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 261 + ] + ], + 1 + ] + ], + "new_snapshot8": { + "clear": [ + "scalar", + [ + "clear", + [ + "C", + 8 + ] + ], + 281 + ], + "copy": [ + "scalar", + [ + "copy", + [ + "C", + 8 + ], + [ + "L", + 256 + ] + ], + 281 + ], + "copy_index_relative_to_middle": 11312 + }, + "not_merely_preparation_order": "Owned input/output inventory changes from L288 to L261, both rank9; exact physical endpoint receipt required.", + "old_owned_persistent": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 288 + ], + "old_prefix_events": 62, + "old_preparation": [ + [ + "scalar", + [ + "clear", + [ + "L", + 225 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 384 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 388 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 390 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 391 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 392 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 225 + ], + [ + "L", + 397 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 227 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 231 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 232 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 234 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 235 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 237 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 238 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 239 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 227 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 229 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 231 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 236 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 238 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 229 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 230 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 324 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 326 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 328 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 230 + ], + [ + "L", + 333 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 241 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 243 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 253 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 255 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 324 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 326 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 328 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 241 + ], + [ + "L", + 333 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 245 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 247 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 252 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 254 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 324 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 326 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 328 + ], + -1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 245 + ], + [ + "L", + 333 + ], + 1, + 2 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 257 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 259 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 261 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 263 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 268 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 269 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 270 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 257 + ], + [ + "L", + 271 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 288 + ] + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 288 + ], + [ + "L", + 294 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 288 + ], + [ + "L", + 296 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 288 + ], + [ + "L", + 297 + ], + 1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 288 + ], + [ + "L", + 300 + ], + -1, + 1 + ], + 0 + ], + [ + "scalar", + [ + "add", + [ + "L", + 288 + ], + [ + "L", + 303 + ], + -1, + 1 + ], + 0 + ] + ], + "old_return_events": [ + [ + "scalar", + [ + "clear", + [ + "L", + 225 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 227 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 229 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 230 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 241 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 245 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 257 + ] + ], + 1 + ], + [ + "scalar", + [ + "clear", + [ + "L", + 288 + ] + ], + 1 + ] + ], + "old_snapshot8": { + "clear": [ + "scalar", + [ + "clear", + [ + "C", + 8 + ] + ], + 281 + ], + "copy": [ + "scalar", + [ + "copy", + [ + "C", + 8 + ], + [ + "L", + 288 + ] + ], + 281 + ], + "copy_index_relative_to_middle": 11322 + }, + "paid_and_productive_histograms_equal": true, + "physical_delta": "Snapshot C8 changes source L288 to earlier L256, frame281. Zero retag moves L288 to L256 while the other rank1 climb is restored. Owned pivot L288 becomes L261. Exactly these changes plus preparation and final owned clear partition the word delta.", + "raw_bound_delta": 0, + "remaining_exact_middle_differences_after_snapshot_removal": [ + { + "index_relative_to_snapshot_stripped_middle": 17263, + "new": [ + "zero_retag", + [ + "L", + 256 + ], + 281, + 1 + ], + "old": [ + "climb", + "warp_retimed", + 256, + 281, + 1, + 1 + ] + }, + { + "index_relative_to_snapshot_stripped_middle": 17610, + "new": [ + "climb", + "warp_retimed", + 288, + 281, + 1, + 1 + ], + "old": [ + "zero_retag", + [ + "L", + 288 + ], + 281, + 1 + ] + } + ], + "route_units_delta": 0, + "scalar_allowance_delta": 32, + "schema": "independent-literal-delta/1", + "to_head": "b1ab650d36f59e5be682a813145b7c67e219e341" +} diff --git a/research/price-plane-independent-validation/frozen/02-census/INVOICE-v1.json b/research/price-plane-independent-validation/frozen/02-census/INVOICE-v1.json new file mode 100644 index 0000000000..041e66e326 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/INVOICE-v1.json @@ -0,0 +1,384 @@ +{ + "baseline_delta": { + "paid": { + "1": -128, + "8": -128 + }, + "productive": { + "9": -128 + } + }, + "candidate": { + "base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "module": "research/kappa-joint-relations-20261023", + "pr": 5383 + }, + "capsule_manifest_sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "census_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "chronology_sha256": "5fb7a2baa43e502b720638513e19f40649e454b0528f18e68e197ae15889cd22", + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "controller": { + "boundaries": { + "left": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 90, + "explicit_scalar_units": 138432, + "opcodes": { + "ADD": 56, + "SCALE": 4, + "SWAP": 30 + } + }, + "right": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 55, + "explicit_scalar_units": 101696, + "opcodes": { + "ADD": 25, + "SCALE": 3, + "SWAP": 27 + } + } + }, + "counts": { + "ADD": 90, + "FULL_backward": 16, + "FULL_forward": 2, + "IDLE": 15, + "LOCAL": 18, + "QUERY_SHEAR": 15, + "SIGNED_SWAP": 16 + }, + "idle_paid": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "main_targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224 + } + }, + "credit": "Ali Romman construction; Cao Yifan #4610 word; Cinna Davis controller/helper lineage; zxv native/precision/compiler; Jacob Alan Sussman recursion; retained source notices. Independent census prepared with substantial OpenAI assistance.", + "histograms": { + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "productive": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "input_hashes": { + "research/joint-helper-lattice/CONTROLLER.json": { + "payload_sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + "research/kappa-joint-relations-20261023/WORD.json.gz": { + "payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d", + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a" + }, + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": { + "payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + } + }, + "local_baseline_comparison": { + "backward": { + "scalar_opcode_deltas": { + "add": 54, + "clear": 40, + "copy": 16, + "scale": 0 + }, + "scalar_unit_delta": 576, + "source_event_count": 21449, + "source_scalar_units": 158168 + }, + "forward": { + "scalar_opcode_deltas": { + "add": 0, + "clear": 0, + "copy": 0, + "scale": 0 + }, + "scalar_unit_delta": 0, + "source_event_count": 21449, + "source_scalar_units": 158120 + } + }, + "locals": { + "backward": { + "event_count": 21551, + "event_kinds": { + "adapter": 448, + "climb": 3282, + "phase": 10, + "scalar": 17563, + "warp": 240, + "zero_retag": 8 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_persistent_roles": 624, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ], + [ + "C", + 1 + ], + [ + "C", + 2 + ], + [ + "C", + 3 + ], + [ + "C", + 4 + ], + [ + "C", + 5 + ], + [ + "C", + 6 + ], + [ + "C", + 7 + ], + [ + "C", + 8 + ], + [ + "L", + 225 + ], + [ + "L", + 227 + ], + [ + "L", + 229 + ], + [ + "L", + 230 + ], + [ + "L", + 241 + ], + [ + "L", + 245 + ], + [ + "L", + 257 + ], + [ + "L", + 288 + ] + ], + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "scalar_coefficients": { + "-1": 4479, + "-1/2": 2456, + "-1/4": 1613, + "-1/8": 37, + "-2": 489, + "-3/2": 10, + "-3/4": 15, + "-3/8": 12, + "-4": 14, + "-5/8": 9, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3640, + "1/2": 2621, + "1/4": 1569, + "1/8": 41, + "2": 440, + "3/2": 10, + "3/4": 5, + "3/8": 10, + "4": 12, + "5/8": 3, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16327, + "clear": 56, + "copy": 16, + "scale": 1164 + }, + "scalar_units": 158744, + "warp_groups": 240 + }, + "forward": { + "event_count": 21449, + "event_kinds": { + "adapter": 448, + "center": 8, + "climb": 3290, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_persistent_roles": 632, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "scalar_coefficients": { + "-1": 4213, + "-1/2": 2714, + "-1/4": 1483, + "-1/8": 41, + "-2": 541, + "-3/2": 10, + "-3/4": 5, + "-3/8": 10, + "-4": 14, + "-5/8": 3, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3860, + "1/2": 2347, + "1/4": 1699, + "1/8": 37, + "2": 388, + "3/2": 10, + "3/4": 15, + "3/8": 12, + "4": 12, + "5/8": 9, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16265, + "clear": 16, + "copy": 8, + "scale": 1164 + }, + "scalar_units": 158120, + "warp_groups": 240 + } + }, + "method": "Literal JSON parsing only; no imports/evaluation of author RESULT, verifier or price engine. Coefficients evaluated as Fraction. Rank count from literal frame dimension and full controller occurrences.", + "not_established": [ + "all-column physical identities (role 01)", + "expanded precision, stock and tape closure (role 03)", + "complete numerical funding (role 04)", + "actual tape runtime or full compiler materialization" + ], + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992744, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158744, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "schema": "independent-literal-invoice/1", + "totals": { + "paid_jobs": 64148, + "paid_rank_mass": 237982, + "productive_fields": 10800, + "productive_rank_mass": 238734, + "rank_surplus": 752 + } +} diff --git a/research/price-plane-independent-validation/frozen/02-census/INVOICE-v2.json b/research/price-plane-independent-validation/frozen/02-census/INVOICE-v2.json new file mode 100644 index 0000000000..a1d2b9ddb4 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/INVOICE-v2.json @@ -0,0 +1,384 @@ +{ + "baseline_delta": { + "paid": { + "1": -128, + "8": -128 + }, + "productive": { + "9": -128 + } + }, + "candidate": { + "base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "module": "research/eight-owned-relations", + "pr": 5387 + }, + "capsule_manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "census_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "chronology_sha256": "4c6ae18d6f2642d63d83d42519b56ee56a7b923c2b1e946b9582682719569655", + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "controller": { + "boundaries": { + "left": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 90, + "explicit_scalar_units": 138432, + "opcodes": { + "ADD": 56, + "SCALE": 4, + "SWAP": 30 + } + }, + "right": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 55, + "explicit_scalar_units": 101696, + "opcodes": { + "ADD": 25, + "SCALE": 3, + "SWAP": 27 + } + } + }, + "counts": { + "ADD": 90, + "FULL_backward": 16, + "FULL_forward": 2, + "IDLE": 15, + "LOCAL": 18, + "QUERY_SHEAR": 15, + "SIGNED_SWAP": 16 + }, + "idle_paid": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "main_targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224 + } + }, + "credit": "Ali Romman construction; Cao Yifan #4610 word; Cinna Davis controller/helper lineage; zxv native/precision/compiler; Jacob Alan Sussman recursion; retained source notices. Independent census prepared with substantial OpenAI assistance.", + "histograms": { + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "productive": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "input_hashes": { + "research/eight-owned-relations/WORD.json.gz": { + "payload_sha256": "9aa0d7112b4e13f1aa13a93dab0af6f4435ffe99b842aad841685becdafee492", + "sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b" + }, + "research/joint-helper-lattice/CONTROLLER.json": { + "payload_sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": { + "payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + } + }, + "local_baseline_comparison": { + "backward": { + "scalar_opcode_deltas": { + "add": 56, + "clear": 40, + "copy": 16, + "scale": 0 + }, + "scalar_unit_delta": 608, + "source_event_count": 21449, + "source_scalar_units": 158168 + }, + "forward": { + "scalar_opcode_deltas": { + "add": 0, + "clear": 0, + "copy": 0, + "scale": 0 + }, + "scalar_unit_delta": 0, + "source_event_count": 21449, + "source_scalar_units": 158120 + } + }, + "locals": { + "backward": { + "event_count": 21553, + "event_kinds": { + "adapter": 448, + "climb": 3282, + "phase": 10, + "scalar": 17565, + "warp": 240, + "zero_retag": 8 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_persistent_roles": 624, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ], + [ + "C", + 1 + ], + [ + "C", + 2 + ], + [ + "C", + 3 + ], + [ + "C", + 4 + ], + [ + "C", + 5 + ], + [ + "C", + 6 + ], + [ + "C", + 7 + ], + [ + "C", + 8 + ], + [ + "L", + 225 + ], + [ + "L", + 227 + ], + [ + "L", + 229 + ], + [ + "L", + 230 + ], + [ + "L", + 241 + ], + [ + "L", + 245 + ], + [ + "L", + 257 + ], + [ + "L", + 261 + ] + ], + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "scalar_coefficients": { + "-1": 4476, + "-1/2": 2460, + "-1/4": 1613, + "-1/8": 37, + "-2": 489, + "-3/2": 10, + "-3/4": 15, + "-3/8": 12, + "-4": 14, + "-5/8": 9, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3637, + "1/2": 2625, + "1/4": 1569, + "1/8": 41, + "2": 440, + "3/2": 10, + "3/4": 5, + "3/8": 10, + "4": 12, + "5/8": 3, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16329, + "clear": 56, + "copy": 16, + "scale": 1164 + }, + "scalar_units": 158776, + "warp_groups": 240 + }, + "forward": { + "event_count": 21449, + "event_kinds": { + "adapter": 448, + "center": 8, + "climb": 3290, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_persistent_roles": 632, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "scalar_coefficients": { + "-1": 4213, + "-1/2": 2714, + "-1/4": 1483, + "-1/8": 41, + "-2": 541, + "-3/2": 10, + "-3/4": 5, + "-3/8": 10, + "-4": 14, + "-5/8": 3, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3860, + "1/2": 2347, + "1/4": 1699, + "1/8": 37, + "2": 388, + "3/2": 10, + "3/4": 15, + "3/8": 12, + "4": 12, + "5/8": 9, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16265, + "clear": 16, + "copy": 8, + "scale": 1164 + }, + "scalar_units": 158120, + "warp_groups": 240 + } + }, + "method": "Literal JSON parsing only; no imports/evaluation of author RESULT, verifier or price engine. Coefficients evaluated as Fraction. Rank count from literal frame dimension and full controller occurrences.", + "not_established": [ + "all-column physical identities (role 01)", + "expanded precision, stock and tape closure (role 03)", + "complete numerical funding (role 04)", + "actual tape runtime or full compiler materialization" + ], + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992776, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158776, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "schema": "independent-literal-invoice/1", + "totals": { + "paid_jobs": 64148, + "paid_rank_mass": 237982, + "productive_fields": 10800, + "productive_rank_mass": 238734, + "rank_surplus": 752 + } +} diff --git a/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v1.json b/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v1.json new file mode 100644 index 0000000000..da0cb02494 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v1.json @@ -0,0 +1,22 @@ +{ + "author_comparison_after_own_census": { + "paid_jobs": true, + "productive_fields": true, + "profile_delta": true, + "rank_masses": true, + "rank_surplus": true, + "raw_upper181098496": true, + "route_upper4834000": true, + "scalar158744": true + }, + "capsule_manifest_sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "census_script_sha256": "681c894f451c5237a7f8e150098a6a55e082a7919b2378641a15a0ba7519453d", + "chronology_sha256": "5fb7a2baa43e502b720638513e19f40649e454b0528f18e68e197ae15889cd22", + "command": "python3 -B outputs/price-plane-swarm-20261024/02-census/census.py outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1", + "contract_sha256": "713be46d29cd2d33bf4cf7b1512f06f014a7d70fdc47d15b89c72fbb6948cbb8", + "invoice_sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e", + "no_author_code_imported_or_run": true, + "result": "PASS_SCOPED_LITERAL_CENSUS_WITH_APPLICABILITY_PENDING", + "runtime_seconds_upper_observed": 3, + "schema": "independent-census-freeze/1" +} diff --git a/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v2.json b/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v2.json new file mode 100644 index 0000000000..94858362c9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/RECEIPT-v2.json @@ -0,0 +1,19 @@ +{ + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "candidate_pr": 5387, + "capsule_manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "census_script_sha256": "4741988803404c0be8efdc6aaaf150dffd0b1a56eeb0d55380b8e6fbebd15901", + "chronology_sha256": "4c6ae18d6f2642d63d83d42519b56ee56a7b923c2b1e946b9582682719569655", + "contract_sha256": "06c08bee274a19a83c19b8ea6be24bcee9a6eaab29ac794adf73bce25125873e", + "delta_sha256": "9ad4210af539f0886e4a56f57fc7bf32ec2af18eb07a902d0abb5e932e8710fc", + "invoice_sha256": "2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e", + "no_author_code_imported_or_run": true, + "observed_runtime_seconds_upper": 3, + "owned_role_count_same_but_role_inventory_changed": true, + "paid_target_histograms_identical_to_frozen5383": true, + "result": "PASS_SCOPED_LITERAL_CENSUS_WITH_NEW_PHYSICAL_APPLICABILITY_PENDING", + "route_and_raw_upper_bounds_unchanged": true, + "safe_reproduction": "python3 -B outputs/price-plane-swarm-20261024/02-census/reproduce.py --revision v2 --capsule outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1", + "scalar_increase32": true, + "schema": "independent-census-freeze/1" +} diff --git a/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json b/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json new file mode 100644 index 0000000000..de11d304df --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-INVOICE-v2.json @@ -0,0 +1,384 @@ +{ + "baseline_delta": { + "paid": { + "1": -128, + "8": -128 + }, + "productive": { + "9": -128 + } + }, + "candidate": { + "base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "module": "research/kappa-joint-relations-20261023", + "pr": 5387 + }, + "capsule_manifest_sha256": "78e10f93ce797cf165b828ca4e6df699083a3821c6b54d2e570a7f16ca183008", + "census_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "chronology_sha256": "5fb7a2baa43e502b720638513e19f40649e454b0528f18e68e197ae15889cd22", + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "controller": { + "boundaries": { + "left": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 90, + "explicit_scalar_units": 138432, + "opcodes": { + "ADD": 56, + "SCALE": 4, + "SWAP": 30 + } + }, + "right": { + "all_records_dominated_by_32_units_per_port": true, + "event_count": 55, + "explicit_scalar_units": 101696, + "opcodes": { + "ADD": 25, + "SCALE": 3, + "SWAP": 27 + } + } + }, + "counts": { + "ADD": 90, + "FULL_backward": 16, + "FULL_forward": 2, + "IDLE": 15, + "LOCAL": 18, + "QUERY_SHEAR": 15, + "SIGNED_SWAP": 16 + }, + "idle_paid": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "main_targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224 + } + }, + "credit": "Ali Romman construction; Cao Yifan #4610 word; Cinna Davis controller/helper lineage; zxv native/precision/compiler; Jacob Alan Sussman recursion; retained source notices. Independent census prepared with substantial OpenAI assistance.", + "histograms": { + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "productive": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "input_hashes": { + "research/joint-helper-lattice/CONTROLLER.json": { + "payload_sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + "research/kappa-joint-relations-20261023/WORD.json.gz": { + "payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d", + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a" + }, + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": { + "payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + } + }, + "local_baseline_comparison": { + "backward": { + "scalar_opcode_deltas": { + "add": 54, + "clear": 40, + "copy": 16, + "scale": 0 + }, + "scalar_unit_delta": 576, + "source_event_count": 21449, + "source_scalar_units": 158168 + }, + "forward": { + "scalar_opcode_deltas": { + "add": 0, + "clear": 0, + "copy": 0, + "scale": 0 + }, + "scalar_unit_delta": 0, + "source_event_count": 21449, + "source_scalar_units": 158120 + } + }, + "locals": { + "backward": { + "event_count": 21551, + "event_kinds": { + "adapter": 448, + "climb": 3282, + "phase": 10, + "scalar": 17563, + "warp": 240, + "zero_retag": 8 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_persistent_roles": 624, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ], + [ + "C", + 1 + ], + [ + "C", + 2 + ], + [ + "C", + 3 + ], + [ + "C", + 4 + ], + [ + "C", + 5 + ], + [ + "C", + 6 + ], + [ + "C", + 7 + ], + [ + "C", + 8 + ], + [ + "L", + 225 + ], + [ + "L", + 227 + ], + [ + "L", + 229 + ], + [ + "L", + 230 + ], + [ + "L", + 241 + ], + [ + "L", + 245 + ], + [ + "L", + 257 + ], + [ + "L", + 288 + ] + ], + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "scalar_coefficients": { + "-1": 4479, + "-1/2": 2456, + "-1/4": 1613, + "-1/8": 37, + "-2": 489, + "-3/2": 10, + "-3/4": 15, + "-3/8": 12, + "-4": 14, + "-5/8": 9, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3640, + "1/2": 2621, + "1/4": 1569, + "1/8": 41, + "2": 440, + "3/2": 10, + "3/4": 5, + "3/8": 10, + "4": 12, + "5/8": 3, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16327, + "clear": 56, + "copy": 16, + "scale": 1164 + }, + "scalar_units": 158744, + "warp_groups": 240 + }, + "forward": { + "event_count": 21449, + "event_kinds": { + "adapter": 448, + "center": 8, + "climb": 3290, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_persistent_roles": 632, + "main_chart_groups": 448, + "owned_roles": [ + [ + "C", + 0 + ] + ], + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "scalar_coefficients": { + "-1": 4213, + "-1/2": 2714, + "-1/4": 1483, + "-1/8": 41, + "-2": 541, + "-3/2": 10, + "-3/4": 5, + "-3/8": 10, + "-4": 14, + "-5/8": 3, + "-7/4": 1, + "-7/8": 1, + "-8": 1, + "1": 3860, + "1/2": 2347, + "1/4": 1699, + "1/8": 37, + "2": 388, + "3/2": 10, + "3/4": 15, + "3/8": 12, + "4": 12, + "5/8": 9, + "7/4": 1, + "7/8": 1, + "8": 1 + }, + "scalar_opcodes": { + "add": 16265, + "clear": 16, + "copy": 8, + "scale": 1164 + }, + "scalar_units": 158120, + "warp_groups": 240 + } + }, + "method": "Literal JSON parsing only; no imports/evaluation of author RESULT, verifier or price engine. Coefficients evaluated as Fraction. Rank count from literal frame dimension and full controller occurrences.", + "not_established": [ + "all-column physical identities (role 01)", + "expanded precision, stock and tape closure (role 03)", + "complete numerical funding (role 04)", + "actual tape runtime or full compiler materialization" + ], + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992744, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158744, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "schema": "independent-literal-invoice/1", + "totals": { + "paid_jobs": 64148, + "paid_rank_mass": 237982, + "productive_fields": 10800, + "productive_rank_mass": 238734, + "rank_surplus": 752 + } +} diff --git a/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json b/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json new file mode 100644 index 0000000000..b8d1560901 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/REJECTED-WRONG-CAPSULE-v2-attempt.json @@ -0,0 +1,6 @@ +{ + "status": "REJECTED_BEFORE_FREEZE", + "expected_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "actual_capsule_manifest_head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "reason": "capsule-v2 is an expanded #5383 capsule; #5387 capsule has not yet been announced ready. No #5387 census claim established by this attempt." +} diff --git a/research/price-plane-independent-validation/frozen/02-census/REPORT.md b/research/price-plane-independent-validation/frozen/02-census/REPORT.md new file mode 100644 index 0000000000..698721a8e4 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/REPORT.md @@ -0,0 +1,41 @@ +# Independent invoice census: frozen #5383 + +Research discussion / PR / artifact: Ali Romman's [#5383](https://github.com/CrocSwap/integer-mult-bounds/pull/5383); local `INVOICE-v1.json`, `CHRONOLOGY-v1.json`, `CANDIDATE-CONTRACT-v1.json`, `RECEIPT-v1.json`. No external write was made. + +Exact commit: `4bd6efa51a495a7c7b7754915cf0244e7e60969e`, canonical base `1ec1119972c9aefe42525172d07b332fcff81cb4`. Capsule manifest `ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8`; word compressed `7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a`, decompressed `2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d`. + +What is established: An independent standard-library JSON interpreter, importing no candidate modules or author price/check engine, counts every literal scalar/paid event, every helper endpoint, all controller full/query/idle occurrences, main targets and both boundary programs. The complete bill has 64,148 paid jobs and 10,800 productive fields, paid rank mass 237,982, productive rank mass 238,734, surplus 752. The literal comparison with frozen #4610 gives exactly `-128 H1 -128 H8` paid and `-128 H9` productive. The controller has sixteen backward full calls, two forward full calls, fifteen queries and fifteen whole-idle jobs. Main targets total 3,584 fields; helpers total 7,216. Snapshot streams and surrendered pivots receive zero productive credit. + +The backward word has 21,551 events: 17,563 scalar records, 3,282 paid climbs, eight zero retags, 240 warps, 448 adapters and ten phase markers. It has no remaining center call. Scalar records comprise 16,327 ADD, 1,164 SCALE, 56 CLEAR and sixteen COPY. Exact dyadic elementary scalar allowance is 158,744 versus the source backward allowance 158,168, an increase of 576; forward remains 158,120. The charge uses two units for COPY/CLEAR, `2*(abs(log2(abs(q)))+1[q<0])` for power-of-two SCALE, and `2*(3+floor(log2(abs(n)))+popcount(abs(n))+log2(d))` for ADD coefficient `n/d` in lowest terms. + +A conservative common route reservation is `(3298 + 2*408 + 240 + 448 + 2*16)*1000 = 4,834,000` retained elementary movement/phase units. It keeps the larger forward paid/helper budget and charges both routes for all sixteen added owned lifetimes: eight additional physical snapshot slots and eight reclassified existing helper slots. The resulting local upper bill is 4,992,744 < 10^7. This is a constructive reservation, not an actual physical instruction count. The raw complete upper bound is `18*10^7 + 15*112*16 + 32*112*(154+90+55) = 181,098,496 < 10^9`. + +All 57 ordinary boundary SWAPs are conservatively lowered as three signed ADDs plus one negation (26 units per port); the seven separate boundary negations are charged as SCALE. Ninety controller ADDs and sixteen signed swaps are included in the full event allowance. Each boundary record is independently dominated by the retained 32 units per port. No raw scalar cost is inserted into a rank moment. Fixed template/physical implementation applicability is a separate proof obligation, and unknown charges are never set to zero. + +The independently derived invoice was then compared with the author's README claims: paid/target counts and rank masses, profile delta, scalar allowance, route reservation and raw bound all agree. No discrepancy or candidate repair was found. `INVOICE-v1.json` SHA256 is `7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e`; contract SHA256 is `713be46d29cd2d33bf4cf7b1512f06f014a7d70fdc47d15b89c72fbb6948cbb8`. + +What remains uncertain: The v1 record intentionally has pending whole-bill status. Physical identities and owned return belong to role 01; expanded precision, stocks and common primitive tariff applicability belong to role 03; exact funding/compiler/outer admission belongs to role 04. A source-bound literal census cannot alone establish those. No full cold run, Lean, mathematical novelty claim, selected-record change or tape runtime claim was made. Subsequent receipts join by hashes without mutating v1. + +Smallest useful next task: Consume roles 01/03/04 receipts against these hashes; separately audit the newly surfaced #5387 literal word and scalar delta, preserving this frozen #5383 record. + +Reproduction command and expected runtime: `python3 -B outputs/price-plane-swarm-20261024/02-census/reproduce.py --revision v1 --capsule outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1` (under three seconds observed). This copies the original census into an isolated temporary directory and compares both generated invoice and chronology hashes with the immutable records. The older receipt's direct authoring command identifies the original producer invocation; the wrapper is the safe repeat command. + +Predecessor credit: Ali Romman owns the eight-relation construction. Cao Yifan supplied the frozen #4610 native word; Cinna Davis supplied the controller/helper lineage; zxv supplied native, cache, compiler and precision work; Jacob Alan Sussman supplied mixed recursion; Chris R/Clear1nsight supplied #5241/#5384 independent admission. All source notices remain. This scoped independent census uses substantial OpenAI assistance. + +# Incremental successor census: frozen #5387 + +Research discussion / PR / artifact: Dugongue's [#5387](https://github.com/CrocSwap/integer-mult-bounds/pull/5387), `INVOICE-v2.json`, `CHRONOLOGY-v2.json`, `DELTA-5387-v2.json`, `CANDIDATE-CONTRACT-v2.json`, `RECEIPT-v2.json`. + +Exact commit: `b1ab650d36f59e5be682a813145b7c67e219e341`, package `research/eight-owned-relations`. Exact capsule manifest `b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594`. Invoice SHA256 `2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e`; contract SHA256 `06c08bee274a19a83c19b8ea6be24bcee9a6eaab29ac794adf73bce25125873e`. + +What is established: A separate literal census independently reproduces exactly the v1 paid/target histograms and masses, with backward scalar allowance 158,776, an increase of 32. Backward event count becomes 21,553, including 17,565 scalar records and 16,329 ADDs. The route reservation stays 4,834,000, local scalar-plus-route upper bill becomes 4,992,776 < 10^7, and complete raw bound stays 181,098,496 < 10^9. Forward program and canonical native payload are identical. The v1 files remain unchanged. + +The literal physical interface changes materially despite its identical rank profile. Owned pivot L288 is replaced by L261; L288 becomes an arbitrary retained input/output. The eighth snapshot copies earlier L256 instead of L288, still in frame 281. The associated zero retag moves from L288 to L256; the L288 rank-one paid climb is restored while L256's rank-one paid climb is removed. Preparation expands from 62 to 64 scalar events (eight clears and 56 ADDs), and the final owned clear changes L288 to L261. The delta artifact partitions these changes explicitly. Fresh physical role 01 checks the new retained L288 column, arbitrary owned L261, snapshot identity and zero identity; identical histograms alone were not used to inherit physical admission. + +What remains uncertain: The invoice remains a scoped census until roles 03 and 04 bind the new expanded template and numerical compiler point. The claimed saving 0.003026674765 and tested 0.003026674766 with reserve 10^-12 are typed source inputs, not census conclusions. The initial attempt against a differently named capsule was rejected for its old #5383 manifest before freeze; that attempted output is retained under explicit REJECTED-WRONG-CAPSULE filenames and is not an admitted invoice. The v2 reader now enforces the exact manifest head before parsing. + +Smallest useful next task: Join the fresh physical receipt and new precision/stock and exact funding receipts by source and invoice hashes. Preserve the distinction between same rank profile, changed actual owners and the new compiler parameters. + +Reproduction command and expected runtime: `python3 -B outputs/price-plane-swarm-20261024/02-census/reproduce.py --revision v2 --capsule outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1` (under three seconds observed; isolated exact invoice and chronology hash comparison passed). + +Predecessor credit: Ali Romman owns the eight-relation mechanism; Dugongue owns this published alternative physical supplier and compiler-margin refinement, with retained transported-frame lineage. The #4610/controller/native/compiler/precision/recursion and independent-admission credits above remain. This independent census and incremental delta use substantial OpenAI assistance. diff --git a/research/price-plane-independent-validation/frozen/02-census/census-v2.py b/research/price-plane-independent-validation/frozen/02-census/census-v2.py new file mode 100644 index 0000000000..888c627593 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/census-v2.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Read literal JSON only; no candidate checker, price engine or RESULT import.""" +from collections import Counter +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse,gzip,json + +HERE=Path(__file__).resolve().parent + +def digest(p): return sha256(p.read_bytes()).hexdigest() +def read(p): + b=p.read_bytes();return json.loads(gzip.decompress(b) if p.suffix=='.gz' else b) +def hist(c):return {str(k):v for k,v in sorted(c.items()) if v} +def emit(name,x): + p=HERE/name;p.write_text(json.dumps(x,indent=2,sort_keys=True)+'\n');return digest(p) +def req(p,s): + a=list(p.rglob(s));assert len(a)==1,(s,a);return a[0] +def scalar(g): + if g[0] in ('copy','clear'):return 2 + q=Fraction(*(g[3:] if g[0]=='add' else g[2:])) + n,d=abs(q.numerator),q.denominator + assert n and d&(d-1)==0 + if g[0]=='scale': + assert n&(n-1)==0 + return 2*(abs(n.bit_length()-d.bit_length())+int(q<0)) + assert g[0]=='add' + return 2*(3+n.bit_length()-1+n.bit_count()+d.bit_length()-1) +def local(x,orientation): + c=x['canonical'];prog=x['programs'][orientation] + owned={tuple(r) for r in x.get('owned',{}).get(orientation,[['C',0]])} + paid=Counter();kinds=Counter();ops=Counter();coef=Counter();allowance=0;rows=[] + for i,e in enumerate(prog): + k=e[0];kinds[k]+=1;charge=0 + if k in ('climb','center'): + rank=e[-1];assert rank>0;paid[rank]+=1 + a,b=e[-3:-1];assert abs(len(c['frames'][a])-len(c['frames'][b]))==rank + elif k=='scalar': + g=e[1];charge=scalar(g);ops[g[0]]+=1;allowance+=charge + if g[0] in ('add','scale'):coef[str(Fraction(*(g[3:] if g[0]=='add' else g[2:])))]+=1 + rows.append({'index':i,'event':e,'ordinary_scalar_units':charge}) + helpers=Counter() + for i in range(2*c['v'],len(c['start'])): + if ('L',i) not in owned: + rank=len(c['frames'][c['final'][i]])-len(c['frames'][c['start'][i]]) + assert rank>0;helpers[rank]+=1 + return {'event_count':len(prog),'event_kinds':dict(kinds),'paid':hist(paid),'helpers':hist(helpers),'scalar_opcodes':dict(ops),'scalar_coefficients':dict(coef),'scalar_units':allowance,'owned_roles':[list(r) for r in sorted(owned)],'independent_persistent_roles':len(c['start'])-sum(r[0]=='L' for r in owned),'main_chart_groups':4*c['v'],'warp_groups':kinds['warp'],'chronology':rows} +def main(): + a=argparse.ArgumentParser();a.add_argument('capsule',type=Path);opt=a.parse_args();cap=opt.capsule + manifest=read(cap/'IMMUTABLE-MANIFEST.json') + assert manifest['candidate_head']=='b1ab650d36f59e5be682a813145b7c67e219e341','Exact candidate manifest head mismatch' + if (cap/'snapshot').is_dir():cap=cap/'snapshot' + hits=list(cap.rglob('WORD.json.gz'));wordp=next(p for p in hits if p.parent.name=='eight-owned-relations') + hits=list(cap.rglob('ACTUAL-WORD.json.gz'));basep=next(p for p in hits if p.parent.name=='kappa-round3-warp-20261022') + hits=list(cap.rglob('CONTROLLER.json'));controllerp=next(p for p in hits if p.parent.name=='joint-helper-lattice') + x,base,controller=map(read,(wordp,basep,controllerp)) + locals_={o:local(x,o) for o in ('forward','backward')};bl={o:local(base,o) for o in ('forward','backward')} + paid=Counter();target=Counter();basepaid=Counter();basetarget=Counter();events=[];counts=Counter();idle=Counter();main=Counter() + ports=x['canonical']['v'];assert ports==112 + fullstages={e[1] for e in controller['physical_events'] if e[0]=='LOCAL'} + for i,e in enumerate(controller['physical_events']): + kind=e[0];counts[kind]+=1;ep=Counter();et=Counter();ebp=Counter();ebt=Counter() + if kind=='LOCAL': + o='backward' if e[3] else 'forward';counts['FULL_'+o]+=1 + ep.update({int(k):v for k,v in locals_[o]['paid'].items()});et.update({int(k):v for k,v in locals_[o]['helpers'].items()}) + ebp.update({int(k):v for k,v in bl[o]['paid'].items()});ebt.update({int(k):v for k,v in bl[o]['helpers'].items()}) + elif kind=='QUERY_SHEAR':ep[1]+=ports;ebp[1]+=ports + elif kind=='IDLE': + active=[j for j in e[2] if j in fullstages];assert len(active)==len(e[2]) + r=8*len(active);assert r>0 + ep[r]+=2*ports;ebp[r]+=2*ports;idle[r]+=2*ports + else:assert kind in ('ADD','SIGNED_SWAP') + paid.update(ep);target.update(et);basepaid.update(ebp);basetarget.update(ebt) + events.append({'index':i,'event':e,'paid':hist(ep),'productive_helpers':hist(et)}) + for row in controller['diagonal']: + assert len(row)==34 and abs(row[0])==1 and all(q in (0,1) for q in row[1:]) + assert all(not q or j in fullstages for j,q in enumerate(row[1:])) + main[1+8*sum(row[1:])]+=ports + target.update(main);basetarget.update(main) + def boundaryunit(e): + if e[0]=='SWAP':return 26 + if e[0]=='SCALE': + q=Fraction(e[2]);return scalar(['scale',['L',0],q.numerator,q.denominator]) + assert e[0]=='ADD';q=Fraction(e[3]);return scalar(['add',['L',0],['L',1],q.numerator,q.denominator]) + boundary={} + for side in ('left','right'): + program=controller['boundaries'][side+'_program'] + boundary[side]={'event_count':len(program),'opcodes':dict(Counter(e[0] for e in program)),'explicit_scalar_units':ports*sum(map(boundaryunit,program)),'all_records_dominated_by_32_units_per_port':all(boundaryunit(e)<=32 for e in program)} + maxpaid=max(sum(v['paid'].values()) for v in locals_.values());maxhelpers=max(sum(v['helpers'].values()) for v in locals_.values()) + extraowned=max(len(v['owned_roles']) for v in locals_.values())-1 + routes=maxpaid+2*maxhelpers+max(v['warp_groups'] for v in locals_.values())+max(v['main_chart_groups'] for v in locals_.values())+2*extraowned + scal=max(v['scalar_units'] for v in locals_.values());raw=counts['LOCAL']*10**7+counts['QUERY_SHEAR']*ports*16+32*ports*(len(events)+sum(v['event_count'] for v in boundary.values())) + assert scal+routes*1000<10**7 + chronology_hash=emit('CHRONOLOGY-v2.json',{'local':{k:v.pop('chronology') for k,v in locals_.items()},'controller':events,'boundaries':controller['boundaries']}) + inputs={str(p.relative_to(cap)):{'sha256':digest(p),'payload_sha256':sha256(gzip.decompress(p.read_bytes())).hexdigest() if p.suffix=='.gz' else digest(p)} for p in (wordp,basep,controllerp)} + result={'schema':'independent-literal-invoice/1','candidate':{'pr':5387,'head':'b1ab650d36f59e5be682a813145b7c67e219e341','base':'1ec1119972c9aefe42525172d07b332fcff81cb4','module':'research/eight-owned-relations'},'method':'Literal JSON parsing only; no imports/evaluation of author RESULT, verifier or price engine. Coefficients evaluated as Fraction. Rank count from literal frame dimension and full controller occurrences.','capsule_manifest_sha256':digest(opt.capsule/'IMMUTABLE-MANIFEST.json'),'input_hashes':inputs,'chronology_sha256':chronology_hash,'locals':locals_,'local_baseline_comparison':{o:{'source_event_count':bl[o]['event_count'],'source_scalar_units':bl[o]['scalar_units'],'scalar_unit_delta':locals_[o]['scalar_units']-bl[o]['scalar_units'],'scalar_opcode_deltas':{k:locals_[o]['scalar_opcodes'].get(k,0)-bl[o]['scalar_opcodes'].get(k,0) for k in set(locals_[o]['scalar_opcodes'])|set(bl[o]['scalar_opcodes'])}} for o in locals_},'controller':{'counts':dict(counts),'boundaries':boundary,'main_targets':hist(main),'idle_paid':hist(idle)},'histograms':{'paid':hist(paid),'productive':hist(target)},'totals':{'paid_jobs':sum(paid.values()),'productive_fields':sum(target.values()),'paid_rank_mass':sum(k*v for k,v in paid.items()),'productive_rank_mass':sum(k*v for k,v in target.items()),'rank_surplus':sum(k*v for k,v in target.items())-sum(k*v for k,v in paid.items())},'baseline_delta':{'paid':hist(Counter({k:paid[k]-basepaid[k] for k in paid.keys()|basepaid.keys()})),'productive':hist(Counter({k:target[k]-basetarget[k] for k in target.keys()|basetarget.keys()}))},'ordinary':{'scalar_units_local_max':scal,'route_group_reservation':routes,'route_unit_multiplier':1000,'route_units_upper':routes*1000,'local_units_upper':scal+routes*1000,'raw_nonrecursive_units_upper':raw,'raw_global_budget':10**9,'route_formula':{'max_paid':maxpaid,'two_times_max_helpers':2*maxhelpers,'warp_groups':max(v['warp_groups'] for v in locals_.values()),'main_chart_groups':max(v['main_chart_groups'] for v in locals_.values()),'two_times_additional_owned_lifetimes':2*extraowned},'classification':'constructively_upper_bounded','unit':'retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional','unknown_charges_are_zero':False},'census_status':'LITERAL_RANK_AND_SCALAR_CENSUS_READY','complete_bill_status':'PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY','not_established':['all-column physical identities (role 01)','expanded precision, stock and tape closure (role 03)','complete numerical funding (role 04)','actual tape runtime or full compiler materialization'],'credit':'Ali Romman construction; Cao Yifan #4610 word; Cinna Davis controller/helper lineage; zxv native/precision/compiler; Jacob Alan Sussman recursion; retained source notices. Independent census prepared with substantial OpenAI assistance.'} + print(json.dumps({'invoice_sha256':emit('INVOICE-v2.json',result),'totals':result['totals'],'ordinary':result['ordinary'],'delta':result['baseline_delta']},indent=2)) +if __name__=='__main__':main() diff --git a/research/price-plane-independent-validation/frozen/02-census/census.py b/research/price-plane-independent-validation/frozen/02-census/census.py new file mode 100644 index 0000000000..be76fc618a --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/census.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Read literal JSON only; no candidate checker, price engine or RESULT import.""" +from collections import Counter +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse,gzip,json + +HERE=Path(__file__).resolve().parent + +def digest(p): return sha256(p.read_bytes()).hexdigest() +def read(p): + b=p.read_bytes();return json.loads(gzip.decompress(b) if p.suffix=='.gz' else b) +def hist(c):return {str(k):v for k,v in sorted(c.items()) if v} +def emit(name,x): + p=HERE/name;p.write_text(json.dumps(x,indent=2,sort_keys=True)+'\n');return digest(p) +def req(p,s): + a=list(p.rglob(s));assert len(a)==1,(s,a);return a[0] +def scalar(g): + if g[0] in ('copy','clear'):return 2 + q=Fraction(*(g[3:] if g[0]=='add' else g[2:])) + n,d=abs(q.numerator),q.denominator + assert n and d&(d-1)==0 + if g[0]=='scale': + assert n&(n-1)==0 + return 2*(abs(n.bit_length()-d.bit_length())+int(q<0)) + assert g[0]=='add' + return 2*(3+n.bit_length()-1+n.bit_count()+d.bit_length()-1) +def local(x,orientation): + c=x['canonical'];prog=x['programs'][orientation] + owned={tuple(r) for r in x.get('owned',{}).get(orientation,[['C',0]])} + paid=Counter();kinds=Counter();ops=Counter();coef=Counter();allowance=0;rows=[] + for i,e in enumerate(prog): + k=e[0];kinds[k]+=1;charge=0 + if k in ('climb','center'): + rank=e[-1];assert rank>0;paid[rank]+=1 + a,b=e[-3:-1];assert abs(len(c['frames'][a])-len(c['frames'][b]))==rank + elif k=='scalar': + g=e[1];charge=scalar(g);ops[g[0]]+=1;allowance+=charge + if g[0] in ('add','scale'):coef[str(Fraction(*(g[3:] if g[0]=='add' else g[2:])))]+=1 + rows.append({'index':i,'event':e,'ordinary_scalar_units':charge}) + helpers=Counter() + for i in range(2*c['v'],len(c['start'])): + if ('L',i) not in owned: + rank=len(c['frames'][c['final'][i]])-len(c['frames'][c['start'][i]]) + assert rank>0;helpers[rank]+=1 + return {'event_count':len(prog),'event_kinds':dict(kinds),'paid':hist(paid),'helpers':hist(helpers),'scalar_opcodes':dict(ops),'scalar_coefficients':dict(coef),'scalar_units':allowance,'owned_roles':[list(r) for r in sorted(owned)],'independent_persistent_roles':len(c['start'])-sum(r[0]=='L' for r in owned),'main_chart_groups':4*c['v'],'warp_groups':kinds['warp'],'chronology':rows} +def main(): + a=argparse.ArgumentParser();a.add_argument('capsule',type=Path);opt=a.parse_args();cap=opt.capsule + if (cap/'snapshot').is_dir():cap=cap/'snapshot' + hits=list(cap.rglob('WORD.json.gz'));wordp=next(p for p in hits if p.parent.name=='kappa-joint-relations-20261023') + hits=list(cap.rglob('ACTUAL-WORD.json.gz'));basep=next(p for p in hits if p.parent.name=='kappa-round3-warp-20261022') + hits=list(cap.rglob('CONTROLLER.json'));controllerp=next(p for p in hits if p.parent.name=='joint-helper-lattice') + x,base,controller=map(read,(wordp,basep,controllerp)) + locals_={o:local(x,o) for o in ('forward','backward')};bl={o:local(base,o) for o in ('forward','backward')} + paid=Counter();target=Counter();basepaid=Counter();basetarget=Counter();events=[];counts=Counter();idle=Counter();main=Counter() + ports=x['canonical']['v'];assert ports==112 + fullstages={e[1] for e in controller['physical_events'] if e[0]=='LOCAL'} + for i,e in enumerate(controller['physical_events']): + kind=e[0];counts[kind]+=1;ep=Counter();et=Counter();ebp=Counter();ebt=Counter() + if kind=='LOCAL': + o='backward' if e[3] else 'forward';counts['FULL_'+o]+=1 + ep.update({int(k):v for k,v in locals_[o]['paid'].items()});et.update({int(k):v for k,v in locals_[o]['helpers'].items()}) + ebp.update({int(k):v for k,v in bl[o]['paid'].items()});ebt.update({int(k):v for k,v in bl[o]['helpers'].items()}) + elif kind=='QUERY_SHEAR':ep[1]+=ports;ebp[1]+=ports + elif kind=='IDLE': + active=[j for j in e[2] if j in fullstages];assert len(active)==len(e[2]) + r=8*len(active);assert r>0 + ep[r]+=2*ports;ebp[r]+=2*ports;idle[r]+=2*ports + else:assert kind in ('ADD','SIGNED_SWAP') + paid.update(ep);target.update(et);basepaid.update(ebp);basetarget.update(ebt) + events.append({'index':i,'event':e,'paid':hist(ep),'productive_helpers':hist(et)}) + for row in controller['diagonal']: + assert len(row)==34 and abs(row[0])==1 and all(q in (0,1) for q in row[1:]) + assert all(not q or j in fullstages for j,q in enumerate(row[1:])) + main[1+8*sum(row[1:])]+=ports + target.update(main);basetarget.update(main) + def boundaryunit(e): + if e[0]=='SWAP':return 26 + if e[0]=='SCALE': + q=Fraction(e[2]);return scalar(['scale',['L',0],q.numerator,q.denominator]) + assert e[0]=='ADD';q=Fraction(e[3]);return scalar(['add',['L',0],['L',1],q.numerator,q.denominator]) + boundary={} + for side in ('left','right'): + program=controller['boundaries'][side+'_program'] + boundary[side]={'event_count':len(program),'opcodes':dict(Counter(e[0] for e in program)),'explicit_scalar_units':ports*sum(map(boundaryunit,program)),'all_records_dominated_by_32_units_per_port':all(boundaryunit(e)<=32 for e in program)} + maxpaid=max(sum(v['paid'].values()) for v in locals_.values());maxhelpers=max(sum(v['helpers'].values()) for v in locals_.values()) + extraowned=max(len(v['owned_roles']) for v in locals_.values())-1 + routes=maxpaid+2*maxhelpers+max(v['warp_groups'] for v in locals_.values())+max(v['main_chart_groups'] for v in locals_.values())+2*extraowned + scal=max(v['scalar_units'] for v in locals_.values());raw=counts['LOCAL']*10**7+counts['QUERY_SHEAR']*ports*16+32*ports*(len(events)+sum(v['event_count'] for v in boundary.values())) + assert scal+routes*1000<10**7 + chronology_hash=emit('CHRONOLOGY-v1.json',{'local':{k:v.pop('chronology') for k,v in locals_.items()},'controller':events,'boundaries':controller['boundaries']}) + inputs={str(p.relative_to(cap)):{'sha256':digest(p),'payload_sha256':sha256(gzip.decompress(p.read_bytes())).hexdigest() if p.suffix=='.gz' else digest(p)} for p in (wordp,basep,controllerp)} + result={'schema':'independent-literal-invoice/1','candidate':{'pr':5383,'head':'4bd6efa51a495a7c7b7754915cf0244e7e60969e','base':'1ec1119972c9aefe42525172d07b332fcff81cb4','module':'research/kappa-joint-relations-20261023'},'method':'Literal JSON parsing only; no imports/evaluation of author RESULT, verifier or price engine. Coefficients evaluated as Fraction. Rank count from literal frame dimension and full controller occurrences.','capsule_manifest_sha256':digest(opt.capsule/'IMMUTABLE-MANIFEST.json'),'input_hashes':inputs,'chronology_sha256':chronology_hash,'locals':locals_,'local_baseline_comparison':{o:{'source_event_count':bl[o]['event_count'],'source_scalar_units':bl[o]['scalar_units'],'scalar_unit_delta':locals_[o]['scalar_units']-bl[o]['scalar_units'],'scalar_opcode_deltas':{k:locals_[o]['scalar_opcodes'].get(k,0)-bl[o]['scalar_opcodes'].get(k,0) for k in set(locals_[o]['scalar_opcodes'])|set(bl[o]['scalar_opcodes'])}} for o in locals_},'controller':{'counts':dict(counts),'boundaries':boundary,'main_targets':hist(main),'idle_paid':hist(idle)},'histograms':{'paid':hist(paid),'productive':hist(target)},'totals':{'paid_jobs':sum(paid.values()),'productive_fields':sum(target.values()),'paid_rank_mass':sum(k*v for k,v in paid.items()),'productive_rank_mass':sum(k*v for k,v in target.items()),'rank_surplus':sum(k*v for k,v in target.items())-sum(k*v for k,v in paid.items())},'baseline_delta':{'paid':hist(Counter({k:paid[k]-basepaid[k] for k in paid.keys()|basepaid.keys()})),'productive':hist(Counter({k:target[k]-basetarget[k] for k in target.keys()|basetarget.keys()}))},'ordinary':{'scalar_units_local_max':scal,'route_group_reservation':routes,'route_unit_multiplier':1000,'route_units_upper':routes*1000,'local_units_upper':scal+routes*1000,'raw_nonrecursive_units_upper':raw,'raw_global_budget':10**9,'route_formula':{'max_paid':maxpaid,'two_times_max_helpers':2*maxhelpers,'warp_groups':max(v['warp_groups'] for v in locals_.values()),'main_chart_groups':max(v['main_chart_groups'] for v in locals_.values()),'two_times_additional_owned_lifetimes':2*extraowned},'classification':'constructively_upper_bounded','unit':'retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional','unknown_charges_are_zero':False},'census_status':'LITERAL_RANK_AND_SCALAR_CENSUS_READY','complete_bill_status':'PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY','not_established':['all-column physical identities (role 01)','expanded precision, stock and tape closure (role 03)','complete numerical funding (role 04)','actual tape runtime or full compiler materialization'],'credit':'Ali Romman construction; Cao Yifan #4610 word; Cinna Davis controller/helper lineage; zxv native/precision/compiler; Jacob Alan Sussman recursion; retained source notices. Independent census prepared with substantial OpenAI assistance.'} + print(json.dumps({'invoice_sha256':emit('INVOICE-v1.json',result),'totals':result['totals'],'ordinary':result['ordinary'],'delta':result['baseline_delta']},indent=2)) +if __name__=='__main__':main() diff --git a/research/price-plane-independent-validation/frozen/02-census/reproduce.py b/research/price-plane-independent-validation/frozen/02-census/reproduce.py new file mode 100644 index 0000000000..933031e75f --- /dev/null +++ b/research/price-plane-independent-validation/frozen/02-census/reproduce.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +"""Reproduce frozen census into an isolated temp directory and compare hashes.""" +from pathlib import Path +from hashlib import sha256 +import argparse,json,shutil,subprocess,sys,tempfile +p=Path(__file__).resolve().parent +ap=argparse.ArgumentParser();ap.add_argument('--revision',choices=('v1','v2'),default='v1');ap.add_argument('--capsule',type=Path,required=True);a=ap.parse_args() +script=p/('census.py' if a.revision=='v1' else 'census-v2.py') +with tempfile.TemporaryDirectory(prefix='independent-census-') as td: + t=Path(td);shutil.copyfile(script,t/script.name) + r=subprocess.run([sys.executable,'-B',str(t/script.name),str(a.capsule.resolve())],capture_output=True,text=True) + if r.returncode:print(r.stderr);raise SystemExit(r.returncode) + for name in ('INVOICE-'+a.revision+'.json','CHRONOLOGY-'+a.revision+'.json'): + expected=sha256((p/name).read_bytes()).hexdigest();actual=sha256((t/name).read_bytes()).hexdigest() + if actual!=expected:raise RuntimeError((name,expected,actual)) + print('PASS_ISOLATED_INDEPENDENT_CENSUS_'+a.revision.upper()) diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-5387-v1.json b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-5387-v1.json new file mode 100644 index 0000000000..0830f6d496 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-5387-v1.json @@ -0,0 +1,166 @@ +{ + "schema": "precision-stock-applicability-5387/1", + "candidate": { + "pr": 5387, + "head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "module": "research/eight-owned-relations", + "word_sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b", + "word_payload_sha256": "9aa0d7112b4e13f1aa13a93dab0af6f4435ffe99b842aad841685becdafee492", + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION", + "evidence_class": "constructively_upper_bounded", + "complete_bill_plane_coverage": [ + "ordinary_grammar", + "preparation_range_and_dyadic_height", + "expanded_owner_and_record_prescription", + "semantic_precision_and_actual_changed_word_error_propagation", + "complex_and_stronger_BIT_stock_product", + "fixed_tape_setup_new_eventual_threshold" + ], + "retained_assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "new_candidate_specific_assumptions": [], + "raw_owned_full_local_banks": 274, + "preparation": { + "max_l1": 9, + "max_denominator": 2, + "input_magnitude_extra_bits": 4, + "adds": 56, + "new_input_unit_bound_assumed": false, + "events": 64, + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "changed_last_snapshot": { + "source_role": [ + "L", + 256 + ], + "source_event": 11296, + "source_zero_event": 17233, + "frame": 281 + }, + "full_backward_scalar_height": 29193 + }, + "expanded_constants": { + "N": "2^409549000000000000", + "W": "productive full rank-N returns of structural fold F", + "P": "all paid rank-one calls of structural fold F", + "O": "274*U-prime+all query/completion/split/compiler/internal-scratch banks, each full-path indexed, pivots261 not288", + "R": "all expanded physical native/movement/normalizer/route records", + "G": "fresh F-prime fold scalar allowances+8*all physical non-scalar/normalizer records; raw per-backward allowance158776, never reused5383G", + "Z": "W+O", + "E": "64*(Z+N+P+G+1)^3", + "B": "P+E", + "C0": "32*N*B^2", + "C1": 1, + "classification": "new F-prime structural count prescription at new N with all new batches and matchers; no astronomical emission", + "old_raw_cap_used_as_expanded_cap": false + }, + "approximation": { + "runtime_zero_test": false, + "residuals_assumed_zero": false, + "actual_changed_word_prefix_suffix_bound": "2^((4*B+36)*d)", + "error_site_log_bound": "(G+N+2*P+4)*d", + "error_margin": "C0>4*B+36+G+N+2*P+4", + "exact_fine_grid_alone_implies_residual_zero": false, + "error_site_count_bound": "(G+N+1)*e*(P+1)^(D+1)" + }, + "stock": { + "ordinary_BIT_atom": "1/250", + "ordinary_BIT_admitted": "17/5000", + "ordinary_BIT_actual": "8590884599/2500000000000", + "simultaneous_rule": "product", + "external_chunk_upper": "C_new*(log2(h)+h^(1/250)*(log2(p))^3+1)", + "new_threshold_required": true + }, + "predicate_domain": "Same source-certified fixed scalar/owned program; whole completed calls, restored adapters, source movement/record/f,p domain, source compiler parameters; no arbitrary gather or changed child ABI. Numerical funding separate role04.", + "source_proof_sha256": { + "research/query-thinned-controllers/PROOF.md": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148" + }, + "dependencies_sha256": { + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT.md": "967bed225bcd30ff14597a56919f8d370a905f2c1391e8355f186dd81c58a542", + "outputs/price-plane-swarm-20261024/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md": "eb92a064ef7c44435620e2151ab8fa1d7471518f5fd315725d84f726314f9aba", + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT-5387-v1.md": "8e3cbbe31d549dff0c5c1c0acd31159e47bdbddc09279ded89d342562979789d", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision.py": "2b2691ff1978fbb2a11fd9c355fd423a32b4e85cfc907d79fa77bd24b65c7043", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision_5387.py": "ab1036ab48950da4e0f60b54ba044b0c99301b5f23b750f0994a0212518ccc35", + "outputs/price-plane-swarm-20261024/03-precision-stock/LIGHT-ARITHMETIC-5387.json": "92309554ad5a60ba5cb02d582d814d1fe539cbcd27943e4561905ed376cf9519", + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/MANIFEST.json": "08ba6ce4dfa2b829a6a081dc702a3ebf77455a41db842f99ea556fbc2cce5c72", + "outputs/price-plane-swarm-20261024/02-census/INVOICE-v2.json": "2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e", + "outputs/price-plane-swarm-20261024/01-physical/5387-fresh/PHYSICAL-RECEIPT.json": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd" + }, + "remaining_inherited_foundations": [ + "native all-column and compact physical movement implementation", + "owned erase physical theorem", + "uniform compiler generic correctness", + "precision/tape implementation and retained error allocation", + "ordinary BIT covered/native construction and stock/conversion", + "analytic decomposition prime avoidance and exact integer recovery" + ], + "remaining_candidate_specific_gate": [ + "role04 new independent exact compiler/outer funding", + "role09 serial registered replay and final publication preflight" + ], + "invalidators": [ + "changed word/source head", + "incomplete all-input or phase endpoint", + "unrounded-child/exact-encoding ABI changed without fresh bound", + "omitted expanded record, owner or batch multiplier", + "suspended bank alias", + "missing stock product", + "old .003 stock used for .004 BIT atom", + "old C0 or eventual threshold reused" + ], + "new_threshold": "Use new C0-prime and new epsilon: t=max(4,ceil(b*bitlength(4*C0-prime*ceil(c))/(b-a))), plus new stopping/stock/setup/movement/analytic thresholds. Never reuse5383p0.", + "changed_physical_inventory": { + "owned_added": [ + "L", + 261 + ], + "owned_removed": [ + "L", + 288 + ], + "retained_independent_added": [ + "L", + 288 + ], + "retained_independent_removed": [ + "L", + 261 + ], + "raw_owned_count_unchanged": 17, + "eight_simultaneous_snapshots": true + }, + "ordinary": { + "backward_scalar": 158776, + "forward_scalar": 158120, + "route_reservation": 4834000, + "local_upper": 4992776, + "raw_global_upper": 181098496, + "ordinary_delta_from_5383_per_backward_local": 32, + "ordinary_counts_converted_to_rank_moment": false + }, + "base_generic_lemma": { + "closure_5383_v2_path": "outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v2.json", + "closure_5383_v2_sha256": "0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b", + "statement": "Generic grammar proof applies after fresh changed inventory, preparation, source bindings, N and all expanded count substitutions; no endpoint transfer by P/T equality" + } +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v1.json b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v1.json new file mode 100644 index 0000000000..a7f6555d9c --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v1.json @@ -0,0 +1,104 @@ +{ + "schema": "precision-stock-applicability/1", + "candidate": { + "pr": 5383, + "head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "word_sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION", + "evidence_class": "constructively_upper_bounded", + "complete_bill_plane_coverage": [ + "ordinary_grammar", + "preparation_range_and_dyadic_height", + "expanded_owner_and_record_prescription", + "semantic_precision_and_actual_changed_word_error_propagation", + "complex_and_stronger_BIT_stock_product", + "fixed_tape_setup_new_eventual_threshold" + ], + "retained_assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "new_candidate_specific_assumptions": [], + "raw_owned_full_local_banks": 274, + "preparation": { + "max_l1": 9, + "max_denominator": 2, + "input_magnitude_extra_bits": 4, + "adds": 54, + "new_input_unit_bound_assumed": false + }, + "expanded_constants": { + "N": "2^31385200000000", + "W": "productive full rank-N returns of structural fold F", + "P": "all paid rank-one calls of structural fold F", + "O": "274*U+O_query+O_completion+O_split+O_compiler, including all internal source scratch", + "R": "all expanded physical native/movement/normalizer/route records", + "G": "actual expanded scalar allowances+8*all non-scalar/normalizer records (including R)", + "Z": "W+O", + "E": "64*(Z+N+P+G+1)^3", + "B": "P+E", + "C0": "32*N*B^2", + "C1": 1, + "classification": "fresh constructive count prescription, no astronomical emission", + "old_raw_cap_used_as_expanded_cap": false + }, + "approximation": { + "runtime_zero_test": false, + "residuals_assumed_zero": false, + "actual_changed_word_prefix_suffix_bound": "2^((4*B+36)*d)", + "error_site_log_bound": "(G+2*P+3)*d", + "error_margin": "C0>4*B+36+G+2*P+3", + "exact_fine_grid_alone_implies_residual_zero": false + }, + "stock": { + "ordinary_BIT_atom": "1/250", + "ordinary_BIT_admitted": "17/5000", + "ordinary_BIT_actual": "8590884599/2500000000000", + "simultaneous_rule": "product", + "external_chunk_upper": "C_new*(log2(h)+h^(1/250)*(log2(p))^3+1)", + "new_threshold_required": true + }, + "predicate_domain": "Same source-certified fixed scalar/owned program; whole completed calls, restored adapters, source movement/record/f,p domain, source compiler parameters; no arbitrary gather or changed child ABI. Numerical funding separate role04.", + "source_proof_sha256": { + "research/query-thinned-controllers/PROOF.md": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148" + }, + "dependencies_sha256": { + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/MANIFEST.json": "08ba6ce4dfa2b829a6a081dc702a3ebf77455a41db842f99ea556fbc2cce5c72", + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT.md": "967bed225bcd30ff14597a56919f8d370a905f2c1391e8355f186dd81c58a542", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision.py": "2b2691ff1978fbb2a11fd9c355fd423a32b4e85cfc907d79fa77bd24b65c7043", + "outputs/price-plane-swarm-20261024/03-precision-stock/LIGHT-ARITHMETIC.json": "aef988fc821609071c4b6a717e0476cdc5fe766c5b0968f38ea733bc759470fd", + "outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e", + "outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-RECEIPT.json": "c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786" + }, + "remaining_inherited_foundations": [ + "native all-column and compact physical movement implementation", + "owned erase physical theorem", + "uniform compiler generic correctness", + "precision/tape implementation and retained error allocation", + "ordinary BIT covered/native construction and stock/conversion", + "analytic decomposition prime avoidance and exact integer recovery" + ], + "remaining_candidate_specific_gate": [ + "role04 independent exact compiler/outer funding", + "role09 serial registered replay and final publication preflight" + ], + "invalidators": [ + "changed word/source head", + "incomplete all-input or phase endpoint", + "unrounded-child/exact-encoding ABI changed without fresh bound", + "omitted expanded record, owner or batch multiplier", + "suspended bank alias", + "missing stock product", + "old .003 stock used for .004 BIT atom", + "old C0 or eventual threshold reused" + ] +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v2.json b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v2.json new file mode 100644 index 0000000000..c2b0c295fa --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/CLOSURE-v2.json @@ -0,0 +1,111 @@ +{ + "schema": "precision-stock-applicability/2", + "candidate": { + "pr": 5383, + "head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "word_sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION", + "evidence_class": "constructively_upper_bounded", + "complete_bill_plane_coverage": [ + "ordinary_grammar", + "preparation_range_and_dyadic_height", + "expanded_owner_and_record_prescription", + "semantic_precision_and_actual_changed_word_error_propagation", + "complex_and_stronger_BIT_stock_product", + "fixed_tape_setup_new_eventual_threshold" + ], + "retained_assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "new_candidate_specific_assumptions": [], + "raw_owned_full_local_banks": 274, + "preparation": { + "max_l1": 9, + "max_denominator": 2, + "input_magnitude_extra_bits": 4, + "adds": 54, + "new_input_unit_bound_assumed": false + }, + "expanded_constants": { + "N": "2^31385200000000", + "W": "productive full rank-N returns of structural fold F", + "P": "all paid rank-one calls of structural fold F", + "O": "274*U+O_query+O_completion+O_split+O_compiler, including all internal source scratch", + "R": "all expanded physical native/movement/normalizer/route records", + "G": "actual expanded scalar allowances+8*all non-scalar/normalizer records (including R)", + "Z": "W+O", + "E": "64*(Z+N+P+G+1)^3", + "B": "P+E", + "C0": "32*N*B^2", + "C1": 1, + "classification": "fresh constructive count prescription, no astronomical emission", + "old_raw_cap_used_as_expanded_cap": false + }, + "approximation": { + "runtime_zero_test": false, + "residuals_assumed_zero": false, + "actual_changed_word_prefix_suffix_bound": "2^((4*B+36)*d)", + "error_site_log_bound": "(G+N+2*P+4)*d", + "error_margin": "C0>4*B+36+G+N+2*P+4", + "exact_fine_grid_alone_implies_residual_zero": false, + "error_site_count_bound": "(G+N+1)*e*(P+1)^(D+1)" + }, + "stock": { + "ordinary_BIT_atom": "1/250", + "ordinary_BIT_admitted": "17/5000", + "ordinary_BIT_actual": "8590884599/2500000000000", + "simultaneous_rule": "product", + "external_chunk_upper": "C_new*(log2(h)+h^(1/250)*(log2(p))^3+1)", + "new_threshold_required": true + }, + "predicate_domain": "Same source-certified fixed scalar/owned program; whole completed calls, restored adapters, source movement/record/f,p domain, source compiler parameters; no arbitrary gather or changed child ABI. Numerical funding separate role04.", + "source_proof_sha256": { + "research/query-thinned-controllers/PROOF.md": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148" + }, + "dependencies_sha256": { + "outputs/price-plane-swarm-20261024/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "outputs/price-plane-swarm-20261024/09-capsule-cold/supplement-03-v1/MANIFEST.json": "08ba6ce4dfa2b829a6a081dc702a3ebf77455a41db842f99ea556fbc2cce5c72", + "outputs/price-plane-swarm-20261024/03-precision-stock/REPORT.md": "967bed225bcd30ff14597a56919f8d370a905f2c1391e8355f186dd81c58a542", + "outputs/price-plane-swarm-20261024/03-precision-stock/check_precision.py": "2b2691ff1978fbb2a11fd9c355fd423a32b4e85cfc907d79fa77bd24b65c7043", + "outputs/price-plane-swarm-20261024/03-precision-stock/LIGHT-ARITHMETIC.json": "aef988fc821609071c4b6a717e0476cdc5fe766c5b0968f38ea733bc759470fd", + "outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e", + "outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-RECEIPT.json": "c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786", + "outputs/price-plane-swarm-20261024/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md": "eb92a064ef7c44435620e2151ab8fa1d7471518f5fd315725d84f726314f9aba" + }, + "remaining_inherited_foundations": [ + "native all-column and compact physical movement implementation", + "owned erase physical theorem", + "uniform compiler generic correctness", + "precision/tape implementation and retained error allocation", + "ordinary BIT covered/native construction and stock/conversion", + "analytic decomposition prime avoidance and exact integer recovery" + ], + "remaining_candidate_specific_gate": [ + "role04 independent exact compiler/outer funding", + "role09 serial registered replay and final publication preflight" + ], + "invalidators": [ + "changed word/source head", + "incomplete all-input or phase endpoint", + "unrounded-child/exact-encoding ABI changed without fresh bound", + "omitted expanded record, owner or batch multiplier", + "suspended bank alias", + "missing stock product", + "old .003 stock used for .004 BIT atom", + "old C0 or eventual threshold reused" + ], + "supersedes": { + "path": "outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v1.json", + "sha256": "f2082ec98cead48372f5e98bb4bccadfcb4c9ef51c15dae30fb595a41cd2d2e6", + "scope": "Only conservative error-site count; source word/counts/constants/assumptions unchanged" + } +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md b/research/price-plane-independent-validation/frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md new file mode 100644 index 0000000000..38bd3cc05e --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/ERROR-COUNT-ADDENDUM-v2.md @@ -0,0 +1,42 @@ +# Conservative leaf-inclusive error count + +This addendum supersedes only REPORT.md section5's sufficient error-site count +and the corresponding `approximation.error_site_log_bound` in CLOSURE-v1.json. +The exact frozen v1 files remain unchanged. No candidate physical word, +invoice, compiler endpoint or selected premise changes. + +To include every direct leaf kernel as a hypothetical error site, in addition +to the finite-template scalar/child sites, use the still more conservative + +``` +J(e) <= (G+N+1)*e*(P+1)^(D+1), D<=log2(e), e>=1. +log2 J(e) <= (G+N+2*P+4)*e. +``` + +Indeed there are at most `(P+1)^(D+1)` stopped-tree nodes, at most G scalar/ +native record sites per nonleaf and at most e direct one-axis kernel sites +at any leaf. The displayed product overcounts both. Integer log2 bounds give +`log2(G+N+1)<=G+N+1`, `log2(e)<=e`, and +`(D+1)log2(P+1)<=(e+1)(P+1)<=2(P+1)e`; summing proves the bound. +Exact movement/descriptor arithmetic introduces no roundoff, but the +overcount remains valid if those record sites are included as well. + +With new S=Z+N+P+G+1, E=64S^3 and B=P+E, we have N=2 and B>=64. The same allocated per-site error target +`2^(-p-C0*d)` and changed-word prefix/suffix bound therefore still imply +total output error at most `2^-p`. The explicit N and e factors remove any +need to rely on leaf kernels being exact when counting hypothetical error +injections. The selected source's exact fine-grid/no child re-encoding ABI +is separately retained; no residual-zero or independent-error cancellation +assumption is made in either version. + +The remaining new thresholds, stock product, ownership and complete source +applicability proof are unchanged. This uniform inequality is valid for both +the independently reviewed #5383 and the separately bound #5387 template, +using each template's own N/P/G/B/C0 and all its new banks. + +Review by Chris R / Clear1nsight with substantial OpenAI Codex assistance. +Ali Romman, Dugongue and all attributed predecessors retain their credit. diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/FILES.json b/research/price-plane-independent-validation/frozen/03-precision-stock/FILES.json new file mode 100644 index 0000000000..20e8deff38 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/FILES.json @@ -0,0 +1,13 @@ +{ + "check_precision_5387.py": "ab1036ab48950da4e0f60b54ba044b0c99301b5f23b750f0994a0212518ccc35", + "ERROR-COUNT-ADDENDUM-v2.md": "eb92a064ef7c44435620e2151ab8fa1d7471518f5fd315725d84f726314f9aba", + "REPORT-5387-v1.md": "8e3cbbe31d549dff0c5c1c0acd31159e47bdbddc09279ded89d342562979789d", + "CLOSURE-v1.json": "f2082ec98cead48372f5e98bb4bccadfcb4c9ef51c15dae30fb595a41cd2d2e6", + "LIGHT-ARITHMETIC.json": "aef988fc821609071c4b6a717e0476cdc5fe766c5b0968f38ea733bc759470fd", + "check_precision.py": "2b2691ff1978fbb2a11fd9c355fd423a32b4e85cfc907d79fa77bd24b65c7043", + "HANDOFF.md": "c545b0d871802e691af099f698a88567898c9741cdacbb6e24f074e67690c63b", + "CLOSURE-5387-v1.json": "2e90da356fdf32ad35dfe9bd8f7c4567e12e4fdf4453595c09f6bc6370e6cee3", + "REPORT.md": "967bed225bcd30ff14597a56919f8d370a905f2c1391e8355f186dd81c58a542", + "LIGHT-ARITHMETIC-5387.json": "92309554ad5a60ba5cb02d582d814d1fe539cbcd27943e4561905ed376cf9519", + "CLOSURE-v2.json": "0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b" +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/HANDOFF.md b/research/price-plane-independent-validation/frozen/03-precision-stock/HANDOFF.md new file mode 100644 index 0000000000..9172aa2e70 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/HANDOFF.md @@ -0,0 +1,57 @@ +**Research discussion / PR / artifact:** Independent same-premise precision, +stock and tape applicability for Ali Romman's #5383 and Dugongue's #5387. +Local artifacts in this directory; parent owns any external publication. + +**Exact commit:** #5383 `4bd6efa51a495a7c7b7754915cf0244e7e60969e`; +#5387 `b1ab650d36f59e5be682a813145b7c67e219e341`; common canonical source +`1ec1119972c9aefe42525172d07b332fcff81cb4`. All candidate/source proof +bindings and separately owned physical/census receipt hashes are in the final +closures. Final #5383 CLOSURE-v2 SHA256 +`0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b`; +#5387 CLOSURE-5387-v1 SHA256 +`2e90da356fdf32ad35dfe9bd8f7c4567e12e4fdf4453595c09f6bc6370e6cee3`. + +**What is established:** Both literal preparations belong to the retained +dyadic/owned-storage grammar. Fresh RREF and instruction checks establish +9M magnitude/+1 denominator-bit preparation bounds, with54 ADDs for #5383 +and56 for #5387. Full fresh expansion prescriptions count every suspended +bank and compiler/batch/route record, then yield new E/B/C0 and C1=1. The +actual changed physical word propagates arbitrary perturbations through +prefix/suffix maps; no approximate residual is assumed zero. New complex +stock and stronger .004-atom BIT stock require their full product. New tape, +setup and eventual threshold prescriptions retain the source domain. No +additional candidate-specific premise was found after the separately verified +all-input physical and literal census gates. + +**What remains uncertain:** The inherited native-all-column, owned-erasure, +compiler, precision/tape and analytic/recovery foundations remain conditional. +This slice does not prove their unconditional implementation or reexecute +source phase lowering/BIT native construction/physical tapes/analytic recovery. +Role04 owns exact numerical funding and role09 owns serial cold replay and +publication preflight. No astronomical word or selected result was changed. + +**Smallest useful next task:** Bind these immutable closure receipts into +the independent exact funding/oracle evidence, execute the authorized serial +registered replay after the remaining gates, and have root inspect the actual +changed-word error argument before publication. For future altered words, +redo the changed-input/phase/owner/census proof and substitute their new +N/W/P/O/R/G before reusing the generic lemma. + +**Reproduction command and expected runtime:** From the project workspace, +`python3 -B outputs/price-plane-swarm-20261024/03-precision-stock/check_precision.py` +and +`python3 -B outputs/price-plane-swarm-20261024/03-precision-stock/check_precision_5387.py`. +Observed0.38/0.39seconds, standard-library Python. Each reads immutable +capsule bytes and imports no submitted evaluator; second imports only this +review's own pure arithmetic. Read REPORT.md, ERROR-COUNT-ADDENDUM-v2.md and +REPORT-5387-v1.md for the quantified written proof and explicit falsifiers. + +**Predecessor credit:** Ali Romman owns the public eight-relation mechanism +and its one-relation predecessor; Dugongue owns the separately credited +#5387 implementation/compiler refinement. Preserve Cao Yifan's #4610 word, +Cinna Davis's controller/helper/free-word lineage, zxv's native/cache/compiler/ +precision work, Jacob Alan Sussman's recursion, Chris R/Clear1nsight's +#5241/#5384 admission, Dugongue/ToikY physical/tensor work, all ordinary BIT +contributors and every source notice. New review by Chris R/Clear1nsight with +substantial OpenAI Codex assistance, Apache-2.0; no independent human review +claimed. diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json b/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json new file mode 100644 index 0000000000..44dc7f40e2 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC-5387.json @@ -0,0 +1,146 @@ +{ + "schema": 1, + "status": "PASS_FRESH_5387_PREPARATION_AND_SCALAR_GRAMMAR", + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "capsule_manifest_sha256": "b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594", + "files": { + "WORD.json.gz": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b", + "RELATIONS.json": "bc9ba05595497f399da5e5a548b2d2c83696e539fa1257ab7e2cb49d438cd9dd", + "SOURCES.json": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3" + }, + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "preparation": [ + { + "pivot": 225, + "adds": 6, + "row_l1": "6", + "max_denominator": 1, + "height": 6 + }, + { + "pivot": 227, + "adds": 11, + "row_l1": "9", + "max_denominator": 2, + "height": 15 + }, + { + "pivot": 229, + "adds": 7, + "row_l1": "5", + "max_denominator": 2, + "height": 11 + }, + { + "pivot": 230, + "adds": 4, + "row_l1": "4", + "max_denominator": 1, + "height": 4 + }, + { + "pivot": 241, + "adds": 7, + "row_l1": "5", + "max_denominator": 2, + "height": 11 + }, + { + "pivot": 245, + "adds": 7, + "row_l1": "5", + "max_denominator": 2, + "height": 11 + }, + { + "pivot": 257, + "adds": 7, + "row_l1": "5", + "max_denominator": 2, + "height": 11 + }, + { + "pivot": 261, + "adds": 7, + "row_l1": "5", + "max_denominator": 2, + "height": 11 + } + ], + "preparation_events": 64, + "preparation_adds": 56, + "max_preparation_l1": 9, + "max_preparation_denominator": 2, + "input_magnitude_extra_bits": 4, + "local": { + "forward": { + "events": { + "phase": 10, + "warp": 240, + "scalar": 17453, + "scalar_add": 16265, + "scalar_scale": 1164, + "adapter": 448, + "climb": 3290, + "scalar_clear": 16, + "scalar_copy": 8, + "center": 8 + }, + "coefficient_height_upper": 29105, + "max_abs_coefficient": "8", + "max_scalar_denominator": 8 + }, + "backward": { + "events": { + "scalar": 17565, + "scalar_clear": 56, + "scalar_add": 16329, + "phase": 10, + "warp": 240, + "scalar_scale": 1164, + "adapter": 448, + "climb": 3282, + "scalar_copy": 16, + "zero_retag": 8 + }, + "coefficient_height_upper": 29193, + "max_abs_coefficient": "8", + "max_scalar_denominator": 8 + } + }, + "raw_full_local_owned_banks": 274, + "changed_owned_pivot": { + "removed": 288, + "added": 261 + }, + "changed_last_site": { + "source_role": [ + "L", + 256 + ], + "snapshot": 11296, + "zero": [ + [ + 17233, + 1, + [ + "L", + 256 + ] + ] + ] + }, + "new_N": "2^409549000000000000", + "new_G": "fold over entire freshly prepared completed/split/compiled physical word; never reuse5383G", + "seconds": 0.3879457699949853, + "scope": "No candidate evaluator imports. Exact physical endpoint and final funded arithmetic are separate gates; new N supplied only after role04 certification." +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC.json b/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC.json new file mode 100644 index 0000000000..8390c931b5 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/LIGHT-ARITHMETIC.json @@ -0,0 +1,189 @@ +{ + "schema": 1, + "status": "PASS_BOUNDED_PREPARATION_AND_SEMANTIC_ALGEBRA", + "candidate_head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "capsule_manifest_sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "source_files": { + "WORD.json.gz": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "WITNESS.json": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591", + "SOURCES.json": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3" + }, + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 288 + ], + "preparation": [ + { + "pivot": 225, + "add_count": 6, + "row_l1": "6", + "prefix_l1_upper": "6", + "denominator": 1, + "height_upper": 6 + }, + { + "pivot": 227, + "add_count": 11, + "row_l1": "9", + "prefix_l1_upper": "9", + "denominator": 2, + "height_upper": 15 + }, + { + "pivot": 229, + "add_count": 7, + "row_l1": "5", + "prefix_l1_upper": "5", + "denominator": 2, + "height_upper": 11 + }, + { + "pivot": 230, + "add_count": 4, + "row_l1": "4", + "prefix_l1_upper": "4", + "denominator": 1, + "height_upper": 4 + }, + { + "pivot": 241, + "add_count": 7, + "row_l1": "5", + "prefix_l1_upper": "5", + "denominator": 2, + "height_upper": 11 + }, + { + "pivot": 245, + "add_count": 7, + "row_l1": "5", + "prefix_l1_upper": "5", + "denominator": 2, + "height_upper": 11 + }, + { + "pivot": 257, + "add_count": 7, + "row_l1": "7", + "prefix_l1_upper": "7", + "denominator": 1, + "height_upper": 7 + }, + { + "pivot": 288, + "add_count": 5, + "row_l1": "5", + "prefix_l1_upper": "5", + "denominator": 1, + "height_upper": 5 + } + ], + "preparation_events": 62, + "preparation_adds": 54, + "preparation_max_l1": 9, + "preparation_max_denominator": 2, + "preparation_input_magnitude_extra_bits": 4, + "local": { + "forward": { + "events": { + "phase": 10, + "warp": 240, + "scalar": 17453, + "scalar_add": 16265, + "scalar_scale": 1164, + "adapter": 448, + "climb": 3290, + "scalar_clear": 16, + "scalar_copy": 8, + "center": 8 + }, + "coefficient_height_upper": 29105, + "max_abs_coefficient": "8", + "max_scalar_denominator": 8 + }, + "backward": { + "events": { + "scalar": 17563, + "scalar_clear": 56, + "scalar_add": 16327, + "phase": 10, + "warp": 240, + "scalar_scale": 1164, + "adapter": 448, + "climb": 3282, + "scalar_copy": 16, + "zero_retag": 8 + }, + "coefficient_height_upper": 29183, + "max_abs_coefficient": "8", + "max_scalar_denominator": 8 + } + }, + "raw_full_owned_banks": 274, + "semantic_probes": [ + { + "N": 2, + "W": 1, + "O": 0, + "P": 0, + "G": 0, + "E": 4096, + "B": 4096, + "C0": 1073741824, + "guard": 72, + "error_cost": 16423 + }, + { + "N": 2, + "W": 1, + "O": 17, + "P": 1, + "G": 1, + "E": 778688, + "B": 778689, + "C0": 38806819758144, + "guard": 796, + "error_cost": 3114798 + }, + { + "N": 4, + "W": 3, + "O": 274, + "P": 12, + "G": 900, + "E": 108941400576, + "B": 108941400588, + "C0": 1519133281545611103455232, + "guard": 138113536, + "error_cost": 435765603315 + }, + { + "N": 57, + "W": 2242, + "O": 1, + "P": 127570, + "G": 1494376, + "E": 274243405879482702272, + "B": 274243405879482829842, + "C0": 137182028899122853795461811980571602158814336, + "guard": 15036558792208, + "error_cost": 1096973623517933068923 + } + ], + "controls": { + "nondyadic_third_rejected": true, + "unit_input_preparation_bound_rejected": true, + "one_snapshot_bank_rejected": true, + "old_three_backward_banks_rejected": true, + "maximum_replaces_product_stock_rejected": true, + "approximate_zero_not_exact": true + }, + "seconds": 0.3796279070083983, + "scope": "Independent light arithmetic and literal scalar grammar only; full physical identities, finite compiler arithmetic and cold replay are separate receipts." +} diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT-5387-v1.md b/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT-5387-v1.md new file mode 100644 index 0000000000..09bd293fc5 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT-5387-v1.md @@ -0,0 +1,160 @@ +# PR5387: fresh finite-template delta and new threshold + +This independent applicability extension reviews Dugongue's exact head +`b1ab650d36f59e5be682a813145b7c67e219e341`, package +`research/eight-owned-relations`, against the fixed same-premise grammar in +REPORT.md and ERROR-COUNT-ADDENDUM-v2.md. It does not assume equal rank +histograms imply equal physical programs. The exact new word SHA256 is +`6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b`; +capsule manifest is +`b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594`. +The canonical source manifest is byte-identical to #5383's SOURCES.json; +the exact canonical proof supplement and five selected assumptions therefore +remain the same source-bound inputs, not an inferred new theorem. + +The generic proof is a lemma over arbitrary *positive finite new* N/W/P/O/R/G +belonging to this source grammar, together with the separately established +whole-job endpoint and compiler premises. It uses no old numerical value +for any expanded count. Consequently it can be instantiated at the new +compiler rank after, and only after, the following changed obligations are +checked. + +## Literal changes and preparation bounds + +This is more than a change in preparation ordering. Owned helper L261 +replaces L288; L288 is once again an independent retained helper. The last +snapshot is L256 immediately after source event11296, rather than L288 +after11306; its later zero job is event17233 instead of17580. Its unrestricted +relation is different. Role01 independently checks the changed sixteen +source identities and full 624-retained/17-dirty-owned input boundary. The +last center-minus-snapshot row is `-D8_new/4`, and the later row is +`+D8_new/4`. All eight snapshots are live before the first replaced center, +and the same true physical frame281 is required for that last COPY. All +gauges, retained all-column endpoints and final erasures need that fresh +physical check; no endpoint is transferred by moment equality. + +`check_precision_5387.py` performs its own exact RREF from the literal +RELATIONS site relations, compares all eight resulting rows/pivots to the +declared rows, and reconstructs the emitted preparation prefix. It imports +only this review's own pure arithmetic, never a submitted module. The new +pivots are225,227,229,230,241,245,257,261, with no pivot on any other +preparation RHS. The prefix has64instructions: eight CLEARs and56ADDs. + +|Pivot|ADDs|Absolute coefficient sum|Largest denominator|Scalar height allowance| +|---|---:|---:|---:|---:| +|225|6|6|1|6| +|227|11|9|2|15| +|229|7|5|2|11| +|230|4|4|1|4| +|241|7|5|2|11| +|245|7|5|2|11| +|257|7|5|2|11| +|261|7|5|2|11| + +The max preparation input bound remains9M, with four magnitude bits and one +additional binary denominator place. This is freshly derived for the new +rows, not copied from #5383. No unit-ball assumption or rescaling of retained +inputs is introduced. The entire changed backward scalar height allowance +is29,193, compared with29,183 in #5383; forward remains29,105. Both keep +coefficient magnitudes at most8 and individual denominators at most8. +The independent literal census charges backward158,776 scalar units, +32 more than #5383; route reservation4,834,000 is unchanged, so the new local +sum is4,992,776. The raw controller upper181,098,496 remains a valid raw +allowance and still supplies no expanded cap. + +## New actual finite word and constants + +Fix the new raw word A', its1024-fold chronological product, the source's +charged completion/splitting, and the newly checked compiler rank + +`N' = 2^409549000000000000`. + +Its tensor power, cutoff20, completion floor21 and tail shift1/5 are unchanged, +but the reserve and integer batches/height change. The funded tested saving, +reserve, capacity and outer arithmetic are role04's separate gate. The raw +complete profiles remain64,148paid/10,800productive with the same rank masses. +That equality transfers neither the new compiler's internal counts nor its +new eventual threshold. + +Call the entire new fixed compiled program F'. Apply the structural count +fold in REPORT.md section3 to **F'**, with all changed preparation instructions, +fresh batch multiplicities, actual rounded/split/completed targets and larger +matcher recipes. Obtain W',P',U',R',G' and allocate + +`O' = 274*U' + O'_query + O'_completion + O'_split + O'_compiler`, + +including all retained internal scratch. Each of the274LOCAL banks per raw +occurrence now uses the new owner list containingL261; every owner name +contains its complete product/substitution/compiler path. Every suspended +instance has distinct banks. Retained helpers are credited only after their +complete output contract, and no owned bank contributes to W'. The source +precompiler record overestimate in REPORT.md uses the same raw181,098,496 +allowance, but F' has different integer compiler multiplicities. It is not +valid to set G'=G+32, O'=O or W'/P' equal to their #5383 expanded counterparts. +The +32 is a raw *per-backward-LOCAL* execution delta, replicated throughout F'. + +Use exclusively these new positive finite constants: + +``` +Z' = W'+O' +E' = 64*(Z'+N'+P'+G'+1)^3 +B' = P'+E' +C0' = 32*N'*(B')^2 +C1' = 1. +``` + +The same elementary inequalities imply +`2G'*(Z')^2+8P'+4Z'+4+32N'4B'+36+G'+N'+2P'+4`. The completed-child recurrence therefore gives +linear semantic magnitude/denominator growth and the changed-word arbitrary +perturbation bound, including hypothetical leaf-kernel injections. In physical +coordinates the new zero retag is still identity on every residual; neither +shared-grid encoding nor independent rounded errors are assumed to restore an +exact zero. The new preparation and later physical suffix have their own +coefficient/norm envelope. Full actual-inverse children, source phases, +two-sided adapters and unrounded/uncompressed return ABI remain required. + +The new productive stock is `W'^(D'(d))`, with +`D'(e)=0` below N' and `1+D'(floor(e/N'))` otherwise, and complete chunk +reservation `ceil(log2 W')*D'(d)`. The ordinary BIT supplier is authenticated +source-identical with atom.004 and admitted saving.0034. Simultaneous complex +and BIT stocks retain their product. New W'/P'/O'/R'/N' change the fixed stock +coefficient and support-local reserve threshold; they do not justify a maximum +of the stocks or the obsolete.003-atom reserve. + +Fixed-tape parking, restored adapters/ordering and polynomial setup work use +the full F' inventory. All new descriptor/matcher degrees and coefficients +enter the new eventual threshold before online input size grows. Specifically +with new epsilon=a'/b', normalized d<=c'*p^epsilon, compute the bitlength L' +of `4*C0'*ceil(c')` and take + +`t'=max(4,ceil(b'*L'/(b'-a'))); p_grid'=2^t'`. + +Take the maximum with the new stopping `d^beta_stop'>=2N'`, row-stock, +movement/record, fixed setup-degree absorption and retained analytic/prime +thresholds. No old C0, p0 or expanded cap is inherited. Strict epsilon<1 +and the unchanged source record-fiber assumption provide the same eventual +O(p)-bit/fixed-tape conclusion with this new threshold and C1'=1. + +## Scope and falsifiers + +This extension needs no extra candidate-specific hypothesis beyond the five +selected contracts. Its precise candidate obligations are the separately +verified new all-input physical boundary, fresh literal ordinary invoice and +new exact compiler/outer gate. It stops if any new row uses a pivot dependency, +nondyadic coefficient, uncharged operation/matcher, child ABI, borrowed erase +or changed source primitive. It also stops for owner aliasing, omitted expanded +batch factors, unit-input-only child tariff without source incoming-scale +headroom, discarded approximate residual, maximum-of-stock substitution, or +reuse of #5383's expanded constants/threshold. All remaining inherited +physical/tape/BIT/analytic/recovery foundations retain their conditional status. + +This is an applicability extension, not a new numerical or mechanism priority +claim. Ali Romman owns the public eight-relation mechanism in #5383 and its +#5377 predecessor. Dugongue's #5387 changes the relation implementation and +certifies the smaller-reserve endpoint; preserve its explicit predecessor +credit. Cao Yifan, Cinna Davis, zxv, Jacob Alan Sussman, Chris R/Clear1nsight, +ToikY and all physical/BIT/analytic contributors retain their attributed source +credit. New independent review by Chris R/Clear1nsight with substantial OpenAI +Codex assistance; no independent human acceptance, astronomical emission, +source native replay, Lean or selected-record change is claimed. diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT.md b/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT.md new file mode 100644 index 0000000000..3aec0f41ee --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/REPORT.md @@ -0,0 +1,393 @@ +# PR5383: fresh precision, stock and fixed-tape specialization + +**Scope:** a constructive finite-template consequence of the five selected +assumptions, for Ali Romman's exact head +`4bd6efa51a495a7c7b7754915cf0244e7e60969e`. This is an independent written +applicability review plus bounded independent arithmetic. It does not execute +the candidate verifier, an astronomical emitter, native construction or Lean. +Complete physical endpoints are supplied by role 01; the complete literal bill +by role 02; compiler/outer funding by role 04. Their gates remain separate. + +The reviewed literal word has SHA256 +`7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a` +(decompressed `2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d`). +Capsule manifest: `ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8`. +The separate immutable canonical proof supplement has manifest +`08ba6ce4dfa2b829a6a081dc702a3ebf77455a41db842f99ea556fbc2cce5c72`. +Its four proof texts come from canonical +`1ec1119972c9aefe42525172d07b332fcff81cb4`, with raw Git blob/SHA256 bindings. +No floating source or earlier candidate cap supplies the new constants. + +## 1. Source theorem and candidate-specific obligations + +The canonical selected PR4610 `PROOF-REVIEW.md` explicitly retains the generic +finite native grammar and requires fresh expanded constants. Canonical +`research/final4610-independent-admission/SPECIALIZATION.md`, sections 1–3 and +6, supplies the constructive rule: fixed finite scalar/owned-storage programs, +arbitrary fixed nested frames, full two-sided phase-bearing job adapters, +fresh suspended owners, and fixed binary movement recipes. The permitted +source scalar alphabet includes dyadic ADD/SCALE and owned COPY/CLEAR. +Canonical `research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md`, +sections 3–5, supplies semantic completed-child bounds, stocks, tape parking +and eventual thresholds. These are conditional physical theorems already in +the selected framework, rather than new axioms about this relation program. + +Role 01 independently establishes that every newly used scalar contact is in +the actual same frame; all 624 retained persistent inputs are independent; +17 dirty owned entries are erased before use and at return; and the sixteen +source row identities justify the eight COPY/identity replacements. Retained +native factors/maps, their full phases and complete job contracts are source +identical. A free-group identity evaluated at each complete physical operator +preserves all columns and spectators; no tensor power is distributed over a +sum. Those endpoint and phase facts are prerequisites, not consequences of the +scalar grammar check in this directory. + +The actual additions, COPY/CLEAR, and physical identity introduce no new +movement species. For nine-axis monomials the selected construction uses at +most 171 primitive movement/phase records per factor and 342 for two factors; +the census's 1000-record route-group reservation therefore still applies. +Larger fixed compiler matchers use a larger fixed row-elimination list under +the same selected movement theorem; they do not inherit the number 171. +Complete slots, restored dirty control fields, spectator ranges, the source +f,p domain and record-fiber hypotheses remain required. + +## 2. Preparation, input magnitude and coefficient growth + +`check_precision.py` reads the literal WORD and WITNESS, performs an independent +rational RREF, compares its result to the literal relation basis, and checks +the complete emitted preparation prefix instruction by instruction. It imports +no submitted module. The eight pivots are 225, 227, 229, 230, 241, 245, 257, +288. No pivot appears on another preparation's right hand side, so the +preparations have no dependency cycle and consume only retained independent +nonpivot fields. Their 62 instructions are eight CLEARs and 54 dyadic ADDs. + +| Pivot | ADDs | Sum of absolute preparation coefficients | Largest denominator | Conservative scalar height charge | +|---|---:|---:|---:|---:| +|225|6|6|1|6| +|227|11|9|2|15| +|229|7|5|2|11| +|230|4|4|1|4| +|241|7|5|2|11| +|245|7|5|2|11| +|257|7|7|1|7| +|288|5|5|1|5| + +For incoming physical component bound M on these frame-0 fields, each +preparation prefix has component magnitude at most 9M. The common denominator +needs at most one additional binary place. Thus four magnitude bits and one +denominator bit safely cover preparation. **Prepared fields are not assumed +to stay in the unit ball.** The source semantic statement already allows +incoming magnitude `2^t` and denominator exponent `p+t`; its guard is relative +to that incoming scale. Native/child calls therefore consume these newly +bounded values, rather than an unproved unit-input interface. Initial online +values must still have the source's normalized encoded input range. Arbitrary +dirty owned *symbols* in the all-column proof do not promise constant cost on +unbounded encodings: each is cleared before its value can participate. + +There is no extra rescaling of retained inputs, which would alter their +contract. Any global source normalization and final normalization retain their +source charge. The four preparation headroom bits are included by the new +scalar envelope below. A hypothetical backend restricted to unit-valued child +inputs, without the selected incoming-scale guard, would need a new scaled +child construction and is outside this conclusion. + +For each ADD coefficient a the independently recomputed safe contribution is +`ceil(log2(1+abs(a))) + log2(denominator(a))`; SCALE uses +`max(1,abs(a))`. COPY has row norm one in the full role-component sup norm; +CLEAR has norm at most one and destroys only owned data. These operations do +not add denominator height. The entire changed backward scalar word has +height allowance 29,183; forward has 29,105. Both have maximum coefficient +magnitude 8 and maximum single-instruction denominator 8. These allowances +ignore cancellations and do not rely on any zero invariant. The separate +source-reported sharp formal prefix norm 163/denominator64 is corroborative, +not required for this conservative proof. + +Role 02's literal ordinary invoice gives backward 158,744 primitive scalar +units, including all preparation, caches and cleanup; forward 158,120. +The changed backward increment is 576, rather than eight copies of the old +one-relation increment. Its 4,834 route groups reserve both lifetimes for all +sixteen additional owned roles, using the maximum old forward helper/paid +counts conservatively. Thus `158744 + 4834000 = 4992744 < 10^7`. +The complete raw controller allowance is 181,098,496. This is a **raw** bound; +it is never an expanded size, stock or precision cap. + +## 3. Explicit new finite-template counting prescription + +First fix the new raw chronological supplier A, its 1024-fold product, charged +completion and disjoint splitting, then the selected finite integer compiler +at `N=2^31385200000000` (the numerical applicability gate belongs to role 04). +All these choices precede growth of the multiplication input. Call this fixed +finite program F. The source supplies an effective finite construction, not a +claim that a feasible computer materializes F. + +Here is a fully source-bound, constructive count prescription for F. Count its +finite syntax tree by structural folds, with multiplicities; do not merge DAG +nodes that require distinct physical owners. A sequence sums its record and +bank-occurrence counts. Replication by an integer k multiplies those counts +by k and prefixes all bank names with their replica. Child substitution replaces +the paid leaf with its complete body and all incoming/outgoing adapters, and +prefixes all body owners by the complete substitution path. Coordinate matching, +completion, splitting, padding, rounded integer batches and compiler joins +retain their own actual records. Fresh owner names are tuples of all those +indices, local call index and local owner. The compiler's integer batch +denominators are cleared exactly as in the selected construction before its +fold is evaluated. No empirical emission is needed to define these integers. + +Use the resulting **new** counts: + +* `W`: full independent productive rank-N return arrays in F, counted once; +* `P`: actual positive rank-one paid child occurrences in F, including original + calls, query calls, idle jobs, completion and splitting; +* `U`: actual instantiated raw supplier occurrences in this complete expansion; +* `O = 274*U + O_query + O_completion + O_split + O_compiler`: a conservative + allocation with all listed extra banks disjoint and each term counted over + the complete expanded syntax. The 274 is `16*17+2*1` LOCAL banks per raw + supplier, not the entire O. Any retained internal source scratch reservation + is counted in the corresponding additional term as well; +* `R`: every native/movement/normalizer/route primitive record in F, including + larger compiler matchers and restoration passes, not just new raw records; +* `G`: sum of actual scalar primitive allowances in F plus eight per R record + and per remaining non-scalar/normalization record not already in R. Hence + G dominates coefficient-height growth and satisfies `G>=R`. The deliberately + counted execution allowance for COPY/CLEAR is retained even though their + coefficient-height increment is zero. + +This is a prescribed complete disjoint allocation, not a claim of minimum +live storage. It is safe to replace any of these counts by a constructively +computed upper bound for the **precision/stock** calculation; the exact W/P +ratio used to establish the recursive saving must retain its own source +compiler proof, rather than replacing it by arbitrary upper bounds. + +The actual new raw numbers also instantiate an explicit precompiler record +overestimate. With productive count B=10800, paid count J=64148, paid rank mass +237982, maximal target rank m=145 and completion floor21, canonical +`query-thinned-controllers/PROOF.md` section5 gives + +``` +L_product <= [181098496*1024*(10800+64148)^1024 + +237982^1024 +(10800*21)^1024] + *(10*145^2048+10). +``` + +The first term pays the chronological product, the next two pay old paid and +new completion/splitting rank masses, and the final factor conservatively pays +whole-job normalizers and inverse routes. This is already enormously larger +than the raw bill. The later integer compiler replication is still counted by +the F-fold above, with its actual batch multiplicities and additional matchers; +**L_product is not substituted for the final expanded count either.** No old +`10^9`, old W/P/O, old fine-grid cutoff or one-bank-per-depth shortcut is used. + +All eight cache fields are simultaneously live before the first replaced +center. Every backward occurrence therefore reserves C0..C8 and its eight +private pivots even if some could be reused sequentially. Every suspended +recursive occurrence has its own prefixed banks. A parent cannot overwrite +its parked snapshot or pivot while a child executes. The child finishes, +restores its whole-job adapters and ordering, then returns before the parent +resumes. Every private bank is erased after its last use, contributes no +productive credit and has its storage/parking cost included. + +## 4. New semantic constants and C1=1 + +For precisely these new finite integers put + +``` +Z = W+O +S = Z+N+P+G+1 +E = 64*S^3 +B_sem = P+E +C0 = 32*N*B_sem^2 +C1 = 1. +``` + +All symbols are new candidate constants; B_sem is distinct from the raw +productive count B in section3. Since N>=2, W>=1, and all counts are +nonnegative, `S>=4`, and + +`2GZ^2 + 8P + 4Z + 4 + 32N <= 2S^3+48S < 64S^3=E`. + +A completed forward or actual inverse u-axis child has coefficients in +`2^-u Z[i]` and row sum at most `2^u`, as in the selected source. Two-sided +monomial factors are permutations/unit phases and retain that bound. This +statement is about a *completed value*; unfinished child temporaries never +become parent operands. For `f=floor(e/N)>=1`, the total selected widths of +previously completed rank-one children are at most P*f, so the source +completed-child recurrence for arbitrary incoming contents is + +`A(e) <= A(f) + P*f + E`. + +The source leaves have `A(e)<=8e`. Since `2B_sem*(N-1)>=P+E` and +`2B_sem*f+P*f+E <= 2B_sem*N*f <=2B_sem*e`, induction proves +`A(e)<=2B_sem*e`. The retained remainder, prefix kernels and outer +normalizations add at most18d, so the complete layer stays below C0*d. +Preparation's factor9/one binary place, COPY duplication, and every suspended +bank were included in G and Z. Correlation among owned values does not reduce +these conservative norms or grant output credit. This proves the retained +linear semantic power `C1=1` with a **new** C0. + +## 5. Errors at COPY and zero retags + +The ideal changed exact linear program has the correct endpoint on its +prepared input image. Its runtime has no zero predicate. At `zero_retag` the +physical instruction is identity on the *whole* physical field. If an actual +execution has residual e, it maps e to e; it does not discard that residual +or execute the old Gaussian on it. A shared fine grid alone never makes e +zero. No assumption that separately rounded child errors cancel is used. + +Analyze the actual changed physical instruction list in physical component +coordinates. COPY and CLEAR have sup-norm at most one on the whole role +tuple; every preparation ADD has its new coefficient bound; every retained +completed job has its full phase-bearing normal form. A frame label is a +descriptor, not an extra uncharged operation on a nonzero residual. If logical +chart coordinates are used instead, their two-sided maps must be retained in +the same norm/route accounting. Dropping them is an invalid proof. + +The same conservative completed-child argument bounds any prefix or suffix +starting at an actual physical instruction boundary on arbitrary incoming +contents: it uses only allowances for the instructions present and at most P +completed children per node, rather than an intermediate exact-zero invariant. +The source18d outer allowance may be included on each side. Thus a deliberately +safe input-to-injected-error-to-output amplification is +`2^((4B_sem+36)*d)`. This also covers relative local errors after accounting +for the prefix input magnitude. It proves stability of the **changed** word, +without comparing a perturbed zero row to the old removed Gaussian job. + +For a stopped tree of depth D<=log2(e), per-component scalar/child error sites +have conservative count `J(e)<=(G+1)*(P+1)^(D+1)`. Exact address movement and +integer descriptor operations do not inject numerical error. For e>=1, +`log2 J(e) <= (G+2P+3)*e`. Consequently a per-site inherited absolute error +allocation, or relative error after the prefix factor, of at most +`2^(-p-C0*d)` has total outgoing error at most `2^-p`, because + +`C0 > 4B_sem+36+G+2P+3`. + +This last inequality is very loose: G=2 imply its right side +is below8B_sem+39, while `C0>=64B_sem^2` and B_sem>=64. Four exact boundary +probes in LIGHT-ARITHMETIC corroborate it; this algebra establishes its full +quantifier. Ordinary input rounding is propagated by the same prefix/suffix +bound. If the required external accuracy has additional polynomial/fixed +normalization factors, retain them and increase the fixed allocation constant +within this ample C0 margin, as prescribed by precision_tape; no exponent +change occurs. + +The selected source additionally permits exact internal dyadic arithmetic on +one fine grid, with no child rounding/compression at return. In that exact +subcase the preparations and exact child arithmetic preserve the exact zero +identities even on stored approximations to analytic inputs. That is a +source-supported special case, **not** the stability proof above and not a +license to substitute an approximate child with a different ABI. The inherited +precision/analytic error allocation itself remains conditional; no numeric +execution or unconditional theorem for it is claimed here. + +## 6. Ordinary complex and BIT stocks, including their product + +For the new full productive W define the source depth +`D(e)=0` for eordinary>admitted>tested` and `atom<1-ordinary`. Source covered BIT also +keeps one common weight throughout compilation, lowers only final rank-one +leaves and chooses odd prime `q>2^26*N_BIT^5` avoiding every fixed denominator +and rank witness. Those construction/prime/cover proofs are inherited; +their truth is not established by a favorable complex moment. + +The new BIT borrowed width has `w=ceil(e^.004)` and `O(w log e)` digits, with +its own fixed compiled dimensions/routes/centers substituted. **Using the old +.003 atom stock after adopting the .004 BIT conversion would be invalid.** +The retained old functional predicate involving .003 remains a separate +source check; it does not cover the stronger actual BIT stock. + +If both stocks are external and simultaneously required, reserve +`S_total >= S_complex*S_BIT` (and all additional distinct live stocks), never +their maximum. Equivalently sum their logarithms/chunk requirements. The +source support-local wrapper admits the conservative updated form + +`q_total(h,p) <= C_new*(log2 h + h^.004*(log2 p)^3 +1)`. + +The new W/P/O/R/N and the stronger BIT constants enter C_new. Since .004<1, +a new fixed/polylog threshold, e.g. a sufficiently enlarged multiple of +`[1024*C_new*(log2 p)^3]^(1/.996)`, makes +`q_total+O(1)<=h/64`; include the logarithmic term and every template/base +threshold in that enlargement. The actual functional predicate is +`beta*(1-.004)>0`, in addition to the retained three source functional checks. +Role04 recomputes all applicable predicates. Source complete front/back control +fields and row prefix are reserved before their selected kernels run; active +calls act as identity on those arbitrary spectator coordinates. Their kernels +are deferred to later shrinking phases. Each phase pads once and removes its +zero rows before the next phase, so padding never multiplies by two per depth. +All source support-local router/short-record/full-span alternatives and their +physical domains remain retained. No RAM gather or transformed stock reserve +is introduced by this relation preparation. + +## 7. Fixed tapes, setup and a new eventual threshold + +The F-fold gives a finite number of streams/banks/descriptors and a finite +list of binary movement/phase recipes. The source depth-first fixed-tape +execution parks unused role streams and all live parent banks, executes a +child to completion, restores adapters/ordering and resumes the parent. +Tape count is fixed by F, not by online input width or tensor multiplicity. +Descriptor preparation, phase evaluation, normalization and every bank scan +retain their source cost. The ordinary tree has at most P^D(d)=d^O(1) nodes; +fixed larger setup degrees remain polynomial. The retained superpolynomial +record fiber absorbs those fixed degrees only after a new eventual threshold +and with strict epsilon<1. Neither setup nor parking is zero-cost. + +For any selected rational epsilon=a/b in(0,1), normalized layer bound +`d<=c*p^epsilon` with fixed c>=1, let L be the binary bit length of +`4*C0*ceil(c)`, and set + +`t=max(4,ceil(b*L/(b-a))); p_grid=2^t`. + +Then for every p>=p_grid, `p^(1-epsilon)>4*C0*c`, and the new integer guard +`Delta=C0*d<=p/4`. A source signed component with p+Delta fractional bits +and Delta+3 magnitude/sign bits has width `p+2Delta+3<=2p`. This compressed +power-of-two description is effective; no such bit array is allocated. +The complete new eventual threshold is the maximum of p_grid, the stopping +condition `d^beta_stop>=2N`, new row-stock reserve threshold, all source +movement/record-reservation thresholds, prime/analytic thresholds, and new +fixed setup-polynomial absorption thresholds. Claiming old p0 suffices would +invalidate this specialization. The new constants affect these thresholds +and multipliers, while C1 and the retained exponents remain unchanged. + +## 8. Obligation map and falsifiers + +| Obligation | Evidence/classification | Precise falsifier or remaining dependency | +|---|---|---| +|Exact candidate/source|capsule-v1 plus proof supplement; source pinned|Changed head/word/proof hash invalidates affected coverage| +|RREF/preparation|fresh check_precision.py; proved finite arithmetic|A pivot on another RHS; nondyadic coefficient; omitted input clear; component row sum above accounted9| +|All 624 retained/17 owned inputs, frames and endpoint|role01 independent physical receipt; separate prerequisite|One omitted independent column, wrong COPY gauge/phase, nonzero ideal zero row, borrowed erase or nonzero owned return| +|Local scalar/routes|role02 literal INVOICE-v1; constructively_upper_bounded|Any omitted macro/lifetime, a recipe outside generic grammar, or route costing more than its1000unit reservation| +|Expanded W/P/O/R/G/N|new structural F-fold and explicit product overestimate above; constructively_upper_bounded|Substitution/batch/matcher record or suspended bank omitted; raw cap reused as expanded cap; owner's path aliased| +|Preparation/input range|fresh coefficient sums, source incoming-scale guard|Unit-input-only backend with no scaled interface, unaccounted input bit length, or dyadic divide outside allocated precision| +|Semantic prefix/denominator and C1|new E/B_sem/C0 recurrence from source generic theorem|Unfinished or re-encoded child return; coefficient/phase class not charged; parent resumes before complete restoration| +|Approximation through retag|actual changed physical-prefix/suffix argument|Runtime zero assertion, discarded residual, assumed cancellation of independent errors, or uncharged chart coordinate map| +|Ordinary complex stock|new W reserve, one-time padding and full endpoints|Transformed reserve coordinates before use, missing complete rows/spectators, extra padding per depth| +|Stronger ordinary BIT/stock|canonical query-thinned proof/RESULT; authenticated retained foundation|Use of .003 atom with .004 conversion, missing weight/prime/fallback, or maximum instead of stock product| +|Fixed tape/setup|source generic fixed F movement and parking prescription|Input-dependent tape family, unpriced gather, omitted parent banking or enlarged setup degree with no new threshold| +|Compiler and outer funding|role04 receipt; separate numerical gate|Unfunded completion/tail, uncovered rank/parameter domain, missing predicate, closed epsilon or uniform gap| +|Original physical/analytic theorem stack|exact same five retained assumptions|No unconditional assertion or machine-kernel discharge supplied here| + +No additional candidate-specific premise was needed to classify and bound the +new finite scalar/owned program. Full conditional admission still requires the +separate gates above and retains precisely `native_all_columns`, +`owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. This review +does not promote author PASS, publication, CI or raw rank savings to selected +status. It does not establish a practical runtime or materialize F. + +Ali Romman owns the eight-relation construction. Preserve Cao Yifan's final +PR4610 word, Cinna Davis's controller/helper and free-word lineage, zxv's +native/cache/compiler/precision work, Jacob Alan Sussman's mixed-target +recursion, Chris R / Clear1nsight's PR5241/#5384 independent admission, +Dugongue's physical interfaces, ToikY's tensor-lift lineage, all ordinary BIT +contributors and every retained source notice. New review by Chris R / +Clear1nsight with substantial OpenAI Codex assistance; no independent human +acceptance claimed. Sources and other workers' files remain unchanged. diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision.py b/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision.py new file mode 100644 index 0000000000..4673777c84 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 +"""Bounded independent scalar/preparation audit. No submitted modules execute. + +Ali Romman owns the construction. New review: Chris R / Clear1nsight with +substantial OpenAI Codex assistance. Apache-2.0; predecessor sources unchanged. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import gzip, json, time + +HERE=Path(__file__).resolve().parent +CAP=HERE.parent/'09-capsule-cold/capsule-v1' +PKG=CAP/'snapshot/research/kappa-joint-relations-20261023' + +def load(name): + p=PKG/name; b=p.read_bytes() + return json.loads(gzip.decompress(b) if name.endswith('.gz') else b) + +def ceil_log2(q): + q=Q(q); k=0 + while q>1: q/=2; k+=1 + return k + +def height(q,add): + assert q.denominator & (q.denominator-1)==0 + return ceil_log2(1+abs(q) if add else max(1,abs(q)))+q.denominator.bit_length()-1 + +def rref(relations): + cols=sorted({int(i) for r in relations for i,q in r['relation']}) + a=[[Q(dict(r['relation']).get(i,'0')) for i in cols] for r in relations] + rows=[]; piv=[]; row=0 + for j,c in enumerate(cols): + k=next((k for k in range(row,len(a)) if a[k][j]),None) + if k is None: continue + a[row],a[k]=a[k],a[row]; x=a[row][j]; a[row]=[v/x for v in a[row]] + for k in range(len(a)): + if k!=row: + x=a[k][j]; a[k]=[u-x*v for u,v in zip(a[k],a[row])] + piv.append(c); row+=1 + if row==len(a): break + assert row==8 + return piv,[{c:v for c,v in zip(cols,r) if v} for r in a] + +def scalar_audit(program): + # Scalar-only envelopes: each native/child operator's completed semantic + # growth is supplied separately by the reviewed recurrence. A coefficient + # charge is valid independently of cancellations and zero invariants. + count=Counter(); h=0; max_coeff=Q(0); max_den=1 + for e in program: + count[e[0]]+=1 + if e[0]!='scalar': continue + g=e[1]; op=g[0]; count['scalar_'+op]+=1 + if op in ('add','scale'): + q=Q(*g[3:]) if op=='add' else Q(*g[2:]) + max_coeff=max(max_coeff,abs(q)); max_den=max(max_den,q.denominator) + h+=height(q,op=='add') + return dict(events=dict(count),coefficient_height_upper=h, + max_abs_coefficient=str(max_coeff),max_scalar_denominator=max_den) + +def encode(x): + if isinstance(x,Q): return str(x) + if isinstance(x,dict): return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)): return list(map(encode,x)) + return x + +def main(): + start=time.monotonic(); w=load('WORD.json.gz'); witness=load('WITNESS.json') + piv,rows=rref(witness) + assert piv==[225,227,229,230,241,245,257,288] + declared={int(p):{int(i):Q(q) for i,q in r.items()} for p,r in w['relation_basis'].items()} + assert dict(zip(piv,rows))==declared + expected=[]; prep=[] + for p,r in zip(piv,rows): + assert r[p]==1 and not (set(r)&(set(piv)-{p})) + expected.append(['scalar',['clear',['L',p]],0]); mass=Q(0); hh=0 + for i,q in sorted(r.items()): + if i==p: continue + expected.append(['scalar',['add',['L',p],['L',i],(-q).numerator,q.denominator],0]) + mass+=abs(q); hh+=height(q,True) + prep.append(dict(pivot=p,add_count=len(r)-1,row_l1=mass, + prefix_l1_upper=mass,denominator=max(q.denominator for q in r.values()),height_upper=hh)) + assert w['programs']['backward'][:len(expected)]==expected + # Exact dirty owned entries are cleared before preparation; only nonpivots + # feed preparation. Input range is multiplied by <=9, not assumed unit. + assert max(p['row_l1'] for p in prep)==9 + assert max(p['denominator'] for p in prep)==2 + audits={d:scalar_audit(w['programs'][d]) for d in ('forward','backward')} + assert audits['backward']['events']['zero_retag']==8 + assert all(a['max_scalar_denominator']&(a['max_scalar_denominator']-1)==0 for a in audits.values()) + # Source polynomial domination and error-count margin, exact coefficients. + # S>=Z+N+P+G+1, E=64S^3, B=P+E, C0=32NB^2. + # The symbolic proof in REPORT establishes all sizes. These boundary probes + # corroborate the algebra rather than replacing its quantifiers. + probes=[] + for N,W,O,P,G in [(2,1,0,0,0),(2,1,17,1,1),(4,3,274,12,900),(57,2242,1,127570,1494376)]: + Z=W+O; E=64*(Z+N+P+G+1)**3; B=P+E; C0=32*N*B*B + guard=2*G*Z*Z+8*P+4*Z+4+32*N + # Prefix+suffix growth, outer18d at each side, and injection count. + error_cost=4*B+36+G+2*P+3 + assert E>guard and C0>error_cost + probes.append(dict(N=N,W=W,O=O,P=P,G=G,E=E,B=B,C0=C0,guard=guard,error_cost=error_cost)) + controls={ + 'nondyadic_third_rejected':(Q(1,3).denominator&(Q(1,3).denominator-1))!=0, + 'unit_input_preparation_bound_rejected':max(p['row_l1'] for p in prep)>1, + 'one_snapshot_bank_rejected':len(witness)>1, + 'old_three_backward_banks_rejected':1+2*len(piv)>3, + 'maximum_replaces_product_stock_rejected':3*5>max(3,5), + 'approximate_zero_not_exact':Q(1,1024)!=0, + } + assert all(controls.values()) + result=dict(schema=1,status='PASS_BOUNDED_PREPARATION_AND_SEMANTIC_ALGEBRA', + candidate_head='4bd6efa51a495a7c7b7754915cf0244e7e60969e', + capsule_manifest_sha256=sha256((CAP/'IMMUTABLE-MANIFEST.json').read_bytes()).hexdigest(), + source_files={n:sha256((PKG/n).read_bytes()).hexdigest() for n in ('WORD.json.gz','WITNESS.json','SOURCES.json')}, + pivots=piv,preparation=prep,preparation_events=len(expected),preparation_adds=sum(p['add_count'] for p in prep), + preparation_max_l1=9,preparation_max_denominator=2,preparation_input_magnitude_extra_bits=4, + local=audits,raw_full_owned_banks=16*17+2, + semantic_probes=probes,controls=controls,seconds=time.monotonic()-start, + scope='Independent light arithmetic and literal scalar grammar only; full physical identities, finite compiler arithmetic and cold replay are separate receipts.') + (HERE/'LIGHT-ARITHMETIC.json').write_text(json.dumps(encode(result),indent=2)+'\n') + print(json.dumps(dict(status=result['status'],preparation_adds=result['preparation_adds'],seconds=result['seconds']))) + +if __name__=='__main__': main() diff --git a/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision_5387.py b/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision_5387.py new file mode 100644 index 0000000000..c1798cc4f0 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/03-precision-stock/check_precision_5387.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +"""Fresh 5387 literal preparation audit; imports only our own pure arithmetic. + +Construction/refinement credit Dugongue and Ali Romman; review Chris R / +Clear1nsight, substantial OpenAI Codex assistance. Apache-2.0. +""" +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import gzip, json, time +import check_precision as independent + +HERE=Path(__file__).resolve().parent +CAP=HERE.parent/'09-capsule-cold/capsule-5387-v1' +PKG=CAP/'snapshot/research/eight-owned-relations' + +def main(): + start=time.monotonic() + w=json.loads(gzip.decompress((PKG/'WORD.json.gz').read_bytes())) + r=json.loads((PKG/'RELATIONS.json').read_bytes()) + piv,rows=independent.rref(r['sites']) + assert piv==[225,227,229,230,241,245,257,261] + declared=[{int(i):Q(q) for i,q in row.items()} for row in r['rows']] + assert piv==r['pivots'] and rows==declared + expected=[]; prep=[] + for p,row in zip(piv,rows): + assert not (set(row)&(set(piv)-{p})) + expected.append(['scalar',['clear',['L',p]],0]);mass=Q(0);hh=0 + for i,q in sorted(row.items()): + if i==p:continue + expected.append(['scalar',['add',['L',p],['L',i],(-q).numerator,q.denominator],0]) + mass+=abs(q);hh+=independent.height(q,True) + prep.append(dict(pivot=p,adds=len(row)-1,row_l1=str(mass),max_denominator=max(q.denominator for q in row.values()),height=hh)) + assert w['programs']['backward'][:len(expected)]==expected + audits={d:independent.scalar_audit(w['programs'][d]) for d in ('forward','backward')} + assert max(Q(p['row_l1']) for p in prep)==9 + assert max(p['max_denominator'] for p in prep)==2 + assert audits['backward']['events']['zero_retag']==8 + result=dict(schema=1,status='PASS_FRESH_5387_PREPARATION_AND_SCALAR_GRAMMAR', + candidate_head='b1ab650d36f59e5be682a813145b7c67e219e341', + capsule_manifest_sha256=sha256((CAP/'IMMUTABLE-MANIFEST.json').read_bytes()).hexdigest(), + files={n:sha256((PKG/n).read_bytes()).hexdigest() for n in ('WORD.json.gz','RELATIONS.json','SOURCES.json')}, + pivots=piv,preparation=prep,preparation_events=len(expected),preparation_adds=sum(x['adds'] for x in prep), + max_preparation_l1=9,max_preparation_denominator=2,input_magnitude_extra_bits=4, + local=audits,raw_full_local_owned_banks=274, + changed_owned_pivot={'removed':288,'added':261}, + changed_last_site=dict(source_role=r['sites'][-1]['role'],snapshot=r['sites'][-1]['snapshot'],zero=r['sites'][-1]['zeros']), + new_N='2^409549000000000000',new_G='fold over entire freshly prepared completed/split/compiled physical word; never reuse5383G', + seconds=time.monotonic()-start, + scope='No candidate evaluator imports. Exact physical endpoint and final funded arithmetic are separate gates; new N supplied only after role04 certification.') + (HERE/'LIGHT-ARITHMETIC-5387.json').write_text(json.dumps(result,indent=2)+'\n') + print(json.dumps(dict(status=result['status'],preparation_adds=result['preparation_adds'],seconds=result['seconds']))) + +if __name__=='__main__':main() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/5387-binding-controls-v1.json b/research/price-plane-independent-validation/frozen/04-exact-funding/5387-binding-controls-v1.json new file mode 100644 index 0000000000..bb8834acc7 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/5387-binding-controls-v1.json @@ -0,0 +1,25 @@ +{ + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "controls": { + "changed_literal_word": { + "reason": "source byte length mismatch", + "rejected": true + }, + "insufficient_reserve_1e_13": { + "reason": "normalized completion/rounding envelope >1", + "rejected": true + }, + "predecessor_reserve_1e_9": { + "reason": "alpha lower > 1-1e-9", + "rejected": true + }, + "unearned_128_rank9_productive_credit": { + "reason": "independent invoice SHA256 mismatch", + "rejected": true, + "scope": "Immutable independent literal census binding; fraud cannot borrow otherwise favorable moment." + } + }, + "funding_receipt_sha256": "5fc2ef7fb7c0d9cecebc14597f411d17091060bf30a0fb805cbc59ad3fcbd7bf", + "source_mutated_on_disk": false, + "status": "PASS_NEW_CANDIDATE_BINDING_AND_RESERVE_CONTROLS" +} diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v1.json b/research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v1.json new file mode 100644 index 0000000000..1dcbcfabdc --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/5387-receipt-v1.json @@ -0,0 +1,363 @@ +{ + "H": 409549000000000000, + "N": "2^409549000000000000", + "assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "binding_runner_sha256": "0bbbaa68e0f159a5c6b5e20a98d7f909c4109b1abe3fec13105a1710c6c40940", + "candidate": { + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "package": "research/eight-owned-relations", + "pr": 5387 + }, + "capacity": { + "eta": true, + "height_domain": true, + "height_success": true, + "initial_range": true, + "normalized_paid_upper": true, + "preceding_grid_fails": true, + "shifted_exits": true, + "split": true, + "tail_block": true, + "total_tails": true + }, + "completion_strict_slack": "97179323/1048576001073741824", + "config": { + "kappa": ".003026674765", + "model": "selected-mixed-target-p16-completion1024-v1", + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".003026674766", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": false, + "engine_sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6", + "eta": [ + "398982043199701467618173304032021261869941349801/2000000000000000000000000000000000000000000000000000000", + "1994910215998507338090866520160106309349706749007/10000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "01 #5387 literal preparation/order physical gate", + "03 #5387 new-N/G/O/stock/template applicability", + "09 serial registered replay/publication" + ], + "finite_template_gate_bound": false, + "gain_over_independent_5377": "864953/200000000000", + "gain_over_independent_5383": "2953/200000000000", + "gain_over_selected": "979793/200000000000", + "gap": "1/7000000000000", + "independent_invoice_bound": true, + "invoice": { + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992776, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158776, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/02-census/INVOICE-v2.json", + "producer_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "sha256": "2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e" + }, + "j": 58507, + "kappa": "605334953/200000000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "1048576000976562501/1048576001073741824", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "186662617/500000000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "1742999999999253/1750000000000000", + "fixed_halo_explicit_metadata_branch": "134750000000001/1750000000000", + "new_BIT_row_stock_sublinear_in_active_group": "6978999999997009/7000000000000000", + "new_semantic_group_guard": "3/7000000000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "74153531756489406638321/24500000000000000000000000", + "fused_gaussian": "74153531756468219914963/24500000000000000000000000", + "global_coordinate_router": "21186723359/7000000000000", + "group_bit_router": "148307063519936439829923/49000000000000000000000000", + "group_scans": "3499999999999/3500000000000", + "main_transform": "74153531752989406638321/24500000000000000000000000", + "microbox_face_corrections": "134750000000001/1750000000000", + "polynomial_products": "6999999999999/7000000000000", + "sparse_union_movement": "10027278531756489406638321/24500000000000000000000000" + }, + "minimum_functional_slack": "3/7000000000000", + "minimum_strict_slack": "1/70000000000000", + "parameters": { + "a": "21186723359/7000000000000", + "b": "132417021/43750000000", + "beta": "6999999999997/7000000000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "21186723361/7000000000000", + "d": "1/7000000000000", + "epsilon": "6999999999999/7000000000000", + "kappa": "605334953/200000000000", + "layout": "1/7000000000000", + "q": "10593361679/3500000000000", + "r0": "1/70000000000000", + "stop": "1/7000000000000", + "tested_saving": "1513337383/500000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "2613276641/7000000000000", + "actual_logarithmic_gamma_guard": "1/7000000000000", + "actual_logarithmic_group_guard": "2222721468252260593361679/12250000000000000000000000", + "alpha_logarithm_absorption": "1/70000000000000", + "boundary_algebraic_matrix_above_kappa": "13989406638321/24500000000000000000000000", + "cap_above_band": "10027278531752989406638321/24500000000000000000000000", + "cap_below_cell": "2222721468243510593361679/24500000000000000000000000", + "cap_below_phase_cell_power": "26722721468247010593361679/24500000000000000000000000", + "complex_above_effective": "1/7000000000000", + "complex_below_one_over_32": "1234770479/43750000000", + "complex_endpoint": "1/3500000000000", + "epsilon_below_one": "1/7000000000000", + "epsilon_positive": "6999999999999/7000000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "13968219914963/24500000000000000000000000", + "gaussian_above_main": "1739406638321/12250000000000000000000000", + "global_coordinate_router_above_kappa": "1/1750000000000", + "global_gamma_power_slack": "9/70000000000000", + "group_below_dimension": "1/3500000000000", + "group_bit_router_above_kappa": "34936439829923/49000000000000000000000000", + "group_gauge_power_slack": "2222721468252085593361679/12250000000000000000000000", + "group_key_fits_record": "1/3500000000000", + "group_positive": "6999999999997/7000000000000", + "group_scans_above_kappa": "6978813276643/7000000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647852172900418148631/500000000000000000000000", + "lambda_above_internal": "1/14000000000000", + "lambda_above_sigma": "3/14000000000000", + "lambda_above_tau": "1/14000000000000", + "lambda_prime_above_lambda": "1/14000000000000", + "lambda_prime_above_leaf": "87367582979/306250000000000000000000", + "leaf_saving_above_effective": "43617582979/306250000000000000000000", + "main_transform_above_kappa": "10489406638321/24500000000000000000000000", + "membership_arithmetic_fits_record": "1/7000000000000", + "microbox_face_corrections_above_kappa": "538978813276649/7000000000000", + "microbox_halo_volume": "553000000000003/7000000000000", + "new_complex_uniform_saving_above_b": "1/7000000000000", + "new_semantic_guard_with_C1_one": "1/7000000000000", + "polynomial_products_above_kappa": "1744703319161/1750000000000", + "positive_layout_slack": "1/7000000000000", + "q_below_effective": "1/7000000000000", + "q_below_internal": "1/7000000000000", + "q_below_leaf": "87367582979/306250000000000000000000", + "q_positive": "10593361679/3500000000000", + "short_record_fallback": "43617582979/43750000000", + "source_axis_superpolynomial": "1/7000000000000", + "sparse_union_movement_above_kappa": "9953125000013989406638321/24500000000000000000000000", + "stop_below_one": "6999999999999/7000000000000", + "stop_positive": "1/7000000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/7000000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/7000000000000", + "union_tag_work_per_visit_fits_record": "3/7000000000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "productive_count": 10800, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "4999999999989159635021447675151837385989982056264200957/5000000000000000000000000000000000000000000000000000000", + "2499999999994579817510723837575918692994991028132100627/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "9516524758420241055121054099441274566321399979606057113/10000000000000000000000000000000000000000000000000000000", + "4758262379210120527560527049720637283160699989803028721/5000000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "1913937133219951794742088096813821039053931495805136693/2000000000000000000000000000000000000000000000000000000", + "9569685666099758973710440484069105195269657479025684179/10000000000000000000000000000000000000000000000000000000" + ] + }, + "reserve": "1/1000000000000", + "reserve_strict_slack": "2920182489276162424081307005008971867899373/2500000000000000000000000000000000000000000000000000000", + "reserve_window": { + "both_strict": true, + "certified_alpha_strict_upper": "5420182489276162424081307005008971867899373/2500000000000000000000000000000000000000000000000000000", + "fixed_rounding_envelope_strict_lower": "1/1099511626752", + "insufficient_1e_13_reserve_rejected": true, + "predecessor_1e_9_reserve_rejected": true, + "scope": "For the fixed1024-fold power and4/2^32 rounding envelope only", + "source_reserve": "1/1000000000000" + }, + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".003026674766", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": true, + "engine_sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6", + "eta": [ + "398982043199701467618173304032021261869941349801/2000000000000000000000000000000000000000000000000000000", + "1994910215998507338090866520160106309349706749007/10000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "role09 serial registered normal/optimized replay and final publication preflight" + ], + "finite_template_gate_bound": true, + "funding_scope": "Actual changed compiler point independently funded for the freshly validated changed physical word, complete invoice and new-N expanded template, under exactly five selected assumptions.", + "gain_over_independent_5377": "864953/200000000000", + "gain_over_independent_5383": "2953/200000000000", + "gain_over_selected": "979793/200000000000", + "gap": "1/7000000000000", + "independent_invoice_bound": true, + "invoice": { + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992776, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158776, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/02-census/INVOICE-v2.json", + "producer_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "sha256": "2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e" + }, + "j": 58507, + "kappa": "605334953/200000000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "1048576000976562501/1048576001073741824", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "186662617/500000000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "1742999999999253/1750000000000000", + "fixed_halo_explicit_metadata_branch": "134750000000001/1750000000000", + "new_BIT_row_stock_sublinear_in_active_group": "6978999999997009/7000000000000000", + "new_semantic_group_guard": "3/7000000000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "74153531756489406638321/24500000000000000000000000", + "fused_gaussian": "74153531756468219914963/24500000000000000000000000", + "global_coordinate_router": "21186723359/7000000000000", + "group_bit_router": "148307063519936439829923/49000000000000000000000000", + "group_scans": "3499999999999/3500000000000", + "main_transform": "74153531752989406638321/24500000000000000000000000", + "microbox_face_corrections": "134750000000001/1750000000000", + "polynomial_products": "6999999999999/7000000000000", + "sparse_union_movement": "10027278531756489406638321/24500000000000000000000000" + }, + "minimum_functional_slack": "3/7000000000000", + "minimum_strict_slack": "1/70000000000000", + "parameters": { + "a": "21186723359/7000000000000", + "b": "132417021/43750000000", + "beta": "6999999999997/7000000000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "21186723361/7000000000000", + "d": "1/7000000000000", + "epsilon": "6999999999999/7000000000000", + "kappa": "605334953/200000000000", + "layout": "1/7000000000000", + "q": "10593361679/3500000000000", + "r0": "1/70000000000000", + "stop": "1/7000000000000", + "tested_saving": "1513337383/500000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "2613276641/7000000000000", + "actual_logarithmic_gamma_guard": "1/7000000000000", + "actual_logarithmic_group_guard": "2222721468252260593361679/12250000000000000000000000", + "alpha_logarithm_absorption": "1/70000000000000", + "boundary_algebraic_matrix_above_kappa": "13989406638321/24500000000000000000000000", + "cap_above_band": "10027278531752989406638321/24500000000000000000000000", + "cap_below_cell": "2222721468243510593361679/24500000000000000000000000", + "cap_below_phase_cell_power": "26722721468247010593361679/24500000000000000000000000", + "complex_above_effective": "1/7000000000000", + "complex_below_one_over_32": "1234770479/43750000000", + "complex_endpoint": "1/3500000000000", + "epsilon_below_one": "1/7000000000000", + "epsilon_positive": "6999999999999/7000000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "13968219914963/24500000000000000000000000", + "gaussian_above_main": "1739406638321/12250000000000000000000000", + "global_coordinate_router_above_kappa": "1/1750000000000", + "global_gamma_power_slack": "9/70000000000000", + "group_below_dimension": "1/3500000000000", + "group_bit_router_above_kappa": "34936439829923/49000000000000000000000000", + "group_gauge_power_slack": "2222721468252085593361679/12250000000000000000000000", + "group_key_fits_record": "1/3500000000000", + "group_positive": "6999999999997/7000000000000", + "group_scans_above_kappa": "6978813276643/7000000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647852172900418148631/500000000000000000000000", + "lambda_above_internal": "1/14000000000000", + "lambda_above_sigma": "3/14000000000000", + "lambda_above_tau": "1/14000000000000", + "lambda_prime_above_lambda": "1/14000000000000", + "lambda_prime_above_leaf": "87367582979/306250000000000000000000", + "leaf_saving_above_effective": "43617582979/306250000000000000000000", + "main_transform_above_kappa": "10489406638321/24500000000000000000000000", + "membership_arithmetic_fits_record": "1/7000000000000", + "microbox_face_corrections_above_kappa": "538978813276649/7000000000000", + "microbox_halo_volume": "553000000000003/7000000000000", + "new_complex_uniform_saving_above_b": "1/7000000000000", + "new_semantic_guard_with_C1_one": "1/7000000000000", + "polynomial_products_above_kappa": "1744703319161/1750000000000", + "positive_layout_slack": "1/7000000000000", + "q_below_effective": "1/7000000000000", + "q_below_internal": "1/7000000000000", + "q_below_leaf": "87367582979/306250000000000000000000", + "q_positive": "10593361679/3500000000000", + "short_record_fallback": "43617582979/43750000000", + "source_axis_superpolynomial": "1/7000000000000", + "sparse_union_movement_above_kappa": "9953125000013989406638321/24500000000000000000000000", + "stop_below_one": "6999999999999/7000000000000", + "stop_positive": "1/7000000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/7000000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/7000000000000", + "union_tag_work_per_visit_fits_record": "3/7000000000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "physical_gate": { + "fresh_all_column_review": true, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/01-physical/5387-fresh/PHYSICAL-RECEIPT.json", + "sha256": "a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd", + "status": "PASS_BOUNDED_FRESH_INDEPENDENT_PHYSICAL_5387_EIGHT_RELATIONS" + }, + "precision_stock_gate": { + "fresh_new_N_and_word": true, + "new_candidate_specific_assumptions": [], + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-5387-v1.json", + "sha256": "2e90da356fdf32ad35dfe9bd8f7c4567e12e4fdf4453595c09f6bc6370e6cee3", + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION" + }, + "productive_count": 10800, + "public_reviewable": false, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "4999999999989159635021447675151837385989982056264200957/5000000000000000000000000000000000000000000000000000000", + "2499999999994579817510723837575918692994991028132100627/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "9516524758420241055121054099441274566321399979606057113/10000000000000000000000000000000000000000000000000000000", + "4758262379210120527560527049720637283160699989803028721/5000000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "1913937133219951794742088096813821039053931495805136693/2000000000000000000000000000000000000000000000000000000", + "9569685666099758973710440484069105195269657479025684179/10000000000000000000000000000000000000000000000000000000" + ] + }, + "registered_cold_bound": false, + "reserve": "1/1000000000000", + "reserve_strict_slack": "2920182489276162424081307005008971867899373/2500000000000000000000000000000000000000000000000000000", + "reserve_window": { + "both_strict": true, + "certified_alpha_strict_upper": "5420182489276162424081307005008971867899373/2500000000000000000000000000000000000000000000000000000", + "fixed_rounding_envelope_strict_lower": "1/1099511626752", + "insufficient_1e_13_reserve_rejected": true, + "predecessor_1e_9_reserve_rejected": true, + "scope": "For the fixed1024-fold power and4/2^32 rounding envelope only", + "source_reserve": "1/1000000000000" + }, + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 1/[1024*(2^30-1)]`. The paid ratio simultaneously needs `rho < 1-alpha`. The new source choice `rho=10^-12` lies strictly inside the independently certified window in the table. The old `10^-9` reserve fails the new tested point's paid-ratio condition; `10^-13` fails the retained completion/rounding envelope. Both mutations are rejected. Consequently this result is an actual funded source-supported compiler point, rather than a more finely printed raw root. + +The same standalone engine independently checks the entire strict root bracket and global profile ceiling, original/completion tails, splitting inequality, shifted exits, complement η capacity, initial logarithmic range, integer height and adjacent failure. The exact integer test is `(7000000000000*j+1)^1000<2^j`. Its adjacent minimum is a minimum on this sufficient grid; no optimum over compilers or constructions is claimed. No broad parameter product or additional raw-root digits were searched. + +The current source predicate inventory remains exactly the independently checked endpoint source:45 direct strict names plus nine margin-derived strict names; three generic functional predicates plus actual stronger-BIT stock. All54+4 values are freshly recomputed at the new κ/gap parameters. The stronger-BIT atom is1/250, converted saving8590884599/2500000000000 and admitted saving17/5000. Both inherited generic `beta*997/1000` and actual stronger-BIT `beta*249/250` stock predicates are evaluated, and the physical expanded stock proof requires their actual simultaneous product with complex stock. + +## Fresh changed-word and expanded-template coverage + +#5387 owns L261 in place of L288; L288 again becomes a retained arbitrary independent output. The last snapshot is L256 after event11296, and its zero job is event17233, with true frame281. The fresh physical checker establishes sixteen unrestricted source identities, rank-eight relations, all624 retained independent plus17 arbitrary owned entry columns, exact gauges/endpoints/owned returns, unchanged phase-catalogue subset and all actual18 controller-call incidences. Seven actual-word mutations reject. This gate is independent of the price engine. + +The new preparation has64instructions, eight CLEARs and56ADDs. Its maximum coefficient row sum remains9M and dyadic denominator2, freshly derived. New backward scalar height is29193 and scalar tariff158776. No prepared-input unit-ball hypothesis is introduced. + +The new precision/stock review fixes the complete F' word at `N'=2^409549000000000000`, then prescribes fresh W'/P'/O'/R'/G' including all changed instructions, product/completion/split/batch/matcher factors and274 fresh full-local owned banks per raw occurrence, with all query/compiler/internal scratch banks in addition. It computes new E/B/C0, preserves C1=1, uses the stronger leaf-inclusive error bound `(G+N+2P+4)*d`, and derives new fixed-tape/stock/setup/eventual thresholds. It neither reuses #5383's expanded constants nor treats the raw181098496 allowance as an expanded cap. All source proof hashes and dependency hashes are rechecked in the closure join. + +The exact five retained assumptions are `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. There are no new candidate-specific assumptions. Source physical/analytic/precision foundations remain conditional. This worker does not materialize the enormous compiler word, prove an unconditional multiplication theorem, run Lean, conduct a registered author cold replay, publish or change the selected record. Registered normal/optimized replay and final source-history/publication preflight remain separate role09/root gates. + +## Reproduction and attribution + +Read-only replay: `timeout 60s python3 -B outputs/price-plane-swarm-20261024/04-exact-funding/reproduce_5387.py`. This reauthenticates all source blobs, exact commits, invoice and closure dependencies, then reruns independent exact arithmetic and compares the rational results. Expected runtime is about20seconds, memory limit500MiB; it does not write scientific inputs or receipts. Historical producer `bind_5387.py --invoice-sha256 2a65a5fd82be81c6dfee86a6a35f28a207d00903d973c32b59186a56d6695a0e` intentionally refuses to overwrite immutable receiptv1. + +Ali Romman owns the public eight-relation mechanism and admitted #5383 profile, following #5377. Dugongue's #5387 changes the last relation/pivot and implementation and certifies the smaller-reserve funded endpoint. Preserve Cao Yifan's #4610 word, Cinna Davis's controller/helper lineage, zxv's native/compiler/precision contributions, Jacob Alan Sussman's recursion, Chris R/Clear1nsight's independent #5241/#5384 admission, Dugongue/ToikY's physical/tensor-lift lineage and all source notices and BIT/analytic predecessors. This independent review used substantial OpenAI Codex assistance; no independent human acceptance is claimed. + +Read-only final #5387 reproduction completed successfully in20.047 seconds with `endpoint_funded=true`. Narrow actual-candidate source/credit/reserve controls are frozen in `5387-binding-controls-v1.json`, SHA256 `4f08d251098c8ff5b89a1ffb14bbe9e36d3fbb70c7db0570d2927da62f608645`; they reject new-word mutation,128 unearned rank-nine productive credits, old1e-9 reserve and insufficient1e-13 reserve without modifying any scientific input. diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/REPORT.md b/research/price-plane-independent-validation/frozen/04-exact-funding/REPORT.md new file mode 100644 index 0000000000..314357270d --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/REPORT.md @@ -0,0 +1,63 @@ +# Independent exact arithmetic and fixed-profile ceiling — PR5383 + +The independently reconstructed complete invoice passes the fixed source compiler and outer arithmetic at **κ = .00302666**, tested saving **.00302667**, exact head `4bd6efa51a495a7c7b7754915cf0244e7e60969e`. The final static receipt v3 binds the separate physical and fresh expanded precision/stock gates and has status **FUNDED_CONDITIONAL_INDEPENDENT_STATIC_ADMISSION**, with `endpoint_funded=true`. Registered normal/optimized replay and publication remain separate gates. No selected record or external state changes are made here. + +`receipt-v1.json` SHA256 is `fd195f406b6e8e11e29cad1a8d7c4ecf264ea5b968d19472a1ff4a2db0f4b112`. Its independent invoice SHA256 is `7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e`; capsule manifest SHA256 is `ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8`. The evaluator uses the census histograms, not the author's RESULT or arithmetic engine. An earlier `optimistic-screen-v1.json` is retained as explicitly model-only provenance and cannot be used as admission evidence. + +| Obligation | Independent exact result | +| --- | --- | +| Complete paid / productive count | 64,148 / 10,800 | +| Paid / productive rank mass | 237,982 / 238,734; surplus 752 | +| Strict raw root bracket | `(.00302667476807,.00302667476808)`, width `10^-14` | +| Fixed-profile monotonicity | derivative upper ≤ -195473.450610684 on `[0,.05]` | +| Remaining domain | moment upper ≤ -6820.155255095 on `[.05,1]` | +| Paid ratio α | approximately .9999999950169633876 | +| Reserve | `10^-9`, with strict α reserve slack > `3.9830366124*10^-9` | +| Original tail γ / completion tail δ | approximately .95696856409606 / .95165247326188, each strictly below .97 | +| Charged completion/rounding slack | `2145530521/2097154147483648`, approximately .00000102306762885 | +| Fixed compiler tuple | product1024; cutoff20; floor21; moment offset1/5; θ63/64; logarithmic power1000 | +| Uniform gap / saving | `1/700000000`; `.003026668571428571...` | +| Finite compiler height | `j=44836`, `H=31385200000000`, `N=2^H`; successful integer test and preceding grid rejection | +| Outer inventory | every one of 54 strict and four functional slacks positive; minimum strict `1/7000000000` | +| Ordinary BIT reuse | atom1/250; covered saving69/20000; converted saving8590884599/2500000000000; admitted17/5000 | +| Independently billed ordinary allowances | local scalar158744; conservative routes4834000; sum4992744<10^7; complete raw181098496<10^9 | +| Gain over selected #4610 | `.0000048842` | +| Gain over independently admitted #5377 | `.00000431` | + +## Arithmetic method and domains + +`exact_engine.py` imports only the Python standard library. Its rational enclosure code derives from our separately implemented prior #5377 audit: atanh logarithms with 60 terms and geometric remainder, positive 32-term exponential with explicit remainder and dyadic range reduction, and outward rounding to a `10^55` rational grid. All acceptance comparisons use exact fractions or integers. Floating-point arithmetic is used only for elapsed wall time; report decimals are explanatory renderings of certified rational bounds. + +The root enclosure is tested directly, with strictly positive lower-bound moment at the lower endpoint and strictly negative upper-bound moment at the upper endpoint. For the signed profile `a[r]=T[r]-P[r]`, the derivative is `-sum a[r]*log(r)*r^(1-c)`. Sixteen directed interval subdivisions prove it is negative on `[0,1/20]`; 128 further subdivisions prove the moment negative on `[1/20,1]`. Thus this **particular complete P/T profile** has one admissible crossing in `00`, `1000 log(step*x+1)-x log2` is strictly concave, equals zero at zero, has positive derivative there (`1000*step>log2`) and tends to minus infinity. It therefore has one positive crossing; the adjacent exact tests establish the minimum success on this specific sufficient grid. They do not establish optimality among compilers. + +## Source and transfer coverage + +`bind_and_check.py` rechecks all 36 capsule rows against SHA256, byte length and raw Git-blob digest, and both raw commit object IDs. It binds the exact independent invoice SHA, literal word/controller/source hashes, source-tested constants extracted from the AST without execution, and the capsule producer's authenticated raw ancestry report. It independently verifies that the current controller, endpoint ledger and ordinary-BIT source record have exactly the previously independently reviewed source hashes. Complete Git-tree/history provenance remains the capsule producer's responsibility. + +The 54 strict transfer values are independently transcribed and evaluated in `exact_engine.py`. `check_source_inventory.py` statically checks the exact current endpoint source inventory: 45 direct strict names plus nine margin-derived names; three inherited functional names plus the explicit stronger-BIT stock predicate, giving four. This is the current source interface's actual inventory, rather than treating “58” as universal. + +The stronger ordinary BIT record is reused at its authenticated source hash. This arithmetic check verifies the actual conversion formula and strict domain `atom > ordinary > admitted > tested` and `atom < 1-ordinary`. It separately evaluates the inherited generic row-stock predicate `beta*(997/1000)` and actual stronger-BIT stock predicate `beta*(249/250)`. The former does not replace the latter. Fresh expanded complex/BIT product-stock and fixed-tape applicability remain role03's separate gate. + +## Negative controls + +The exact ledger rejects old BIT saving .0027, a closed uniform gap, charging the tested saving as final κ, epsilon=1, missing layout and full-dimensional groups. Charged reserve controls reject an excessive `10^-8` reserve at this tested point, insufficient `10^-13` reserve for the completion/rounding envelope, and the power128 envelope. The adjacent preceding compiler grid and raw upper root endpoint are rejected. + +The source-binding layer rejects an altered source byte stream, an unsupported model, an unsupported cutoff tuple and an invoice with 128 unearned rank-nine productive outputs, because it no longer matches the frozen independent census SHA. This productive-credit control authenticates the census boundary; physical correctness of excluding those helpers is separately established by role01's actual word controls. + +## Scope and attribution + +The five conditional source assumptions remain `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. This worker runs no author module, native evaluator, Lean, full cold replay, or materialized enormous compiler word. The exact invoice, physical all-column word, expanded finite-template proof and registered replay are distinct evidence streams. Receipt v1 retains `endpoint_funded=false` as the earlier arithmetic-only evidence. Final receiptv3 binds physical receiptc8221d..., precision closure0a171a... (leaf-inclusive error addendum), the same invoice/capsule and all four canonical generic proof references. It checks no new candidate-specific assumptions, correct fresh N/C1 and stronger-BIT stock product, then sets `endpoint_funded=true`; it still makes no registered-cold or publication claim. + +Ali Romman owns #5383's eight-relation construction. Preserve Cao Yifan's #4610 word; Cinna Davis's controller/helper lineage; zxv's native/compiler/precision contributions; Jacob Alan Sussman's mixed-target recursion; Chris R/Clear1nsight's independent #5241/#5384 admission, and all source notices. This review used substantial OpenAI Codex assistance. + +Read-only reproduction: `timeout 60s python3 -B outputs/price-plane-swarm-20261024/04-exact-funding/reproduce.py`. This completed successfully in19.830 seconds, reauthenticated the capsule/invoice and compared every exact arithmetic result to the immutable receipt. It writes no source or receipt. `bind_and_check.py` is the historical producer; its output immutability guard intentionally rejects a second write to receiptv1. + +Final static closure: `receipt-v3.json` SHA256 `a5f48459f8500909a243462c2cd205c57f064fc76ef7082ba41c516fbd5a5794`. `close_5383_v3.py` performs hash and applicability-contract checks only; it preserves the exact numeric receiptv1 and its separately re-executed arithmetic. diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/bind_5387.py b/research/price-plane-independent-validation/frozen/04-exact-funding/bind_5387.py new file mode 100644 index 0000000000..80881967b0 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/bind_5387.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""Independent funded compiler-point successor audit; no author code imports.""" +from pathlib import Path +from hashlib import sha256,sha1 +from fractions import Fraction as Q +import ast,json,argparse,resource +from exact_engine import evaluate,MODEL,need +from bind_and_check import checked_bytes,SOURCE_IDENTICAL,fraction_assignments +H=Path(__file__).resolve().parent;W=H.parent +CAP=W/'09-capsule-cold/capsule-5387-v1' +HEAD='b1ab650d36f59e5be682a813145b7c67e219e341';BASE='1ec1119972c9aefe42525172d07b332fcff81cb4' +MANIFEST_SHA='b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594' +PACKAGE='research/eight-owned-relations' +def sha(p):return sha256(p.read_bytes()).hexdigest() +def read(p):return json.loads(p.read_bytes()) +def run(): + a=argparse.ArgumentParser();a.add_argument('--invoice-sha256',required=True);opt=a.parse_args() + resource.setrlimit(resource.RLIMIT_AS,(500*1024*1024,500*1024*1024)) + out=H/'5387-receipt-v1.json';need(not out.exists(),'immutable 5387 arithmetic receipt exists') + need(sha(CAP/'IMMUTABLE-MANIFEST.json')==MANIFEST_SHA,'5387 capsule mismatch') + m=read(CAP/'IMMUTABLE-MANIFEST.json');need((m['candidate_head'],m['canonical_main'],m['package'])==(HEAD,BASE,PACKAGE),'5387 pins mismatch') + for row in m['rows']:checked_bytes(row,(CAP/row['capsule_path']).read_bytes()) + for name,expected in SOURCE_IDENTICAL.items():need(sha(CAP/'snapshot'/name)==expected,'source certified formula changed '+name) + for name,expected in [('EXACT-COMMIT.raw',HEAD),('CANONICAL-COMMIT.raw',BASE)]: + b=(CAP/name).read_bytes();need(sha1(b'commit '+str(len(b)).encode()+b'\0'+b).hexdigest()==expected,'5387 raw commit mismatch') + ip=W/'02-census/INVOICE-v2.json';need(sha(ip)==opt.invoice_sha256,'5387 independent invoice hash mismatch');inv=read(ip) + need(inv['candidate']['head']==HEAD and inv['candidate']['module']==PACKAGE,'5387 invoice wrong candidate') + need(inv['capsule_manifest_sha256']==MANIFEST_SHA and inv['census_status']=='LITERAL_RANK_AND_SCALAR_CENSUS_READY','5387 invoice source/status mismatch') + for name,v in inv['input_hashes'].items():need(sha(CAP/'snapshot'/name)==v['sha256'],'5387 invoice input changed') + need(inv['ordinary']['classification']=='constructively_upper_bounded' and inv['ordinary']['unknown_charges_are_zero'] is False,'unsupported ordinary charges') + need(inv['ordinary']['local_units_upper']<10**7 and inv['ordinary']['raw_nonrecursive_units_upper']<10**9,'5387 ordinary cost fails') + need(inv['histograms']==read(W/'02-census/INVOICE-v1.json')['histograms'],'profile successor changed P/T') + pp=CAP/'snapshot'/PACKAGE/'price.py';typed=fraction_assignments(pp.read_bytes()) + need(typed['KAPPA']=='.003026674765' and typed['TESTED']=='.003026674766','5387 typed interface mismatch') + config={'model':MODEL,'tuple':{'power':1024,'cutoff':20,'floor':21,'tail_offset':'1/5','theta':'63/64','logarithm_power':1000},'kappa':typed['KAPPA'],'tested':typed['TESTED'],'reserve':'1/1000000000000','root_bracket':['.00302667476807','.00302667476808'],'ordinary_BIT':read(CAP/'snapshot/research/query-thinned-controllers/RESULT.json')['ordinary_BIT']} + r=evaluate(inv['histograms']['productive'],inv['histograms']['paid'],config) + need((r['H'],r['j'])==(409549000000000000,58507),'5387 independent compiler threshold mismatch') + alpha=tuple(map(Q,r['ratios']['alpha']));lower=Q(1,1024*(2**30-1));upper=1-alpha[1] + need(lower1-Q(1,10**9),'5387 predecessor reserve mutation accepted') + need(1/(1+1024*Q(1,10**13))+Q(4,2**32)>1,'5387 insufficient reserve accepted') + old=read(H/'receipt-v2.json') + need(old['endpoint_funded'] is True and old['targets']==r['targets'] and old['paid']==r['paid'],'5383 independent profile admission missing') + r.update(schema='independent-exact-funding/1',status='PASS_EXACT_FUNDING_ARITHMETIC_BOUND_TO_5387_INDEPENDENT_CENSUS',candidate={'pr':5387,'head':HEAD,'canonical_base':BASE,'package':PACKAGE},config=config,invoice={'path':str(ip),'sha256':sha(ip),'producer_status':inv['census_status'],'complete_bill_status':inv['complete_bill_status'],'ordinary':inv['ordinary']},source={'capsule_manifest_path':str(CAP/'IMMUTABLE-MANIFEST.json'),'capsule_manifest_sha256':MANIFEST_SHA,'authenticated_blob_rows':len(m['rows']),'source_identical_reuse':SOURCE_IDENTICAL,'price_sha256':sha(pp),'typed_price_constants':typed},same_profile_predecessor={'path':str(H/'receipt-v2.json'),'sha256':sha(H/'receipt-v2.json'),'P_T_identical':True,'word_identical':False,'credit':'Ali Romman #5383 independently admitted P/T profile; Dugongue #5387 preparation ordering and funded compiler-point successor'},reserve_window={'fixed_rounding_envelope_strict_lower':str(lower),'certified_alpha_strict_upper':str(upper),'source_reserve':config['reserve'],'both_strict':True,'predecessor_1e_9_reserve_rejected':True,'insufficient_1e_13_reserve_rejected':True,'scope':'For the fixed1024-fold power and4/2^32 rounding envelope only'},gain_over_independent_5383=str(Q(r['kappa'])-Q(old['kappa'])),independent_invoice_bound=True,source_capsule_bound=True,finite_template_gate_bound=False,endpoint_funded=False,engine_sha256=sha(H/'exact_engine.py'),binding_runner_sha256=sha(Path(__file__)),scientific_scope='Actual reserved compiler point passes exact arithmetic and complete literal census. Requires independent changed-word physical/preparation and fresh new-N expanded template gates before conditional admission.',external_gate_requirements=['01 #5387 literal preparation/order physical gate','03 #5387 new-N/G/O/stock/template applicability','09 serial registered replay/publication']) + raw=(json.dumps(r,indent=2,sort_keys=True)+'\n').encode();out.write_bytes(raw);out.chmod(0o444) + (H/'5387-receipt-v1.sha256').write_text(sha(out)+' 5387-receipt-v1.json\n') + print(json.dumps({'status':r['status'],'receipt_sha256':sha(out),'kappa':r['kappa'],'H':r['H'],'j':r['j'],'seconds':r['seconds'],'endpoint_funded':False})) +if __name__=='__main__':run() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/bind_and_check.py b/research/price-plane-independent-validation/frozen/04-exact-funding/bind_and_check.py new file mode 100644 index 0000000000..6c9ddcc0a0 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/bind_and_check.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +"""Bind independent arithmetic to peer census and source capsule; no author imports.""" +from pathlib import Path +from hashlib import sha256,sha1 +import ast,json,resource +from exact_engine import evaluate,MODEL,need +HERE=Path(__file__).resolve().parent +WAVE=HERE.parent +CAP=WAVE/'09-capsule-cold/capsule-v1' +MANIFEST_SHA='ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8' +HEAD='4bd6efa51a495a7c7b7754915cf0244e7e60969e' +INVOICE_SHA='7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e' +CANONICAL='1ec1119972c9aefe42525172d07b332fcff81cb4' +PACKAGE='research/kappa-joint-relations-20261023' +# Previously independently reviewed selected-source dependencies, rechecked live. +SOURCE_IDENTICAL={ +'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py':'d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15', +'research/query-thinned-controllers/RESULT.json':'6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f', +'research/joint-helper-lattice/CONTROLLER.json':'1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f'} +def digest(b):return sha256(b).hexdigest() +def read(p):return json.loads(p.read_bytes()) +def checked_bytes(row,data): + need(len(data)==row['bytes'],'source byte length mismatch') + need(digest(data)==row['sha256'],'source SHA256 mismatch') + need(sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest()==row['git_blob'],'source Git blob mismatch') +def authenticate_capsule(): + raw=(CAP/'IMMUTABLE-MANIFEST.json').read_bytes();need(digest(raw)==MANIFEST_SHA,'capsule manifest mismatch');m=json.loads(raw) + need((m['candidate_head'],m['canonical_main'],m['package'])==(HEAD,CANONICAL,PACKAGE),'source pin mismatch') + checked=[] + for row in m['rows']: + p=CAP/row['capsule_path'];need(p.is_relative_to(CAP),'capsule path escapes');checked_bytes(row,p.read_bytes());checked.append(row['capsule_path']) + for name,expected in SOURCE_IDENTICAL.items():need(digest((CAP/'snapshot'/name).read_bytes())==expected,'inherited source changed: '+name) + for name,kind,expected in [('EXACT-COMMIT.raw','commit',HEAD),('CANONICAL-COMMIT.raw','commit',CANONICAL)]: + b=(CAP/name).read_bytes();need(sha1(kind.encode()+b' '+str(len(b)).encode()+b'\0'+b).hexdigest()==expected,'raw commit changed') + need(all(r['candidate_ancestor_exit']==r['canonical_ancestor_exit']==0 for r in m['history']),'source ancestry producer failure') + return m,checked + +def fraction_assignments(price): + out={} + for n in ast.parse(price).body: + if isinstance(n,ast.Assign) and len(n.targets)==1 and isinstance(n.targets[0],ast.Name) and isinstance(n.value,ast.Call) and isinstance(n.value.func,ast.Name) and n.value.func.id=='Q' and len(n.value.args)==1 and isinstance(n.value.args[0],ast.Constant):out[n.targets[0].id]=n.value.args[0].value + return out + +def load_bound_invoice(expected_sha=None,raw=None): + path=WAVE/'02-census/INVOICE-v1.json';raw=path.read_bytes() if raw is None else raw + if expected_sha is not None:need(digest(raw)==expected_sha,'invoice immutable hash mismatch') + inv=json.loads(raw);need(inv['schema']=='independent-literal-invoice/1','unsupported invoice schema') + need(inv['candidate']['head']==HEAD and inv['candidate']['base']==CANONICAL,'invoice source/head mismatch') + need(inv['census_status']=='LITERAL_RANK_AND_SCALAR_CENSUS_READY','independent census not ready') + for name,v in inv['input_hashes'].items():need(digest((CAP/'snapshot'/name).read_bytes())==v['sha256'],'invoice/capsule bytes disagree') + need(inv['ordinary']['classification']=='constructively_upper_bounded' and inv['ordinary']['unknown_charges_are_zero'] is False,'unsupported ordinary invoice') + need(inv['ordinary']['local_units_upper']<10**7 and inv['ordinary']['raw_nonrecursive_units_upper']<10**9,'ordinary charge budget failed') + return inv,digest(raw) + +def run(): + resource.setrlimit(resource.RLIMIT_AS,(500*1024*1024,500*1024*1024)) + need(not (HERE/'receipt-v1.json').exists(),'immutable receipt already exists; use new version') + manifest,checked=authenticate_capsule();inv,invhash=load_bound_invoice(INVOICE_SHA) + pricep=CAP/'snapshot'/PACKAGE/'price.py';price=pricep.read_bytes();f=fraction_assignments(price) + need(f['KAPPA']=='.00302666' and f['TESTED']=='.00302667','typed source interface changed') + bit=read(CAP/'snapshot/research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + config={'model':MODEL,'tuple':{'power':1024,'cutoff':20,'floor':21,'tail_offset':'1/5','theta':'63/64','logarithm_power':1000},'kappa':f['KAPPA'],'tested':f['TESTED'],'reserve':'1/1000000000','root_bracket':['.00302667476807','.00302667476808'],'ordinary_BIT':bit} + T=inv['histograms']['productive'];P=inv['histograms']['paid'];r=evaluate(T,P,config) + need((r['paid_count'],r['productive_count'],r['rank_mass_surplus'])==(64148,10800,752),'independent census disagreement') + controls={} + mutant=read(WAVE/'02-census/INVOICE-v1.json');mutant['histograms']['productive']['9']+=128 + try:load_bound_invoice(invhash,json.dumps(mutant).encode()) + except ValueError as e:controls['unearned_productive_credit_hash_binding']=str(e) + else:raise ValueError('unearned productive credit accepted') + row=manifest['rows'][0];data=(CAP/row['capsule_path']).read_bytes() + try:checked_bytes(row,data+b'\n') + except ValueError as e:controls['source_mutation']=str(e) + else:raise ValueError('source mutation accepted') + try:evaluate(T,P,dict(config,model='unproved-model')) + except ValueError as e:controls['unsupported_model']=str(e) + else:raise ValueError('unsupported model accepted') + try:evaluate(T,P,dict(config,tuple=dict(config['tuple'],cutoff=22))) + except ValueError as e:controls['unsupported_parameter_domain']=str(e) + else:raise ValueError('unsupported tuple accepted') + r.update(schema='independent-exact-funding/1',status='PASS_EXACT_FUNDING_ARITHMETIC_BOUND_TO_INDEPENDENT_CENSUS',candidate={'pr':5383,'head':HEAD,'canonical_base':CANONICAL,'package':PACKAGE},invoice={'path':str(WAVE/'02-census/INVOICE-v1.json'),'sha256':invhash,'producer_status':inv['census_status'],'complete_bill_status':inv['complete_bill_status'],'ordinary':inv['ordinary']},source={'capsule_manifest_path':str(CAP/'IMMUTABLE-MANIFEST.json'),'capsule_manifest_sha256':MANIFEST_SHA,'authenticated_blob_rows':len(checked),'source_identical_reuse':SOURCE_IDENTICAL,'price_sha256':digest(price),'typed_price_constants':f,'ancestry_status':'independent capsule producer reports authenticated raw Git ancestry; consumer rechecked blob/commit bytes'},config=config,independent_invoice_bound=True,source_capsule_bound=True,finite_template_gate_bound=False,endpoint_funded=False,binding_controls=controls,engine_sha256=digest((HERE/'exact_engine.py').read_bytes()),binding_runner_sha256=digest(Path(__file__).read_bytes()),scientific_scope='Exact compiler/outer arithmetic funded at final rational κ, conditional on role01 physical and role03 fresh precision/stock/template gate. This receipt alone does not promote complete scientific admission or selected status.') + raw=(json.dumps(r,indent=2,sort_keys=True)+'\n').encode();(HERE/'receipt-v1.json').write_bytes(raw);(HERE/'receipt-v1.sha256').write_text(digest(raw)+' receipt-v1.json\n') + print(json.dumps({'receipt_sha256':digest(raw),'invoice_sha256':invhash,'status':r['status'],'kappa':r['kappa'],'seconds':r['seconds']})) +if __name__=='__main__':run() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/check_5387_bindings.py b/research/price-plane-independent-validation/frozen/04-exact-funding/check_5387_bindings.py new file mode 100644 index 0000000000..f8aa97fb07 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/check_5387_bindings.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +"""Narrow actual-source/census/reserve mutation controls; no numeric replay.""" +from pathlib import Path +from fractions import Fraction as Q +from hashlib import sha256 +import json +from exact_engine import need +from bind_and_check import checked_bytes +H=Path(__file__).resolve().parent;W=H.parent;CAP=W/'09-capsule-cold/capsule-5387-v1' +r=json.loads((H/'5387-receipt-v2.json').read_bytes());controls={} +inv=json.loads(Path(r['invoice']['path']).read_bytes());inv['histograms']['productive']['9']+=128 +try:need(sha256(json.dumps(inv).encode()).hexdigest()==r['invoice']['sha256'],'independent invoice SHA256 mismatch') +except ValueError as e:controls['unearned_128_rank9_productive_credit']={'rejected':True,'reason':str(e),'scope':'Immutable independent literal census binding; fraud cannot borrow otherwise favorable moment.'} +else:raise ValueError('unearned credit accepted') +m=json.loads((CAP/'IMMUTABLE-MANIFEST.json').read_bytes());row=next(x for x in m['rows'] if x['path']=='research/eight-owned-relations/WORD.json.gz' and x['binding']=='exact candidate head') +try:checked_bytes(row,(CAP/row['capsule_path']).read_bytes()+b'\0') +except ValueError as e:controls['changed_literal_word']={'rejected':True,'reason':str(e)} +else:raise ValueError('changed source accepted') +alpha=tuple(map(Q,r['ratios']['alpha']));need(alpha[0]>1-Q(1,10**9),'old reserve accepted');controls['predecessor_reserve_1e_9']={'rejected':True,'reason':'alpha lower > 1-1e-9'} +need(1/(1+1024*Q(1,10**13))+Q(4,2**32)>1,'insufficient reserve accepted');controls['insufficient_reserve_1e_13']={'rejected':True,'reason':'normalized completion/rounding envelope >1'} +need(all(x['rejected'] for x in controls.values()),'control missing') +a={'status':'PASS_NEW_CANDIDATE_BINDING_AND_RESERVE_CONTROLS','candidate_head':r['candidate']['head'],'funding_receipt_sha256':sha256((H/'5387-receipt-v2.json').read_bytes()).hexdigest(),'controls':controls,'source_mutated_on_disk':False} +out=H/'5387-binding-controls-v1.json';need(not out.exists(),'immutable control receipt exists');out.write_text(json.dumps(a,indent=2,sort_keys=True)+'\n');out.chmod(0o444);print(sha256(out.read_bytes()).hexdigest()) diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/check_source_inventory.py b/research/price-plane-independent-validation/frozen/04-exact-funding/check_source_inventory.py new file mode 100644 index 0000000000..0525cd8f79 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/check_source_inventory.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +"""Static inventory comparison only; never execute the source ledger.""" +from pathlib import Path +import ast,json,hashlib +H=Path(__file__).resolve().parent +cap=H.parent/'09-capsule-cold/capsule-v1' +p=cap/'snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py' +r=json.loads((H/'receipt-v1.json').read_bytes()) +node=next(n for n in ast.parse(p.read_bytes()).body if isinstance(n,ast.FunctionDef) and n.name=='ledger') +x={} +for n in node.body: + if isinstance(n,ast.Assign) and len(n.targets)==1 and isinstance(n.targets[0],ast.Name) and isinstance(n.value,ast.Dict):x[n.targets[0].id]=[k.value for k in n.value.keys] +strict=set(x['checks'])|{k+'_above_kappa' for k in x['margins']} +functional=set(x['functional'])|{'actual_new_BIT_stock_sublinear'} +assert strict==set(r['outer']['strict_checks']) +assert functional==set(r['outer']['functional_checks']) +a={'status':'PASS_STATIC_CURRENT_SOURCE_PREDICATE_INVENTORY','source_sha256':hashlib.sha256(p.read_bytes()).hexdigest(),'direct_strict_names':x['checks'],'margin_derived_strict_names':[k+'_above_kappa' for k in x['margins']],'source_functional_names':x['functional'],'typed_interface_added_functional':['actual_new_BIT_stock_sublinear'],'strict_count':len(strict),'functional_count':len(functional),'scope':'Checks key inventory. Values independently transcribed and recomputed in exact_engine.py. Same source applicability is external role03 obligation.'} +q=H/'source-inventory-v1.json' +assert not q.exists(),'immutable receipt exists' +q.write_text(json.dumps(a,indent=2,sort_keys=True)+'\n') +print(hashlib.sha256(q.read_bytes()).hexdigest()) diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383.py b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383.py new file mode 100644 index 0000000000..f4cc617cb4 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +"""Close peer physical/template gates without rerunning numerical arithmetic.""" +from pathlib import Path +import json,hashlib +from exact_engine import need,ASSUMPTIONS +from bind_and_check import authenticate_capsule,checked_bytes,HEAD,CANONICAL,MANIFEST_SHA +H=Path(__file__).resolve().parent;W=H.parent;ROOT=H.parents[2] +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def bound(p,expected):need(sha(p)==expected,'changed dependency '+str(p));return json.loads(p.read_bytes()) +def run(): + need(not (H/'receipt-v2.json').exists(),'immutable receipt-v2 already exists') + r=bound(H/'receipt-v1.json','fd195f406b6e8e11e29cad1a8d7c4ecf264ea5b968d19472a1ff4a2db0f4b112') + authenticate_capsule() + for file,key in [('exact_engine.py','engine_sha256'),('bind_and_check.py','binding_runner_sha256')]:need(sha(H/file)==r[key],'independent executable changed') + ph=W/'01-physical/PHYSICAL-RECEIPT.json';pr=bound(ph,'c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786') + cl=W/'03-precision-stock/CLOSURE-v1.json';cr=bound(cl,'f2082ec98cead48372f5e98bb4bccadfcb4c9ef51c15dae30fb595a41cd2d2e6') + need(pr['status']=='PASS_BOUNDED_INDEPENDENT_PHYSICAL_EIGHT_RELATIONS' and pr['candidate_head']==HEAD and pr['manifest_sha256']==MANIFEST_SHA,'physical gate mismatch') + need(cr['status']=='PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION','precision gate not complete') + need(cr['candidate']['head']==HEAD and cr['candidate']['canonical_base']==CANONICAL,'precision pin mismatch') + need(cr['candidate']['word_sha256']==pr['word_sha256'],'physical/template word mismatch') + need(cr['retained_assumptions']==ASSUMPTIONS and cr['new_candidate_specific_assumptions']==[],'premise change') + need(cr['expanded_constants']['N']==r['N'] and cr['expanded_constants']['C1']==1,'compiler/template constants mismatch') + need(cr['stock']['simultaneous_rule']=='product' and cr['stock']['ordinary_BIT_atom']==r['ordinary_BIT']['atom'],'strong BIT stock mismatch') + need(cr['expanded_constants']['old_raw_cap_used_as_expanded_cap'] is False,'old raw cap reused') + for path,expected in cr['dependencies_sha256'].items():need(sha(ROOT/path)==expected,'precision dependency changed '+path) + supplement=W/'09-capsule-cold/supplement-03-v1';sm=json.loads((supplement/'MANIFEST.json').read_bytes()) + for row in sm['rows']: + need(row['commit']==CANONICAL,'proof supplement floating pin');checked_bytes(row,(supplement/'snapshot'/row['path']).read_bytes()) + need(cr['source_proof_sha256'][row['path']]==row['sha256'],'proof dependency mismatch') + si=bound(H/'source-inventory-v1.json','fb5552da9096651bcf8cec614d6ef2c3c6429d33f089697eb9b57d3622b69aa4') + need(si['strict_count']==54 and si['functional_count']==4,'current inventory coverage mismatch') + dependencies={str(p):sha(p) for p in [H/'receipt-v1.json',ph,cl,H/'source-inventory-v1.json',supplement/'MANIFEST.json']} + r.update(status='FUNDED_CONDITIONAL_INDEPENDENT_STATIC_ADMISSION',endpoint_funded=True,finite_template_gate_bound=True,complete_bill_ready=True,arithmetic_receipt={'path':str(H/'receipt-v1.json'),'sha256':sha(H/'receipt-v1.json')},physical_gate={'path':str(ph),'sha256':sha(ph),'status':pr['status']},precision_stock_gate={'path':str(cl),'sha256':sha(cl),'status':cr['status'],'new_candidate_specific_assumptions':[]},source_predicate_inventory={'path':str(H/'source-inventory-v1.json'),'sha256':sha(H/'source-inventory-v1.json'),'strict':54,'functional':4},closure_dependencies_sha256=dependencies,closure_runner_sha256=sha(Path(__file__)),funding_scope='Independent static conditional admission of exact candidate and final rational endpoint, under exactly the five selected assumptions. Full registered cold/publication/source-history assembly remain separate.',registered_cold_bound=False,public_reviewable=False,selected=False,external_gate_requirements=['role09 serial registered normal/optimized replay and final publication preflight'],scientific_scope='The independent physical, complete-census, fresh expanded precision/stock/tape applicability and exact compiler/outer gates all pass for the same source-bound candidate. Retains exactly five source framework assumptions; no unconditional theorem or selected-record promotion.') + raw=(json.dumps(r,indent=2,sort_keys=True)+'\n').encode();out=H/'receipt-v2.json';out.write_bytes(raw);out.chmod(0o444) + (H/'receipt-v2.sha256').write_text(hashlib.sha256(raw).hexdigest()+' receipt-v2.json\n') + print(json.dumps({'status':r['status'],'receipt_sha256':sha(out),'endpoint_funded':True,'kappa':r['kappa']})) +if __name__=='__main__':run() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383_v3.py b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383_v3.py new file mode 100644 index 0000000000..9a2aec99fa --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5383_v3.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +"""Close peer physical/template gates without rerunning numerical arithmetic.""" +from pathlib import Path +import json,hashlib +from exact_engine import need,ASSUMPTIONS +from bind_and_check import authenticate_capsule,checked_bytes,HEAD,CANONICAL,MANIFEST_SHA +H=Path(__file__).resolve().parent;W=H.parent;ROOT=H.parents[2] +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def bound(p,expected):need(sha(p)==expected,'changed dependency '+str(p));return json.loads(p.read_bytes()) +def run(): + need(not (H/'receipt-v3.json').exists(),'immutable receipt-v3 already exists') + r=bound(H/'receipt-v1.json','fd195f406b6e8e11e29cad1a8d7c4ecf264ea5b968d19472a1ff4a2db0f4b112') + authenticate_capsule() + for file,key in [('exact_engine.py','engine_sha256'),('bind_and_check.py','binding_runner_sha256')]:need(sha(H/file)==r[key],'independent executable changed') + ph=W/'01-physical/PHYSICAL-RECEIPT.json';pr=bound(ph,'c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786') + cl=W/'03-precision-stock/CLOSURE-v2.json';cr=bound(cl,'0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b') + need(pr['status']=='PASS_BOUNDED_INDEPENDENT_PHYSICAL_EIGHT_RELATIONS' and pr['candidate_head']==HEAD and pr['manifest_sha256']==MANIFEST_SHA,'physical gate mismatch') + need(cr['status']=='PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION','precision gate not complete') + need(cr['candidate']['head']==HEAD and cr['candidate']['canonical_base']==CANONICAL,'precision pin mismatch') + need(cr['candidate']['word_sha256']==pr['word_sha256'],'physical/template word mismatch') + need(cr['retained_assumptions']==ASSUMPTIONS and cr['new_candidate_specific_assumptions']==[],'premise change') + need(cr['expanded_constants']['N']==r['N'] and cr['expanded_constants']['C1']==1,'compiler/template constants mismatch') + need(cr['stock']['simultaneous_rule']=='product' and cr['stock']['ordinary_BIT_atom']==r['ordinary_BIT']['atom'],'strong BIT stock mismatch') + need(cr['expanded_constants']['old_raw_cap_used_as_expanded_cap'] is False,'old raw cap reused') + need(cr['approximation']['error_site_log_bound']=='(G+N+2*P+4)*d','leaf-inclusive error bound missing') + for path,expected in cr['dependencies_sha256'].items():need(sha(ROOT/path)==expected,'precision dependency changed '+path) + supplement=W/'09-capsule-cold/supplement-03-v1';sm=json.loads((supplement/'MANIFEST.json').read_bytes()) + for row in sm['rows']: + need(row['commit']==CANONICAL,'proof supplement floating pin');checked_bytes(row,(supplement/'snapshot'/row['path']).read_bytes()) + need(cr['source_proof_sha256'][row['path']]==row['sha256'],'proof dependency mismatch') + si=bound(H/'source-inventory-v1.json','fb5552da9096651bcf8cec614d6ef2c3c6429d33f089697eb9b57d3622b69aa4') + need(si['strict_count']==54 and si['functional_count']==4,'current inventory coverage mismatch') + dependencies={str(p):sha(p) for p in [H/'receipt-v1.json',ph,cl,H/'source-inventory-v1.json',supplement/'MANIFEST.json']} + r.update(status='FUNDED_CONDITIONAL_INDEPENDENT_STATIC_ADMISSION',endpoint_funded=True,finite_template_gate_bound=True,complete_bill_ready=True,arithmetic_receipt={'path':str(H/'receipt-v1.json'),'sha256':sha(H/'receipt-v1.json')},physical_gate={'path':str(ph),'sha256':sha(ph),'status':pr['status']},precision_stock_gate={'path':str(cl),'sha256':sha(cl),'status':cr['status'],'new_candidate_specific_assumptions':[]},source_predicate_inventory={'path':str(H/'source-inventory-v1.json'),'sha256':sha(H/'source-inventory-v1.json'),'strict':54,'functional':4},closure_dependencies_sha256=dependencies,closure_runner_sha256=sha(Path(__file__)),supersedes={'path':str(H/'receipt-v2.json'),'sha256':sha(H/'receipt-v2.json'),'reason':'Strengthened role03 leaf-inclusive error-site count; same word/P/T/N/C0/funded endpoint, no new assumptions.'},funding_scope='Independent static conditional admission of exact candidate and final rational endpoint, under exactly the five selected assumptions. Full registered cold/publication/source-history assembly remain separate.',registered_cold_bound=False,public_reviewable=False,selected=False,external_gate_requirements=['role09 serial registered normal/optimized replay and final publication preflight'],scientific_scope='The independent physical, complete-census, fresh expanded precision/stock/tape applicability and exact compiler/outer gates all pass for the same source-bound candidate. Retains exactly five source framework assumptions; no unconditional theorem or selected-record promotion.') + raw=(json.dumps(r,indent=2,sort_keys=True)+'\n').encode();out=H/'receipt-v3.json';out.write_bytes(raw);out.chmod(0o444) + (H/'receipt-v3.sha256').write_text(hashlib.sha256(raw).hexdigest()+' receipt-v3.json\n') + print(json.dumps({'status':r['status'],'receipt_sha256':sha(out),'endpoint_funded':True,'kappa':r['kappa']})) +if __name__=='__main__':run() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/close_5387.py b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5387.py new file mode 100644 index 0000000000..54b3022814 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/close_5387.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +"""Join fresh #5387 physical/template gates to its independent funded arithmetic.""" +from pathlib import Path +from hashlib import sha256 +import json +from exact_engine import need,ASSUMPTIONS +from bind_and_check import checked_bytes +H=Path(__file__).resolve().parent;W=H.parent;ROOT=H.parents[2] +HEAD='b1ab650d36f59e5be682a813145b7c67e219e341';BASE='1ec1119972c9aefe42525172d07b332fcff81cb4' +CAP=W/'09-capsule-cold/capsule-5387-v1';MANIFEST='b0b7eaeef8895264f33e86d87c1bf63fba495d6ac2f50e1414ee3eae775a1594' +def sha(p):return sha256(p.read_bytes()).hexdigest() +def bound(p,h):need(sha(p)==h,'dependency changed '+str(p));return json.loads(p.read_bytes()) +def run(): + out=H/'5387-receipt-v2.json';need(not out.exists(),'immutable 5387 receipt-v2 exists') + r=bound(H/'5387-receipt-v1.json','f077be8f5f4543f0677ecb9ce7a1d31370e2dc04d58744519720384e3bd54585') + m=bound(CAP/'IMMUTABLE-MANIFEST.json',MANIFEST) + for row in m['rows']:checked_bytes(row,(CAP/row['capsule_path']).read_bytes()) + need(sha(H/'exact_engine.py')==r['engine_sha256'] and sha(H/'bind_5387.py')==r['binding_runner_sha256'],'frozen independent arithmetic executable changed') + ph=W/'01-physical/5387-fresh/PHYSICAL-RECEIPT.json';pr=bound(ph,'a0a76015ae99a4bbaaa188a718fac6ef2925aa19fa9224d9986a00bec27c16cd') + cl=W/'03-precision-stock/CLOSURE-5387-v1.json';cr=bound(cl,'2e90da356fdf32ad35dfe9bd8f7c4567e12e4fdf4453595c09f6bc6370e6cee3') + need(pr['status']=='PASS_BOUNDED_FRESH_INDEPENDENT_PHYSICAL_5387_EIGHT_RELATIONS' and pr['candidate_head']==HEAD and pr['manifest_sha256']==MANIFEST,'5387 fresh physical gate mismatch') + need(cr['status']=='PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION' and cr['candidate']['head']==HEAD and cr['candidate']['canonical_base']==BASE,'5387 fresh template gate mismatch') + need(pr['word_sha256']==cr['candidate']['word_sha256'] and pr['word_sha256']=='6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b','new physical/template word mismatch') + need(cr['retained_assumptions']==ASSUMPTIONS and cr['new_candidate_specific_assumptions']==[],'5387 premise change') + need(cr['expanded_constants']['N']==r['N'] and cr['expanded_constants']['C1']==1,'new compiler N/C1 mismatch') + need(cr['expanded_constants']['old_raw_cap_used_as_expanded_cap'] is False and cr['stock']['simultaneous_rule']=='product' and cr['stock']['ordinary_BIT_atom']==r['ordinary_BIT']['atom'],'new expanded-cap/stock product mismatch') + need(cr['approximation']['error_site_log_bound']=='(G+N+2*P+4)*d','leaf inclusive new-N error bound absent') + need(cr['changed_physical_inventory']['owned_added']==['L',261] and cr['changed_physical_inventory']['owned_removed']==['L',288] and cr['preparation']['changed_last_snapshot']['source_role']==['L',256],'changed relation/owner inventory not covered') + need(cr['ordinary']['local_upper']==r['invoice']['ordinary']['local_units_upper'] and cr['ordinary']['raw_global_upper']==r['invoice']['ordinary']['raw_nonrecursive_units_upper'],'ordinary tariff mismatch') + for path,h in cr['dependencies_sha256'].items():need(sha(ROOT/path)==h,'5387 closure dependency changed '+path) + generic=cr['base_generic_lemma'];need(sha(ROOT/generic['closure_5383_v2_path'])==generic['closure_5383_v2_sha256'],'base generic lemma changed') + supp=W/'09-capsule-cold/supplement-03-v1';sm=json.loads((supp/'MANIFEST.json').read_bytes()) + for row in sm['rows']:checked_bytes(row,(supp/'snapshot'/row['path']).read_bytes());need(cr['source_proof_sha256'][row['path']]==row['sha256'],'canonical proof source changed') + si=bound(H/'source-inventory-v1.json','fb5552da9096651bcf8cec614d6ef2c3c6429d33f089697eb9b57d3622b69aa4') + need(set(r['outer']['strict_checks'])==set(si['direct_strict_names'])|set(si['margin_derived_strict_names']),'new54 inventory changed') + need(set(r['outer']['functional_checks'])==set(si['source_functional_names'])|set(si['typed_interface_added_functional']),'new4 inventory changed') + predecessor=bound(H/'receipt-v3.json','a5f48459f8500909a243462c2cd205c57f064fc76ef7082ba41c516fbd5a5794');need(predecessor['endpoint_funded'] is True,'strong precursor gate absent') + r['same_profile_predecessor'].update(path=str(H/'receipt-v3.json'),sha256=sha(H/'receipt-v3.json'),credit='Ali Romman #5383 owns public eight-relation mechanism/P-T profile; Dugongue #5387 changes last relation/pivot/retained boundary and preparation and certifies the smaller-reserve funded compiler point') + deps={str(p):sha(p) for p in [H/'5387-receipt-v1.json',ph,cl,H/'source-inventory-v1.json',supp/'MANIFEST.json',H/'receipt-v3.json']} + r.update(status='FUNDED_CONDITIONAL_INDEPENDENT_STATIC_ADMISSION',endpoint_funded=True,finite_template_gate_bound=True,complete_bill_ready=True,arithmetic_receipt={'path':str(H/'5387-receipt-v1.json'),'sha256':sha(H/'5387-receipt-v1.json')},physical_gate={'path':str(ph),'sha256':sha(ph),'status':pr['status'],'fresh_all_column_review':True},precision_stock_gate={'path':str(cl),'sha256':sha(cl),'status':cr['status'],'new_candidate_specific_assumptions':[],'fresh_new_N_and_word':True},source_predicate_inventory={'path':str(H/'source-inventory-v1.json'),'sha256':sha(H/'source-inventory-v1.json'),'strict':54,'functional':4},closure_dependencies_sha256=deps,closure_runner_sha256=sha(Path(__file__)),funding_scope='Actual changed compiler point independently funded for the freshly validated changed physical word, complete invoice and new-N expanded template, under exactly five selected assumptions.',registered_cold_bound=False,public_reviewable=False,selected=False,external_gate_requirements=['role09 serial registered normal/optimized replay and final publication preflight'],scientific_scope='Fresh independent #5387 physical, complete-census, new-N precision/stock/tape applicability and exact compiler/outer gates pass for the same exact source-bound candidate. No physical endpoint transfers by histogram equality; exactly five source framework assumptions retained.') + raw=(json.dumps(r,indent=2,sort_keys=True)+'\n').encode();out.write_bytes(raw);out.chmod(0o444);(H/'5387-receipt-v2.sha256').write_text(sha(out)+' 5387-receipt-v2.json\n') + print(json.dumps({'status':r['status'],'receipt_sha256':sha(out),'endpoint_funded':True,'kappa':r['kappa']})) +if __name__=='__main__':run() diff --git a/research/price-plane-independent-validation/frozen/04-exact-funding/exact_engine.py b/research/price-plane-independent-validation/frozen/04-exact-funding/exact_engine.py new file mode 100644 index 0000000000..c9cf06b01f --- /dev/null +++ b/research/price-plane-independent-validation/frozen/04-exact-funding/exact_engine.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Standalone exact price arithmetic; no candidate/project modules imported. + +Directed atanh60/Taylor32 rational engine derived from our independent #5377 +review, with a separately transcribed selected #5241 outer ledger. Candidate +histograms must come from a separately authenticated independent census. +Predecessors: Ali Romman (construction); Cao Yifan; Cinna Davis; zxv; +Jacob Alan Sussman; Chris R/Clear1nsight. Substantial OpenAI Codex assistance. +""" +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import json, time +UNIT=10**55 +MODEL='selected-mixed-target-p16-completion1024-v1' +ASSUMPTIONS=['native_all_columns','owned_erasure','compiler','precision_tape','analytic_recovery'] +def need(v, why): + if not v: raise ValueError(why) +def down(x): return Q(x.numerator*UNIT//x.denominator,UNIT) +def up(x): return -down(-x) +def mul(a,b): + p=[x*y for x in a for y in b]; return down(min(p)),up(max(p)) +def divide(a,b): + need(b[0]>0,'nonpositive denominator interval');return mul(a,(1/b[1],1/b[0])) +def difference(a,b):return a[0]-b[1],a[1]-b[0] +def logsmall(x): + z=(x-1)/(x+1);need(0<=z<=Q(1,3),'logsmall outside [1,2]') + term=z;s=Q(0) + for j in range(60):s+=2*term/(2*j+1);term*=z*z + return down(s),up(s+2*term/(121*(1-z*z))) +@lru_cache(None) +def logint(n): + need(isinstance(n,int) and n>=1,'rank must be positive integer') + k=n.bit_length()-1;a,b=logsmall(Q(n,2**k));c,d=logsmall(Q(2));return a+k*c,b+k*d +def exponential(x): + if x<0: + a,b=exponential(-x);return down(1/b),up(1/a) + shift=0 + while x>Q(1,32):x/=2;shift+=1 + term=s=Q(1) + for j in range(1,33):term*=x/j;s+=term + a,b=down(s),up(s+term*x/33/(1-x/34)) + for _ in range(shift):a,b=down(a*a),up(b*b) + return a,b +@lru_cache(None) +def power(rank,exponent): + exponent=Q(exponent);l,h=logint(rank);l,h=sorted((l*exponent,h*exponent));return exponential(l)[0],exponential(h)[1] +def profile(p): + for k,v in p.items(): + need((type(k) is int or type(k) is str and k.isdigit()) and type(v) is int,'rank/count must be exact integers') + p={int(k):v for k,v in p.items()};need(all(k>0 and v>=0 for k,v in p.items()),'invalid rank/count');return {k:v for k,v in p.items() if v} +def moment(p,e):return tuple(sum((n*power(r,Q(e))[i] for r,n in p.items()),Q(0)) for i in (0,1)) +def ledger(p): + k,b,a,q,ep,be,r,st,la=(p[x] for x in ['kappa','b','a','q','epsilon','beta','r0','stop','layout']) + si,ta=1-b,1-a;it=ta+(1-st)*max(si-ta,Q(0));lf=si+st*(1-si) + lm=1-(q+a)/2;xi=ep*(1+q)-Q(3,32)+la;key=be+1-ep + m=dict(main_transform=ep*q,global_coordinate_router=a,fused_gaussian=1-ep+q*be,group_bit_router=1-ep+a*be,group_scans=1-ep+be,boundary_algebraic_matrix=Q(3,32)+xi-ep,sparse_union_movement=xi+Q(1,2)-ep,polynomial_products=ep,microbox_face_corrections=1-(ep+be+48-128+2)) + c=dict(actual_bit_above_effective=p['bit_saving']-a,complex_above_effective=b-a,q_positive=q,complex_endpoint=b-q,q_below_effective=a-q,stop_positive=st,stop_below_one=1-st,leaf_saving_above_effective=(1-st)*b-a,q_below_internal=1-it-q,q_below_leaf=1-lf-q,lambda_above_tau=lm-ta,lambda_above_sigma=lm-si,lambda_above_internal=lm-it,lambda_prime_above_lambda=1-q-lm,lambda_prime_above_leaf=1-q-lf,epsilon_positive=ep,epsilon_below_one=1-ep,cap_above_band=xi-Q(1,2),cap_below_cell=ep-xi,group_positive=be,group_below_dimension=ep-be,support_router_span=1-be,group_gauge_power_slack=1-(2*xi-2)-r-be,actual_logarithmic_group_guard=1-(2*xi-2)-be,global_gamma_power_slack=1-ep-r,actual_logarithmic_gamma_guard=1-ep,alpha_logarithm_absorption=r,group_key_fits_record=1-key,membership_arithmetic_fits_record=1-be-2*(1-ep),microbox_halo_volume=128-48-be,positive_layout_slack=la,short_record_fallback=ep-a,complex_below_one_over_32=Q(1,32)-b,strassen_integer_power_gap=Q(2**45-7**16),theta_positive_polynomial_power=Q(2),cap_below_phase_cell_power=2-xi,halo_covers_generic_inverse_radius=Q(5),union_tag_work_per_visit_fits_record=1-be,union_header_fits_record=1-be,source_axis_superpolynomial=1-ep,gaussian_above_main=m['fused_gaussian']-m['main_transform'],new_complex_uniform_saving_above_b=p['complex_uniform_saving']-b,improvement_over_user_baseline=k-Q('.001730970419199163702738'),new_semantic_guard_with_C1_one=1-ep,fine_prime_halo_umbrella=Q(7,2)) + c.update({n+'_above_kappa':v-k for n,v in m.items()}) + f=dict(new_semantic_group_guard=1-be,new_BIT_row_stock_sublinear_in_active_group=be*Q(997,1000),fixed_halo_explicit_metadata_branch=128-48-ep-be-1,actual_new_BIT_stock_sublinear=be*(1-p['bit_atom'])) + return m,c,f + +def enc(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):enc(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [enc(v) for v in x] + return x + +def evaluate(targets,paid,config): + """Exact arithmetic only. Caller must bind invoice and prove source applicability. + + Supports the one fixed, source-certified tuple only. It does not promote a + model/profile or generic precision argument to physical/funded admission. + """ + start=time.monotonic();T,P=profile(targets),profile(paid) + need(T and P and max(T)==145 and max(P)<=145,'OUTSIDE_PROVED_DOMAIN: ambient rank145') + need(config['model']==MODEL,'OUTSIDE_PROVED_DOMAIN: model') + need(config['tuple']=={'power':1024,'cutoff':20,'floor':21,'tail_offset':'1/5','theta':'63/64','logarithm_power':1000},'OUTSIDE_PROVED_DOMAIN: tuple') + k,s=Q(config['kappa']),Q(config['tested']);lo,hi=map(Q,config['root_bracket']);reserve=Q(config['reserve']);t=1-s + need(00>signs[1][1],'strict root bracket fails') + signed={r:T.get(r,0)-P.get(r,0) for r in T.keys()|P.keys()} + der=[];away=[] + for i in range(16): + a,b=Q(i,320),Q(i+1,320);lower=Q(0) + for r,n in signed.items(): + z=mul(power(r,1-b if n>0 else 1-a),logint(r));lower+=n*z[0 if n>0 else 1] + der.append(lower) + for i in range(128): + a,b=Q(1,20)+Q(19*i,2560),Q(1,20)+Q(19*(i+1),2560) + away.append(sum(n*power(r,1-a if n>0 else 1-b)[1 if n>0 else 0] for r,n in signed.items())) + need(min(der)>0 and max(away)<0,'fixed-profile ceiling not established') + target,payment=moment(T,t),moment(P,t) + ratios={'alpha':divide(payment,target),'gamma':divide(moment(P,t+Q(1,5)),mul(power(20,Q(1,5)),target)),'delta':divide((Q(sum(T.values())*21),)*2,mul(power(20,s),target))} + need(reserve>0 and ratios['alpha'][1]<1-reserve,'unfunded reserve') + need(t+Q(1,5)>=1,'tail moment outside source domain') + need(ratios['gamma'][1]theta**1000,'initial_range':power(145,1024*s)[1]<2**1000} + gap=(s-k)/7;need(gap.numerator==1,'non-unit grid not supported') + step=gap.denominator + def wins(j):return (step*j+1)**1000<2**j + left,right=1,2 + while not wins(right):left,right=right,2*right + while right-left>1: + j=(left+right)//2 + if wins(j):right=j + else:left=j + j=right;H=step*j + capacity.update(height_domain=H>8*1024,height_success=wins(j),preceding_grid_fails=not wins(j-1)) + need(all(capacity.values()),'compiler capacity failure') + bit=config['ordinary_BIT'];atom,after,admitted=map(Q,(bit['atom'],bit['after_cover'],bit['admitted'])) + ordinary=(1-atom)*after+atom*Q('.0000384599') + need(atom==Q('.004') and ordinary==Q(bit['ordinary_saving']) and atom>ordinary>admitted>s and atom<1-ordinary,'BIT conversion/stock domain fails') + params=dict(kappa=k,tested_saving=s,complex_uniform_saving=k+6*gap,b=k+5*gap,a=k+4*gap,q=k+3*gap,bit_saving=admitted,bit_atom=atom,epsilon=1-gap,beta=1-3*gap,r0=gap/10,stop=gap,layout=gap,d=gap) + margins,strict,functional=ledger(params) + need(len(strict)==54 and len(functional)==4 and min(strict.values())>0 and min(functional.values())>0,'outer predicate failure') + controls={} + for n,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('tested_as_final_endpoint',{'kappa':s}),('closed_epsilon',{'epsilon':Q(1)}),('missing_layout',{'layout':Q(0)}),('group_full_dimension',{'beta':params['epsilon']})]: + _,bad,func=ledger(dict(params,**patch));controls[n]=[x for x,v in (bad|func).items() if v<=0];need(controls[n],'mutation accepted: '+n) + controls['excess_reserve']=ratios['alpha'][0]>1-Q(1,10**8) + controls['insufficient_reserve_completion']=1/(1+1024*Q(1,10**13))+Q(4,2**32)>1 + controls['power128_tail_envelope']=1/(1+128*reserve)+4*Q(97,100)**128>1 + controls['preceding_grid_rejected']=not wins(j-1) + controls['raw_upper_has_negative_moment']=signs[1][1]<0 + need(all(controls.values()),'one arithmetic negative control failed') + return enc({'status':'PASS_INDEPENDENT_EXACT_ARITHMETIC_ONLY','model':MODEL,'targets':T,'paid':P,'productive_count':sum(T.values()),'paid_count':sum(P.values()),'rank_mass_surplus':sum(r*n for r,n in T.items())-sum(r*n for r,n in P.items()),'kappa':k,'tested':s,'root':{'bracket':[lo,hi],'width':hi-lo,'strict_signs':signs,'decreasing_domain':['0','1/20'],'derivative_upper':-min(der),'remaining_domain':['1/20','1'],'remaining_moment_upper':max(away),'scope':'necessary fixed-profile moment ceiling on 0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".00302667", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": false, + "eta": [ + "124684917452791589125245203260089438424003918009/625000000000000000000000000000000000000000000000000000", + "997479339622332713001961626080715507392031344073/5000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "independent literal physical gate", + "independent complete census/ordinary invoice", + "fresh finite-template precision/stock applicability", + "source provenance/capsule", + "registered cold replay before public admission" + ], + "finite_template_gate_bound": false, + "gain_over_independent_5377": "431/100000000", + "gain_over_selected": "24421/5000000000", + "gap": "1/700000000", + "independent_invoice_bound": false, + "invoice_origin": "Selected #4610 bill minus CLAIMED 128 H1,128 H8 paid and128 H9 targets. NOT independent #5383 census.", + "j": 44836, + "kappa": "151333/50000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "37333/100000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "minimum_functional_slack": "3/700000000", + "minimum_strict_slack": "1/7000000000", + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "productive_count": 10800, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "124999999377120423448407264770784526271108073345848461/125000000000000000000000000000000000000000000000000000", + "2499999987542408468968145295415690525422161466916969359/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "148695698947169346828010049475593062193494163573058667/156250000000000000000000000000000000000000000000000000", + "1903304946523767639398528633287591196076725293735151/2000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "2392421410240149979604481016952839715052225754318068781/2500000000000000000000000000000000000000000000000000000", + "1196210705120074989802240508476419857526112877159034479/1250000000000000000000000000000000000000000000000000000" + ] + }, + "reserve": "1/1000000000", + "reserve_strict_slack": "9957591531031854704584309474577838533083030641/2500000000000000000000000000000000000000000000000000000", + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".00302667", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": false, + "engine_sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6", + "eta": [ + "124684917452791589125245203260089438424003918009/625000000000000000000000000000000000000000000000000000", + "997479339622332713001961626080715507392031344073/5000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "independent literal physical gate", + "independent complete census/ordinary invoice", + "fresh finite-template precision/stock applicability", + "source provenance/capsule", + "registered cold replay before public admission" + ], + "finite_template_gate_bound": false, + "gain_over_independent_5377": "431/100000000", + "gain_over_selected": "24421/5000000000", + "gap": "1/700000000", + "independent_invoice_bound": true, + "invoice": { + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992744, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158744, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json", + "producer_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e" + }, + "j": 44836, + "kappa": "151333/50000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "37333/100000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "minimum_functional_slack": "3/700000000", + "minimum_strict_slack": "1/7000000000", + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "productive_count": 10800, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "124999999377120423448407264770784526271108073345848461/125000000000000000000000000000000000000000000000000000", + "2499999987542408468968145295415690525422161466916969359/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "148695698947169346828010049475593062193494163573058667/156250000000000000000000000000000000000000000000000000", + "1903304946523767639398528633287591196076725293735151/2000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "2392421410240149979604481016952839715052225754318068781/2500000000000000000000000000000000000000000000000000000", + "1196210705120074989802240508476419857526112877159034479/1250000000000000000000000000000000000000000000000000000" + ] + }, + "reserve": "1/1000000000", + "reserve_strict_slack": "9957591531031854704584309474577838533083030641/2500000000000000000000000000000000000000000000000000000", + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".00302667", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": true, + "engine_sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6", + "eta": [ + "124684917452791589125245203260089438424003918009/625000000000000000000000000000000000000000000000000000", + "997479339622332713001961626080715507392031344073/5000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "role09 serial registered normal/optimized replay and final publication preflight" + ], + "finite_template_gate_bound": true, + "funding_scope": "Independent static conditional admission of exact candidate and final rational endpoint, under exactly the five selected assumptions. Full registered cold/publication/source-history assembly remain separate.", + "gain_over_independent_5377": "431/100000000", + "gain_over_selected": "24421/5000000000", + "gap": "1/700000000", + "independent_invoice_bound": true, + "invoice": { + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992744, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158744, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json", + "producer_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e" + }, + "j": 44836, + "kappa": "151333/50000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "37333/100000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "minimum_functional_slack": "3/700000000", + "minimum_strict_slack": "1/7000000000", + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "physical_gate": { + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-RECEIPT.json", + "sha256": "c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786", + "status": "PASS_BOUNDED_INDEPENDENT_PHYSICAL_EIGHT_RELATIONS" + }, + "precision_stock_gate": { + "new_candidate_specific_assumptions": [], + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v1.json", + "sha256": "f2082ec98cead48372f5e98bb4bccadfcb4c9ef51c15dae30fb595a41cd2d2e6", + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION" + }, + "productive_count": 10800, + "public_reviewable": false, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "124999999377120423448407264770784526271108073345848461/125000000000000000000000000000000000000000000000000000", + "2499999987542408468968145295415690525422161466916969359/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "148695698947169346828010049475593062193494163573058667/156250000000000000000000000000000000000000000000000000", + "1903304946523767639398528633287591196076725293735151/2000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "2392421410240149979604481016952839715052225754318068781/2500000000000000000000000000000000000000000000000000000", + "1196210705120074989802240508476419857526112877159034479/1250000000000000000000000000000000000000000000000000000" + ] + }, + "registered_cold_bound": false, + "reserve": "1/1000000000", + "reserve_strict_slack": "9957591531031854704584309474577838533083030641/2500000000000000000000000000000000000000000000000000000", + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "reserve": "1/1000000000", + "root_bracket": [ + ".00302667476807", + ".00302667476808" + ], + "tested": ".00302667", + "tuple": { + "cutoff": 20, + "floor": 21, + "logarithm_power": 1000, + "power": 1024, + "tail_offset": "1/5", + "theta": "63/64" + } + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "excess_reserve": true, + "group_full_dimension": [ + "group_below_dimension", + "group_key_fits_record", + "membership_arithmetic_fits_record" + ], + "insufficient_reserve_completion": true, + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "power128_tail_envelope": true, + "preceding_grid_rejected": true, + "raw_upper_has_negative_moment": true, + "tested_as_final_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "endpoint_funded": true, + "engine_sha256": "695168b0ad8ce1e663869fb28c5463525ee0dd71266cdd4a00d88d5d49b939b6", + "eta": [ + "124684917452791589125245203260089438424003918009/625000000000000000000000000000000000000000000000000000", + "997479339622332713001961626080715507392031344073/5000000000000000000000000000000000000000000000000000000" + ], + "external_gate_requirements": [ + "role09 serial registered normal/optimized replay and final publication preflight" + ], + "finite_template_gate_bound": true, + "funding_scope": "Independent static conditional admission of exact candidate and final rational endpoint, under exactly the five selected assumptions. Full registered cold/publication/source-history assembly remain separate.", + "gain_over_independent_5377": "431/100000000", + "gain_over_selected": "24421/5000000000", + "gap": "1/700000000", + "independent_invoice_bound": true, + "invoice": { + "complete_bill_status": "PENDING_PHYSICAL_AND_EXPANDED_TEMPLATE_APPLICABILITY", + "ordinary": { + "classification": "constructively_upper_bounded", + "local_units_upper": 4992744, + "raw_global_budget": 1000000000, + "raw_nonrecursive_units_upper": 181098496, + "route_formula": { + "main_chart_groups": 448, + "max_paid": 3298, + "two_times_additional_owned_lifetimes": 32, + "two_times_max_helpers": 816, + "warp_groups": 240 + }, + "route_group_reservation": 4834, + "route_unit_multiplier": 1000, + "route_units_upper": 4834000, + "scalar_units_local_max": 158744, + "unit": "retained elementary scalar/movement/phase record; asymptotic physical primitive implementation domain remains conditional", + "unknown_charges_are_zero": false + }, + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/02-census/INVOICE-v1.json", + "producer_status": "LITERAL_RANK_AND_SCALAR_CENSUS_READY", + "sha256": "7c6dfe167dd83cc48b32743e6bcfa76e3420ccd5be997c935b02a99e3636f44e" + }, + "j": 44836, + "kappa": "151333/50000000", + "model": "selected-mixed-target-p16-completion1024-v1", + "no_candidate_code_imported": true, + "no_expanded_word_materialized": true, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "ordinary_BIT": { + "admitted": "17/5000", + "admitted_above_tested": "37333/100000000", + "after_cover": "69/20000", + "atom": "1/250", + "conversion_slack": "90884599/2500000000000", + "ordinary_saving": "8590884599/2500000000000", + "stock_slack": "2481409115401/2500000000000" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "functional_count": 4, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "minimum_functional_slack": "3/700000000", + "minimum_strict_slack": "1/7000000000", + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_atom": "1/250", + "bit_saving": "17/5000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + }, + "strict_count": 54 + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_count": 64148, + "physical_gate": { + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/01-physical/PHYSICAL-RECEIPT.json", + "sha256": "c8221df752b6a8ffb7b0a9a98c4c0c034310ef70a81db4c195624bdf5480a786", + "status": "PASS_BOUNDED_INDEPENDENT_PHYSICAL_EIGHT_RELATIONS" + }, + "precision_stock_gate": { + "new_candidate_specific_assumptions": [], + "path": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/price-plane-swarm-20261024/03-precision-stock/CLOSURE-v2.json", + "sha256": "0a171a3153304c1cf3bc2576ecf67e9489164401891723c4aa9865b770391e6b", + "status": "PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION" + }, + "productive_count": 10800, + "public_reviewable": false, + "rank_mass_surplus": 752, + "ratios": { + "alpha": [ + "124999999377120423448407264770784526271108073345848461/125000000000000000000000000000000000000000000000000000", + "2499999987542408468968145295415690525422161466916969359/2500000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "148695698947169346828010049475593062193494163573058667/156250000000000000000000000000000000000000000000000000", + "1903304946523767639398528633287591196076725293735151/2000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "2392421410240149979604481016952839715052225754318068781/2500000000000000000000000000000000000000000000000000000", + "1196210705120074989802240508476419857526112877159034479/1250000000000000000000000000000000000000000000000000000" + ] + }, + "registered_cold_bound": false, + "reserve": "1/1000000000", + "reserve_strict_slack": "9957591531031854704584309474577838533083030641/2500000000000000000000000000000000000000000000000000000", + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 1792786762 -0400 +committer Douglas R. Colkitt 1792786762 -0400 + +Admit conditional PR4610 frontier through independent PR5241 audit [skip ci] diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw new file mode 100644 index 0000000000..eb78fd6a03 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/EXACT-COMMIT.raw @@ -0,0 +1,6 @@ +tree 6d2b3a87d39cf33569d1b1f8a7d6177af59bd524 +parent 1ec1119972c9aefe42525172d07b332fcff81cb4 +author Dugongue <49054532+Dugongue@users.noreply.github.com> 1792789282 -0700 +committer Dugongue <49054532+Dugongue@users.noreply.github.com> 1792789282 -0700 + +Tighten conditional eight-relation kappa to 0.003026674765 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json new file mode 100644 index 0000000000..166353ef40 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/IMMUTABLE-MANIFEST.json @@ -0,0 +1,448 @@ +{ + "schema": 1, + "immutable_version": "capsule-5387-v1", + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "package": "research/eight-owned-relations", + "source_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "rows": [ + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "path": "docs/research/agent-task-catalog.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "bytes": 77545, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "bytes": 9907, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "bytes": 9107, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "path": "research/kappa-rebuild/complex/native_extensions.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "bytes": 12470, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "declared source pin" + }, + { + "capsule_path": "snapshot/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/PREDECESSOR-5383.json", + "path": "research/eight-owned-relations/PREDECESSOR-5383.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "bytes": 22334, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/PREDECESSOR.json", + "path": "research/eight-owned-relations/PREDECESSOR.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "193625791f182b71005f0f34c546db7b7c6dc226", + "sha256": "a0fc52a167d033225cf62fcf88ac635317059d3ce09de336f9f81008450381ef", + "bytes": 1524, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/README.md", + "path": "research/eight-owned-relations/README.md", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "17901a8af82a17135f8414fa592c63c65d85a785", + "sha256": "5d5f033c82a8ed8b7e9c3fe3d3f18f559f4f651bb11d0e6a2c916e244777fb99", + "bytes": 9358, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/RELATIONS.json", + "path": "research/eight-owned-relations/RELATIONS.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "f558b9ddd903badb2301944cb978824b32ad42f7", + "sha256": "bc9ba05595497f399da5e5a548b2d2c83696e539fa1257ab7e2cb49d438cd9dd", + "bytes": 8859, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/RESULT.json", + "path": "research/eight-owned-relations/RESULT.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "2e13818df03e9fd93b9e13ada8663646ec948572", + "sha256": "34ad456c1f98f7f8c361d63539ef26d75dad8ffb3444edf29652372acabf1aaf", + "bytes": 14772, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/SOURCES.json", + "path": "research/eight-owned-relations/SOURCES.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "71c57c8a90585da602b8df163d582e7c77949c00", + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3", + "bytes": 3665, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/TASK.json", + "path": "research/eight-owned-relations/TASK.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "8b9df431cc81487d1993dc1babb39dd466abfd59", + "sha256": "e3d0ee26c8b6a409be30b83aada3a2c3d1b332408a59307733f4299c940ff8b8", + "bytes": 5444, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/VERIFY.json", + "path": "research/eight-owned-relations/VERIFY.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "bytes": 1298, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/WORD.json.gz", + "path": "research/eight-owned-relations/WORD.json.gz", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "c62fcb59643f87919208100517a2fbc4b57cb7d7", + "sha256": "6412632c28e265597fb088087048091d81c19500fb28a0c9c9d2a48f61b8665b", + "bytes": 207423, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/native.py", + "path": "research/eight-owned-relations/native.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "86c10d2e1e9ee83c0d6927c50f3ab8995825d6aa", + "sha256": "21e616b991fdc3af414e5e390e9eb6bb93ba39a560e235d324f4bb303148c1e8", + "bytes": 16032, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/price.py", + "path": "research/eight-owned-relations/price.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "ffc2b0fdfcf2010a4ca0c4de58d87625932fd821", + "sha256": "3785b27e75d85116706ecaf9f7174132a72d00e1c28cea2cd4afada4ba30e44a", + "bytes": 13912, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/eight-owned-relations/verify.py", + "path": "research/eight-owned-relations/verify.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "3bcf8f5e05bbec9351c521addbd5593d805452cd", + "sha256": "d46b075109f4af659cc099801062fe34b9d714903edb1d2807c1bc75edac2757", + "bytes": 3747, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/scripts/check_research_commit.py", + "path": "scripts/check_research_commit.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0", + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "bytes": 7048, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/scripts/research_package.py", + "path": "scripts/research_package.py", + "source_commit": "b1ab650d36f59e5be682a813145b7c67e219e341", + "mode": "100644", + "kind": "blob", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9", + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "bytes": 50854, + "binding": "exact candidate head" + } + ], + "history": [ + { + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "candidate_ancestor_exit": 0, + "canonical_ancestor_exit": 0 + } + ], + "status": "SOURCE_BYTES_AUTHENTICATED_NO_MATHEMATICAL_REPLAY", + "git_closure": "not yet installed; scientific/provenance bytes are complete", + "command_manifest": { + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] + }, + "scope": "Read-only source preflight. No candidate module imported or executed." +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json new file mode 100644 index 0000000000..62c2e86db7 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/SOURCE-HISTORY.json @@ -0,0 +1,7 @@ +[ + { + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "candidate_ancestor_exit": 0, + "canonical_ancestor_exit": 0 + } +] diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json new file mode 100644 index 0000000000..f126dd2e2d --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json @@ -0,0 +1,1242 @@ +{ + "schema_version": 1, + "priority_revision": 7, + "priority_log": "docs/research/research-priority-log.md", + "assessed_on": "2026-10-20", + "status": "Research suggestions, not reservations or assertions that these questions are unclaimed. Check current main and live PRs.", + "tracks": [ + { + "id": "bit-mechanisms", + "weight": 20, + "tasks": [ + { + "id": "bit-helper-contract", + "question": "Can one precisely specified helper-mixing word satisfy a replacement for the inherited H2/K interface?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/r439-bsection-stars-seed01/README.md", + "research/r439-copy-path-sharing-barrier/README.md" + ], + "methods": [ + "Derive a replacement interface lemma and price its implementation.", + "Seek an exact dirty-input or chronological-cut counterexample to the proposed replacement." + ], + "acceptance_gate": "A full boundary contract and paid profile; unchanged scalar counts alone are insufficient. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/r439-bsection-stars-seed01/verify.py" + ], + "expected": "PASS_R439_BSECTION_STARS", + "inspect": "Compare the two false H2/K flags with the unchanged paid profile in its README.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write one replacement H2/K implication for a single helper-star operation, then try to falsify it on dirty inputs.", + "bottleneck_link": "A legitimate replacement could admit a cheaper bit circuit; scalar savings alone do not alter the selected moment.", + "allowed_variations": [ + "Choose one helper-star or quartet instance; narrow to one boundary implication." + ], + "scope_change_triggers": [ + "Changing only source count or scalar addition count without an interface argument." + ], + "overlap_terms": [ + "H2_D_frame0_targets_from_helpers", + "K_equals_D", + "helper-star" + ] + }, + { + "id": "bit-new-register-model", + "question": "Can an explicitly larger or nonabelian register model escape the scoped three-register obstruction?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/bit-three-register-lower-bound/README.md", + "certificates/selected-result.json", + "research/bit-gl3-mixed-targets-length10/README.md", + "docs/research/community-efficient1000-review.md" + ], + "methods": [ + "Construct the smallest exact identity in a newly specified legal operation alphabet.", + "Derive a target-specific relaxation bound for that same explicit alphabet." + ], + "acceptance_gate": "Name the changed hypothesis, all counted roles and a uniform identity; finite column tests alone do not certify it. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read Model section 1 of the three-register bound and identify the exact excluded free operations.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "First compare the alphabet, role count and length with the fully replayed #1974 census and #2027 mixed-root tariff. Identify a changed premise and a legal native implementation; then price one smallest completed instance before searching larger words.", + "bottleneck_link": "A small-width completed saving changes the bit primitive; a finite-address identity alone is insufficient.", + "allowed_variations": [ + "Choose a fixed larger register count or a specified nonabelian operation family." + ], + "scope_change_triggers": [ + "Remaining inside the already-excluded three-register abelian model.", + "Repeating the two-register GL3 census or a covered three-register length without changing a hypothesis; a formal group-algebra word without native conversion is a partial result." + ], + "overlap_terms": [ + "three-register", + "nonabelian", + "group algebra" + ] + }, + { + "id": "r437-carrier-integration", + "question": "Can the paid R437 two-window carrier improvement be admitted by the actual pooled compiler and physical caller?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/r437-two-window-carrier/README.md", + "research/r437-reverse-row-coefficient/README.md" + ], + "methods": [ + "Close one compiler/request, caller or precision/stock implication for the pinned paid exchange.", + "Falsify that exact interface with an arbitrary-dirty-state or chronology counterexample." + ], + "acceptance_gate": "Pin the complete source and destination contracts, exact paid and scalar deltas, and all remaining assumptions. A local moment gain is not a physical or all-size supplier admission.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4067 paid profile and open integration obligations; #4147 covers the reverse row coefficient. Three additional ADDs per call and all helpers remain charged. This is not a selected supplier.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Choose one unclaimed obligation: pooled compiler codebook/request alignment, actual physical caller, or precision/stock envelope using the already reported reverse coefficient. Pin the input and receiver, preserve dirty/source windows, and test one binding with a rejection control. Stop at unresolved dependencies; do not rederive the coefficient or quote the local moment as a completed bound.", + "bottleneck_link": "The exchange changes the paid profile; integration must establish that its gain survives the complete caller.", + "allowed_variations": [ + "One compiler rebind, one actual caller boundary, or one precision/stock implication." + ], + "scope_change_triggers": [ + "Ignoring added ADDs, retaining an obsolete reverse coefficient, or declaring global admission from the local histogram." + ], + "overlap_terms": [ + "R437", + "two-window carrier", + "4067", + "4147", + "pooled compiler", + "request alignment", + "reverse row coefficient" + ], + "existing_checks": [ + { + "scope": "PR #4067: source-bound two-window carrier with (2,2) to (1,3) paid exchange and fixed OQ4 host.", + "evidence": "research/r437-two-window-carrier/README.md", + "remaining": "Pooled compiler/request rebind, physical caller and precision/stock admission.", + "status": "author-checked", + "source_commit": "a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4147: reverse row coefficient follow-up.", + "evidence": "research/r437-reverse-row-coefficient/README.md", + "remaining": "Use the exact coefficient in a caller-bound precision/stock proof rather than repeat the arithmetic.", + "status": "author-checked", + "source_commit": "72e7bb797adf82aeb525a399f56ab8adbab8e93c", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + }, + { + "id": "complex-mechanisms", + "weight": 20, + "tasks": [ + { + "id": "p104-side-correction", + "question": "Can a changed P104 producer/consumer contract escape the scoped slot, chart and completion obstructions with a favorable full bill?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/p104-literal-slot-defect/README.md", + "research/p104-uniform-commutation-gap/README.md", + "research/p104-uniform-encoding-gap/README.md", + "research/p104-source-chart-shortcut/README.md", + "research/p104-fiber-tag-seam/README.md" + ], + "methods": [ + "Construct one side-correction word at an explicit chronological cut with the needed frames still available.", + "Derive a lower bound on the side correction and hosting costs that decides whether this channel can beat the selected budget." + ], + "acceptance_gate": "An exact arbitrary-input identity, source/target frame availability and restoration at the chosen cut, plus the complete channel+correction+idle/hosting bill or an explicit favorable bound. The native channel alone is not a supplier. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the named successor obstructions before extending #2981 static flags. Distinguish literal-slot action, commutation, uniform encoding, source-chart shortcut and fiber-tag seam scopes; none excludes all P104 mechanisms.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Name one hypothesis changed from these exact interfaces. Write a literal producer-to-consumer timeline and an arbitrary-dirty-input positive/control pair, then charge acquisition, coefficients, completion, hosting and restoration. Stop if the same slot/fiber mismatch persists or the favorable full budget already fails. A scoped independent audit remains useful; another static count is not a new completion.", + "bottleneck_link": "Completing an already realized changed channel tests a concrete construction opportunity, instead of refining the incumbent packing. A positive local result still needs global and all-size admission.", + "allowed_variations": [ + "One correction factorization, one chronological cut, or one explicit hosting obstruction.", + "A changed correction schedule with an updated full bill and native frame contract." + ], + "scope_change_triggers": [ + "Recompiling the already certified low-rank channel without closing a new obligation.", + "Treating a pending ancestor, local histogram or unpriced side correction as an admitted global supplier.", + "Repeating a correction or physical conversion already supplied by a pending follow-up without adding independent coverage or a different unresolved obligation.", + "Repeating the 208-flag static matching or calling a static nested cover a chronological correction program. Independent audit of that certificate is distinct and remains useful.", + "Repeating a static cover, source-chart shortcut or fiber-tag seam without changing the hypothesis responsible for its obstruction." + ], + "overlap_terms": [ + "P104", + "I-G/2", + "side correction", + "native channel", + "1972", + "1991", + "2586", + "endpoint transport", + "physical dual", + "relay composition", + "2981", + "joint unit flags", + "acquisition delivery", + "static nesting", + "4133", + "4136", + "4140", + "4153", + "4154", + "p104-literal-slot-defect", + "p104-uniform-commutation-gap", + "p104-uniform-encoding-gap", + "p104-source-chart-shortcut", + "p104-fiber-tag-seam" + ], + "existing_checks": [ + { + "scope": "PR #4133: literal-slot defect", + "evidence": "research/p104-literal-slot-defect/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "88666f1dee93fbd85b31fd5d6f91a219e111b5f4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4136: uniform commutation gap", + "evidence": "research/p104-uniform-commutation-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "281ce601a8be9db470de630759179c23e1dfaa88", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4140: uniform encoding gap", + "evidence": "research/p104-uniform-encoding-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "de25c6525aa866962309df5d107b32d55e6e5628", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4153: source-chart shortcut exhausts its optimistic allowance", + "evidence": "research/p104-source-chart-shortcut/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "9123241fea53df77e51ffe30d9aca1625d4bf3a8", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4154: fiber-tag seam mismatch", + "evidence": "research/p104-fiber-tag-seam/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "4ffcdaee5d6255a9cea1fe53a5424435068089d0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "complex-rank-shape-decoder", + "question": "Can a decoder deliver the local paid mass in fewer, larger-rank children (block frame climbs instead of rank-1 to rank-3 steps)?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/complex-decoder-field-extension-seed44/README.md", + "research/complex-frame-pair-decoders/README.md", + "research/selected-k8-unrestricted-ends/README.md", + "research/eisenstein-reduction-copy-floor/README.md" + ], + "methods": [ + "Find one exact small decoding identity whose frame path climbs in blocks, and price its complete per-call profile.", + "Bound the best effective child rank achievable for one fixed support alphabet, including copies, frames and restoration." + ], + "acceptance_gate": "A per-call local profile, with all copied information, frames and restoration counted, whose ceiling exceeds the selected word's by at least 5%; masked or overcomplete supports must change an assumption of the eight-term all-pairs bound. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin. Ideal budget: rank-16 delivery is 2.31x (levers.py).", + "bottleneck_link": "Rank-1 children are about half of recursive cost; the selected word's effective child rank is about 3.9. Larger-rank delivery lowers recursive cost per unit of paid mass.", + "allowed_variations": [ + "One masked, overcomplete or block decoder family with exact labels and supports.", + "A scoped lower bound on effective rank for one alphabet.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Repacking idle remainders of an unchanged word (covered by the packing ceiling).", + "Repeating the eight-term all-pairs search inside its proved scope.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Searching below C=40 in the #2017 Eisenstein binary scalar-rectangle or fixed-support block-linear additive pairing model; specify a changed premise instead. This bound does not cover every complex decoder.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "rank shape", + "block climb", + "masked decoder", + "overcomplete", + "effective rank" + ] + }, + { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + } + ] + }, + { + "id": "recursive-interfaces", + "weight": 20, + "tasks": [ + { + "id": "joint-query-controller", + "question": "Can the installed QQ16 caller win a complete matched protocol bill, or can a changed demand eliminate actual paid work?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/qq16-caller-install/README.md" + ], + "methods": [ + "Derive the matched whole-caller physical bill for installed and baseline protocols.", + "Change the actual demanded observations and prove a cheaper legal producer/consumer contract." + ], + "acceptance_gate": "Name the changed premise of the fixed F0/B1 observation obstruction. Show exactly which query is recovered, legal native reads and restoration, and a full favorable budget including cover maps, helpers and endpoints. Local inverse identities alone do not close the global controller. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4166 COST.md and ADMISSION.json. An actual caller connection is now proposed. Its native-component profile loses; parent park/restore versus external-call costs remain unresolved. Retain the producer and recovery lineage rather than rebuild it.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "At the actual installed cut, compare matched complete parent park/restore and external input/return protocols at the same bank/packet geometry, including every later root call and service cost. Alternatively pin both bridge observations and derive a genuinely smaller source-compatible demand. Stop if the complete necessary inequality fails or an essential cost is unknown; no larger decoder scan from a local tape-action saving.", + "bottleneck_link": "The native local words exist; retained query information and its physical access are the missing link to a composed recursive interface.", + "allowed_variations": [ + "One paid query, one changed first pair, or one precisely specified affine helper state.", + "A counterexample or lower bound for that exact proposed repair.", + "One unresolved obligation of a newer local decoder, with exact source heads and a distinct claim/domain." + ], + "scope_change_triggers": [ + "Retaining the fixed first pair and ordinary schedule while allowing only homogeneous selected-only control, already excluded by the witness.", + "Treating cover-map counts as zero-cost physical address operations.", + "Recreating the pending complete local decoder or early-record/output-bank coalescing already under investigation without a distinct audit or changed premise.", + "Treating a completed-output defect inequality as a producer-interior, dirty-range or physical-cost certificate.", + "Recreating completed-output recovery or caller wiring already supplied by #4166 without new independent coverage.", + "Dropping retained later root calls or claiming native-profile dominance from the isolated publication saving." + ], + "overlap_terms": [ + "QQ16", + "joint-query", + "changing-chart controller", + "selected observation", + "1969", + "2540", + "early record", + "output-bank retention", + "complete native decoder", + "2965", + "producer defect", + "dirty-helper range", + "F17 consumer", + "4166", + "qq16-caller-install" + ], + "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" + } + ] + }, + { + "id": "centre-path-sharing", + "question": "Can the 64-per-call centre path (eight rank-8 COPY/ERASE totals through the private temporary) be shared across calls or shrunk?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/split-centres-global/proofs/PR386-BIT-GEOMETRY.txt", + "certificates/selected-result.json" + ], + "methods": [ + "Derive a fully charged favorable relaxation for sharing one centre path across k calls, including restoration, hosting and precision.", + "Prove a lower bound on copied information per call for the selected decoder contract." + ], + "acceptance_gate": "Show the changed centre charge and copy profile per call with every added restoration or hosting cost charged, and its ceiling via ceiling.ceiling(centre=...). A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write the per-call centre charge and copy children for sharing across k = 2 calls, charge the sharing overhead, and screen it; stop this route if even the ideal sharing gains under 10%. Ideal budgets: free 2.80x, shared by two 1.90x (levers.py).", + "bottleneck_link": "The centre path consumes 64 of about 99.6 unpaid coordinates per call, i.e. about 64% of the raw deficit.", + "allowed_variations": [ + "One sharing pattern across a fixed number of calls.", + "One reduced copied-total contract for the existing decoder.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Removing copies without a replacement contract for the decoder's copied totals.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "centre path", + "copied totals", + "private temporary", + "shared centre", + "batching" + ] + }, + { + "id": "coverage-law-change", + "question": "Can a template or call contract leave two or more unpaid coordinates per live family?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/idle-axis-hosting/PROOF.md", + "certificates/selected-result.json" + ], + "methods": [ + "State a replacement for the coverage identity (mass = 72W + 64N) and the contract change that realizes it, with its implementation cost.", + "Find an obstruction: show which data-endpoint obligation forces exactly one unpaid coordinate in the current template." + ], + "acceptance_gate": "An explicit replacement identity, verified on a small complete instance with dirty inputs, priced with ceiling.ceiling(unpaid=...). A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Explain where the single unpaid coordinate per family comes from in the hosted template; propose one change and price it. Ideal budget: two unpaid coordinates per family is 3.77x (levers.py).", + "bottleneck_link": "The deficit is one coordinate per family minus the centre charge; doubling unpaid coordinates per family scales it directly.", + "allowed_variations": [ + "One template change or one endpoint-contract change.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Counting a coordinate as unpaid while leaving it unadvanced in the data endpoint.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "coverage identity", + "unpaid coordinate", + "deficit law", + "W - 64N" + ] + }, + { + "id": "connector-alphabet-change", + "question": "Does one explicit extension of the connector alphabet offer a favorable completed budget?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/universal-connector-boundary/README.md", + "certificates/selected-result.json" + ], + "methods": [ + "Construct and charge a legal extra operation on a minimal instance.", + "Prove a target-specific bound after adding one specified operation family." + ], + "acceptance_gate": "State which fixed-alphabet premise changes and charge its implementation; do not declare it free. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/universal-connector-boundary/verify.py" + ], + "expected": "PASS_UNIVERSAL_CONNECTOR_BOUNDARY", + "inspect": "Reproduce the 945-pairing control, then read Exact interface to list the allowed calls.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Add exactly one legally priced operation and test a tiny dirty-input instance before enumerating larger cases.", + "bottleneck_link": "A new legal connector operation could change recursive interface cost; a larger census in the same alphabet is a separate side result.", + "allowed_variations": [ + "Choose one additional operation and a small source count for its first counterexample." + ], + "scope_change_triggers": [ + "Keeping the alphabet and only increasing the source count; record this as a changed assignment.", + "Extending a source-count census without naming a supplier/interface decision it could change; audit #2973 pruning concerns before relying on the affected predecessor exclusions." + ], + "overlap_terms": [ + "universal connector", + "source-toggle", + "connector alphabet" + ] + } + ] + }, + { + "id": "adversarial-audit", + "weight": 15, + "tasks": [ + { + "id": "selected-stock-envelope", + "question": "What explicit uniform stock envelope does the actual selected stopped producer supply at one bootstrap stage?", + "starting_points": [ + "research/selected-bootstrap-stock-audit/README.md", + "research/bootstrap-cutoff-time-space-split/README.md", + "certificates/selected-result.json", + "docs/research/community-efficient1000-review.md", + "research/stock-margin-chain/README.md" + ], + "methods": [ + "Derive a source-bound reserve recurrence at the actual selected atom widths, separating parent stock from completed inner borrowing.", + "Find an exact missing implication or counterexample to a proposed selected-stage stock envelope." + ], + "acceptance_gate": "Bind every coefficient and depth factor to the selected producer and state the width domain. Compare a proved envelope with the sufficient cutoff guard; a large numerical headroom or a historical m=120 coefficient is not a selected m=73 proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2972 stock-margin chain and the selected stock audit. The new source archive reports the remaining cutoff comparisons, but leaves every actual stock coefficient unresolved; it is not an independently validated reserve envelope.", + "scope": "Source-bound orientation only. Read the named package and review before relying on its local evidence; this command is not its replay or supplier admission." + }, + "first_experiment": "Choose one actual selected producer/stage and derive its parent reserve and depth coefficient from source. Check whether newer handoffs already cover that exact obligation. Stop with the missing implementation lemma if it cannot be bounded; do not rerun #2972 cutoff/headroom arithmetic as a new contribution.", + "bottleneck_link": "This reduces a concrete inherited implementation obligation without confusing unchanged kappa arithmetic with a completed theorem.", + "allowed_variations": [ + "One stage or one explicit reserve/depth implication.", + "An independently checked same-domain proof repair, retaining all remaining assumptions." + ], + "scope_change_triggers": [ + "Importing the historical 57604 or 252 allowance without a selected-producer binding.", + "Calling a conditional fit lemma a full outer-proof adoption.", + "Replacing an actual selected stock coefficient with cutoff comparisons or a conditional fit inequality." + ], + "overlap_terms": [ + "selected stock", + "stock envelope", + "bootstrap cutoff", + "1956", + "1965", + "1990", + "2972", + "stock-margin-chain", + "actual_stock_coefficient" + ], + "existing_checks": [ + { + "scope": "Retained stock audit identifies missing actual selected-stage coefficients; later cutoff-chain arithmetic does not supply them.", + "evidence": "docs/research/research-family-status.md#revision-6-handoffs-source-archives-awaiting-independent-validation", + "remaining": "Derive one actual reserve/depth coefficient from the selected producer.", + "status": "reviewed", + "source_commit": "836b19bfa309ceafbc8ee32a15e8c4b10dde7e11", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "supplier-boundary-audit", + "question": "Can the #4088 four-provider dispatch satisfy the complete ordinary/outer admission contract?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/scatter-boundary-decision/README.md" + ], + "methods": [ + "Trace one hypothesis through the source, checker and complete caller.", + "Construct one semantically invalid but superficially well-formed fixture and test rejection." + ], + "acceptance_gate": "Pin the current sources and one obligation; the historical owner audit is an example, not evidence of a current bug.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4088 Scope and Open next questions: local words, native receipts and literal fill do not include a rerun of the mixed four-provider ordinary/outer engine. #3801 is the newer scatter-boundary decision; do not restart #2977 as if untouched.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Pin the provider registry, four native source closures and dispatch. Make a bounded acceptance coverage map or one registry adapter preserving every inherited admission predicate and rejection control (including an omitted fourth provider). Record remaining ordinary/outer obligations and a resource estimate before heavy execution. Stop at unresolved source/caller dependencies; no selected-result promotion from a local pass.", + "bottleneck_link": "Closing a current acceptance gap or proof obligation strengthens reliability even without changing kappa.", + "allowed_variations": [ + "One provider-registry, dispatch, native-closure or admission-predicate obligation; separate branches must name distinct coverage." + ], + "scope_change_triggers": [ + "Reporting the historical timing-only diagnostic as a new current acceptance bug.", + "Calling a malformed mutant a failure of the selected construction, or importing an opt-in repair without testing the exporter boundary.", + "Running another root enclosure instead of validating dispatch or weakening an inherited predicate to make mixed admission pass." + ], + "overlap_terms": [ + "owner boundary", + "bridge omission", + "hosting", + "2977", + "scatter export", + "duplicate index", + "parity semantics", + "4088", + "3801", + "staged544-mixed-fourth-entry", + "scatter-boundary-decision" + ], + "existing_checks": [ + { + "scope": "PR #4088: author-checked local words, native receipts, owner/phase fill and exact moment.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Rebind and validate ordinary/outer admission with all four providers; full mixed release not established.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3801: successor scatter-boundary decision package.", + "evidence": "research/scatter-boundary-decision/README.md", + "remaining": "Consult its exact acceptance scope before any new exporter audit; not proof of a selected failure.", + "status": "author-checked", + "source_commit": "911f8800ba7a4b03603ef62c5ffc6240e53cb5fd", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "uniform-transfer-audit", + "question": "Does one quantified step of the proposed #4100 all-size construction hold at its actual caller?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/unconditional-batched-crt/README.md" + ], + "methods": [ + "Prove one missing implication with explicit quantified hypotheses.", + "Find an exact counterexample at the claimed interface boundary." + ], + "acceptance_gate": "Identify the proposition and what would change downstream; do not equate a finite replay with a universal proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read PROOF.md and AUDIT.md in #4100. Select one distinct obligation: CRT total repair, native/free-algebra lifting, precision/conditioning, or complete fixed-tape cost. This is an author-submitted proof, not an accepted unconditional theorem.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Check live handoffs; name one proposition, its caller, quantified domain and dependency closure. Independently prove the implication or exhibit a precise gap/counterexample. Prioritize CRT.md total repair or COMPLEX.md free-algebra lift only if unclaimed. Stop at the chosen obligation; do not substitute finite samples or root arithmetic for an all-size proof, or launch the complete package by default.", + "bottleneck_link": "Finite supplier improvements are useful only under the retained transfer obligations.", + "allowed_variations": [ + "One CRT repair, native lift, precision/conditioning or tape-cost proposition, with its exact caller." + ], + "scope_change_triggers": [ + "Replacing a quantified obligation with another finite smoke test.", + "Treating archive intake, an author PASS receipt or a finite composed fixture as discharge of the universal hypotheses." + ], + "overlap_terms": [ + "uniform transfer", + "all-size", + "precision", + "4100", + "unconditional-batched-crt" + ], + "existing_checks": [ + { + "scope": "PR #4100: proposed unconditional construction and finite checks, without independent acceptance.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Independent proof audit of one caller-bound all-size implication; all other premises remain explicit.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "census-pruning-audit", + "question": "Does the reported word-census parity-pruning error invalidate a specific exclusion we still rely on, and what bounded repair is justified?", + "starting_points": [ + "research/f7-weight-parity-census-correction/README.md", + "docs/research/research-family-status.md" + ], + "methods": [ + "Independently reconstruct the tiny counterexample and trace one affected exclusion to its exact pruning code.", + "Compare corrected and unpruned enumeration on a small exhaustive domain, then audit the changed pruning implication." + ], + "acceptance_gate": "Pin the old and proposed corrected engines, distinguish a disproved pruning rule from a disproved final bound, and state exactly which downstream exclusions need revalidation. #2973 is an author-checked source archive; neither its new f(7) claim nor all old conclusions are automatically accepted or rejected.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2973 error description and MATH.md; manually reconstruct the prefix states of 01021323 before running any large census.", + "scope": "Source-binding orientation only; no full enumeration or mathematical validation." + }, + "first_experiment": "Reconstruct the eight prefix states of 01021323 and compare bit-0 versus Hamming-weight parity budgets independently. Trace the reported false prune to one pinned predecessor (#2542, #2634 or #2691), then test a small exhaustive domain. Stop after a source-impact handoff or corrected-prune proof; a full seven-label replay needs a separate resource budget and a named research decision it can change.", + "bottleneck_link": "An unsound exclusion can wrongly close a mechanism; correcting its dependency boundary is more useful than extending the same census.", + "allowed_variations": [ + "One predecessor pruning rule, one independently exhaustive small domain, or one downstream dependency audit." + ], + "scope_change_triggers": [ + "Launching a larger census before validating the prune and explaining which active decision it changes.", + "Treating a small-domain counterexample to the old rule as a counterexample to every reported seven-label bound." + ], + "overlap_terms": [ + "2973", + "2542", + "2634", + "2691", + "weight parity", + "bit-0", + "01021323", + "census pruning" + ] + } + ] + }, + { + "id": "independent-verification", + "weight": 10, + "tasks": [ + { + "id": "independent-moment", + "question": "Does a new paid-profile or mixture-ceiling claim have independent source-bound coverage of its actual changed ledger?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/staged-fourth-mixture-ceiling/README.md", + "research/r437-two-window-carrier/README.md" + ], + "methods": [ + "Independently reconstruct one changed paid ledger or pooled dual with exact source and model binding.", + "Check a genuinely uncovered moment implication with a different enclosure method and semantic controls." + ], + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Choose one uncovered implication in #4088 literal mixed fill, #4091 pooled dual/model binding or #4067 changed frame/host bill. #4091 pins an earlier #4088 head: validate word, capacity and stock equivalence before applying that ceiling to the later fill.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Independently reconstruct one changed ledger or pooled certificate with a positive case and a semantic failure control. Compare exact sources and name what existing checks miss. Keep this separate from supplier-boundary-audit (ordinary/outer dispatch) and uniform-transfer-audit (all-size proof). Stop after the chosen implication; more digits of an unchanged root are not additional mechanism coverage.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification.", + "Calling an aggregate histogram or source archive an independently accepted physical supplier." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure", + "2979", + "rank7 joint endframes", + "paired extraction", + "joint lowering", + "4088", + "4091", + "4067", + "staged544-mixed-fourth-entry", + "staged-fourth-mixture-ceiling", + "r437-two-window-carrier" + ], + "existing_checks": [ + { + "scope": "PR #4088: mixed local/owner/phase ledger and moment reported.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Independent binding of changed construction to paid histogram, distinct from full admission.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4091: sharp pooled ceiling proposed for fixed THREE/FOUR words and inventory.", + "evidence": "research/staged-fourth-mixture-ceiling/README.md", + "remaining": "Validate dual, exhaustive pattern scope and exact source equivalence before applying to newer fills.", + "status": "author-checked", + "source_commit": "a29bdd8f56cd18b805917775cdec09ff935eddc4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4067: paid (2,2) to (1,3) exchange and fixed OQ4 host reported.", + "evidence": "research/r437-two-window-carrier/README.md", + "remaining": "Independent full cost delta; remaining caller/precision/stock obligations are separate.", + "status": "author-checked", + "source_commit": "a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "formal-interface-lemma", + "question": "Can one uncovered interface implication be formalized with exact caller and certificate bindings?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/gate-operand-parity-lean/README.md", + "research/staged544-certified-endpoint/README.md", + "research/unconditional-batched-crt/README.md" + ], + "methods": [ + "Formalize a missing boundary lemma identified by the selected review.", + "Audit a formal theorem-to-certificate binding independently." + ], + "acceptance_gate": "State the exact formalized proposition and remaining assumptions; avoid duplicate arithmetic formalizations already present.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Inventory the gate-operand parity lemma (#3807) and certified endpoint arithmetic (#3857). Neither is a full multiplication proof. For #4100, audit the compact-switch statement and its hypotheses before formalizing it.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Write one missing statement with quantified hypotheses, actual caller and existing coverage. A compact-switch lemma is a candidate only after its mathematical contract is reviewed. Establish a bounded proof plan before a separately budgeted proof-assistant build; do not rerun large Lean jobs as orientation.", + "bottleneck_link": "A missing interface proof can reduce the conditional gap even if it does not change kappa.", + "allowed_variations": [ + "Narrow to one formal lemma or one theorem-to-certificate binding." + ], + "scope_change_triggers": [ + "Formalizing already-covered arithmetic and claiming the full multiplication theorem." + ], + "overlap_terms": [ + "hyperplane end", + "formal interface", + "Lean binding", + "3807", + "3857", + "4100", + "gate-operand-parity-lean", + "staged544-certified-endpoint", + "unconditional-batched-crt" + ], + "existing_checks": [ + { + "scope": "PR #3807: scoped gate-operand parity formalization.", + "evidence": "research/gate-operand-parity-lean/README.md", + "remaining": "Exact theorem-to-caller binding and genuinely uncovered interface lemmas.", + "status": "author-checked", + "source_commit": "4c3530f42a6abcc48e7a6bcffd6c901911dc8269", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3857: certified real-power moment/endpoint arithmetic.", + "evidence": "research/staged544-certified-endpoint/README.md", + "remaining": "Uniform algorithmic implications, not another endpoint digit.", + "status": "author-checked", + "source_commit": "ef4315b8caa605e47a2515004845eb2d2ed71a86", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4100: compact-switch formalization proposed as future validation.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Audit the statement and assumptions before a formal proof campaign.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + }, + { + "id": "verifier-engineering", + "weight": 8, + "tasks": [ + { + "id": "replay-runtime", + "question": "Can one measured replay bottleneck be sped up without dropping coverage?", + "starting_points": [ + "scripts/run_isolated_tests.py", + "scripts/verify_replay_coverage.py", + "certificates/selected-result.json" + ], + "methods": [ + "Profile one isolated replay and optimize the measured bottleneck.", + "Design source-bound reuse with explicit dependency invalidation and negative controls." + ], + "acceptance_gate": "Report before/after wall time on the same fixture, retained checks and invalidation behavior.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the selected reproduction command and choose a single replay stage for profiling.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Measure one unchanged fixture, preserve check coverage, and test one optimization with invalidation controls.", + "bottleneck_link": "Faster trustworthy replays increase review throughput and let mechanism candidates be checked sooner.", + "allowed_variations": [ + "Profile one stage or design one source-bound cache boundary." + ], + "scope_change_triggers": [ + "Skipping coverage or comparing different fixtures to claim speedup." + ], + "overlap_terms": [ + "replay runtime", + "cache invalidation", + "isolated tests" + ] + }, + { + "id": "portable-replay", + "question": "Can one reproducible environment or artifact-comparison failure be repaired?", + "starting_points": [ + "research/gzip-container-reproducibility/README.md", + "docs/ci-verification.md" + ], + "methods": [ + "Reproduce one portability failure and add a minimal cross-environment fix.", + "Audit one canonical-payload comparison for omitted proof-relevant fields." + ], + "acceptance_gate": "Preserve immutable source hashes and proof-relevant content; a different compressed byte stream alone is not a mathematical mismatch.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the gzip-container reproducibility examples and distinguish frozen source bytes from regenerated payloads.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Reproduce one specific mismatch or audit one canonical comparison for omitted proof-relevant fields.", + "bottleneck_link": "Portable exact checks prevent environment failures from blocking valid contributions.", + "allowed_variations": [ + "One interpreter/version mismatch or one payload field comparison." + ], + "scope_change_triggers": [ + "Removing immutable-source pins because generated compressed bytes differ." + ], + "overlap_terms": [ + "gzip container", + "reproducibility", + "canonical payload" + ] + } + ] + }, + { + "id": "consolidation", + "weight": 5, + "tasks": [ + { + "id": "overlap-receipt", + "question": "What exact content and credit of a small named PR set has already been retained?", + "starting_points": [ + "docs/research/pr-ledger.md", + "CONTRIBUTORS.md" + ], + "methods": [ + "Compare exact heads and retained artifacts to write a source-bound disposition receipt.", + "Audit an existing receipt for missing content or predecessor attribution." + ], + "acceptance_gate": "Separate complete integration, partial retention and changed heads; make no autonomous closures.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read one small PR set in the ledger and identify exact reviewed heads and unresolved content.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Compare that set to retained artifacts; produce a complete or explicitly partial disposition receipt.", + "bottleneck_link": "Reliable overlap evidence preserves credit and prevents repeated review of already-retained material.", + "allowed_variations": [ + "One small related PR family or one existing integration receipt." + ], + "scope_change_triggers": [ + "Treating matching titles or one shared blob as proof of full incorporation." + ], + "overlap_terms": [ + "overlap receipt", + "partial integration", + "attribution" + ] + }, + { + "id": "scope-navigation", + "question": "Can one misleading historical-current claim or missing research cross-reference be corrected?", + "starting_points": [ + "docs/research/current-status.md", + "docs/research/pr-ledger.md", + "certificates/selected-result.json" + ], + "methods": [ + "Trace one confusing path from onboarding to its authoritative source.", + "Index one tightly related family of obstructions with explicit excluded and open hypotheses." + ], + "acceptance_gate": "Produce evidence-backed navigation, preserve historical records and avoid a duplicate global survey.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Follow one link from the selected record to its review and compare a potentially stale historical claim.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Repair one confusing path or produce a scoped map of one related obstruction family.", + "bottleneck_link": "Clear navigation lowers entry cost for central research; a global survey without a concrete fix is not required.", + "allowed_variations": [ + "One historical-current ambiguity or one bounded family index." + ], + "scope_change_triggers": [ + "Rewriting frozen scientific packages just to change their historical wording." + ], + "overlap_terms": [ + "current status", + "historical checkpoint", + "scope navigation" + ] + } + ] + }, + { + "id": "incumbent-optimization", + "weight": 2, + "tasks": [ + { + "id": "selected-packing", + "question": "Does a named residual packing task have meaningful uncovered headroom after its exact fixed-inventory ceiling?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged-fourth-mixture-ceiling/README.md", + "research/staged544-mixed-fourth-entry/README.md" + ], + "methods": [ + "Check a fixed-inventory ceiling and source equivalence before any explicitly bounded residual search.", + "Price a genuinely changed word/interface under a newly applicable model." + ], + "acceptance_gate": "Check live overlap and exact model/source binding first. Distinguish a chronological construction from a pooled optimum. State the applicable fixed-inventory ceiling and remaining headroom; changed words or interfaces require a new fully charged model. Do not launch a residual search without an explicit scope and time cap.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4091 fixed-word pooled ceiling and #4088 later 1090-call literal fill. Bind the unchanged local invoices/capacities/stock before transferring the ceiling; its earlier 1080-call residual-bin recipe is historical.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Default to a bounded headroom/source-equivalence check. Only start residual search with an explicit unclaimed domain, time cap and reason the tiny remaining gain matters. Otherwise hand off or select a changed-word mechanism. A changed word or interface needs a fresh cost model, not the old ceiling. Stop at the fixed-inventory cap; do not extend by new random seeds.", + "bottleneck_link": "An actual paid-profile gain can improve the frontier up to the other supplier cap.", + "allowed_variations": [ + "One bounded residual packing instance or exact relaxation.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Rerunning an existing search with only a different seed as a separate mathematical contribution." + ], + "overlap_terms": [ + "T16", + "owner exchange", + "packing", + "4091", + "4088", + "staged-fourth-mixture-ceiling", + "staged544-mixed-fourth-entry" + ], + "existing_checks": [ + { + "scope": "PR #4091: pooled optimum at one-third staging for pinned fixed words; not a chronological fill.", + "evidence": "research/staged-fourth-mixture-ceiling/README.md", + "remaining": "Independent scope/source check; any residual optimization is explicitly bounded and optional.", + "status": "author-checked", + "source_commit": "a29bdd8f56cd18b805917775cdec09ff935eddc4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4088: later 1090-call literal fill improves the earlier 1080-call witness.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Complete admission remains separate; old residual-bin instructions must not be copied blindly.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "scalar-to-moment", + "question": "Can a changed frame itinerary remove a paid transition beyond the already covered scalar A2 contractions?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-a2-graph-rewrite/README.md", + "research/staged544-separated-a2/README.md", + "research/staged544-a2-composition-audit/README.md", + "research/staged544-a1858-contraction-audit/README.md" + ], + "methods": [ + "Derive the changed legal frame itinerary and exact child histogram.", + "Prove a scoped obstruction showing why that scalar gain cannot change the paid contract." + ], + "acceptance_gate": "An unchanged histogram is not a kappa gain; record any separate runtime or proof benefit explicitly.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the A2 and separated-A2 constructions and their composition/contraction audits. Scalar contractions can preserve the complete recursive histogram; fewer ADDs alone do not justify further scans.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Identify an actual paid transition to remove and construct a legal replacement frame itinerary, charging restoration, source windows and changed helpers. Compare complete before/after histograms. Stop if only scalar count changes; report that benefit honestly, without expanding the same scalar-only census.", + "bottleneck_link": "A legal change to the histogram, not addition count alone, is the bridge to an exponent gain.", + "allowed_variations": [ + "One existing scalar simplification and one proposed frame-path change." + ], + "scope_change_triggers": [ + "Submitting only another scalar count as completion of a paid-profile task." + ], + "overlap_terms": [ + "scalar simplification", + "paid profile", + "R439", + "3998", + "4019", + "4112", + "4152", + "staged544-a2-graph-rewrite", + "staged544-separated-a2", + "staged544-a2-composition-audit", + "staged544-a1858-contraction-audit" + ], + "existing_checks": [ + { + "scope": "PR #3998: consecutive A2 scalar contraction", + "evidence": "research/staged544-a2-graph-rewrite/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "389268a6b5e0373a3125d5c6fcd6995f4ea324f5", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4019: separated A2 sites with unchanged recursive histogram", + "evidence": "research/staged544-separated-a2/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "f408e09df300b575235f7f77f81948071397e16d", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4112: composition audit", + "evidence": "research/staged544-a2-composition-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "205b7380656ba4b6316a8a493b1a3c679b8f7a0e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4152: A1858 contraction audit", + "evidence": "research/staged544-a1858-contraction-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "caaa14cde5962adc372fdca71f63d0f29e73c8b2", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + } + ], + "selection_context": { + "refreshed_on": "2026-10-22", + "kappa": "60403/20000000", + "source_pr": 4470, + "record": "certificates/selected-result.json", + "review": "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md", + "orientation_command": "python3 -B scripts/research_selected_baseline.py", + "scope": "Metadata refresh only. Revision-7 weights and cards remain historical suggestions pending separate strategic reassessment; check current contracts and overlap before adopting them." + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md new file mode 100644 index 0000000000..69c337a770 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md @@ -0,0 +1,174 @@ +# Source-bound free-operator tensor lift + +This audit affirms one specific premise in PR4100's `COMPLEX.md`, lines 62–89: +the retained four PR4088 words cancel in a free group algebra before any +particular native operator is substituted. The premise is true for the exact +source exports checked here. This is a local algebra and source-binding result; +it supplies no new paid profile, numerical allowance, encoded implementation, +physical hosting theorem, outer release or selected-frontier improvement. + +## Exact source and contract + +The audited text is `research/unconditional-batched-crt/COMPLEX.md`, Git blob +`c3be56fbfdb4fb29c1ace88cbcdfa7475fb6e343`, SHA256 +`853e1295850862752e4f854aa9e8b28f9ca6eaa9306e2af110b7b77526d1b5e1`. +It is identical at retained PR4100 head +`337d04939571a637aeab54a0f58f54fde811663a` and canonical main +`12fa8c5c844be21bfefb38a19503fbd867a11244`. + +Its stated source is PR4088 head +`72d7efc181edb21806a878f174847c96dd410ab0`, package +`research/staged544-mixed-fourth-entry`. This audit exports the exact four +`inputs/{THREE,FOUR}-{base,extra}.json.gz` files, retained `vendor/audit_core.py`, +`vendor/audit_verify.py`, source `verify.py`, `PROOF.md` and `NOTICE.md`. +`SOURCE-PINS.json` records every original commit, path, length, Git blob and +SHA256. Every file is authenticated before the retained checker is executed. +No native runner, owner fill, solver, NumPy or historical outer engine is run. + +Each word has 632 live registers, 91 arbitrary dirty private registers, +72 abstract unary generators and 36 listed initial correction terms. The +forward common-label contract on the 723-register direct sum is + +`(x,y,h,b) -> (x,y+x,h,b)`. + +The dual contract is `(x,y,h,b) -> (x-y,y,h,b)`. In particular every private +buffer is an independent input, returns identically, and has no leakage into +live outputs. Neither contract assumes zero private inputs or a product state. + +## What the retained checker actually computes + +In `audit_core.py`, lines 297–391, a register value is a sparse dictionary + +`(initial_input, reduced_signed_operator_word) -> Fraction`. + +`program` includes every declared initial correction, precondition, +compensation, A and cut gate, chronologically inserted B warp, B gate, +restoration and cleanup gate. `_left` and `_right` cancel only adjacent inverse +letters; `_axpy` adds exact rational coefficients and removes exact zeros. +There is no commutation, finite-order relation, numerical operator matrix, +Fourier-character evaluation or univariate minimal-polynomial reduction. + +`audit_verify.semantics` runs all 723 independent symbols forward and dual, +compares an independent direction of pullback, and checks both cleanup-boundary +contracts. Every emitted provider passes. Each endpoint consists of exactly +835 nonzero terms: the 723 diagonal terms and 112 intended shear terms. Every +surviving operator word is empty. + +That is a universal algebraic identity, rather than an identity inferred from +one operator realization. The source's use of the word “symbolic” is justified +by these actual data structures, reductions and endpoint predicates. + +## All positive tensor multiplicities + +Let `F` be the free group on symbols `g_1,...,g_72`, and let `A=Q[F]` be its +rational group algebra. The finite word program is a product of elementary +723-by-723 matrices over `A`. A correction `c*g_word*x_source` is an off-diagonal +entry of one such elementary matrix. Scalar ADD and SCALE entries belong to +`Q*1_A`. + +Let `K` be any characteristic-zero field (in particular `Q[i]`) and let `V` +be any finite-dimensional vector space over `K`. Choose arbitrary invertible `K`-linear operators +`G_k` on `V`. All tensor products below are over `K`. For every positive integer `f`, define + +`rho_f(g_k) = G_k tensor ... tensor G_k` (f factors). + +The assignment of free generators extends uniquely to a group homomorphism +`F -> GL(V tensor f)`: inverses map to tensor products of inverses, and + +`(G H) tensor f = (G tensor f)(H tensor f)`. + +Extend this map rationally from `A` into the `K`-linear endomorphisms of +`V tensor f`. This extension is a unital rational algebra +homomorphism because multiplication of finite formal sums distributes and +because the group map preserves products. In particular + +`rho_f(sum_w c_w*w) = sum_w c_w*rho_f(w)`. + +Apply this homomorphism entrywise to the certified elementary-matrix product. +It preserves each elementary action, the order of events and the product. +Since the certified endpoint has only rational multiples of empty words, its +image is exactly the same register-level shear with each scalar multiplied +by the identity of `V tensor f`. This proves the endpoint for every positive +`f` and every input in the 723-register direct sum of `V tensor f`, including +arbitrarily correlated live/private data. + +The number of register roles remains 723. We are changing the internal space +of each role; we are not taking a tensor power of the 723-by-723 register matrix. +The latter operation would create a different program with 723^f roles. + +The dual pass treats `d_k=G_k^(-T)` as separate free generators. The same +argument applies, and `(G_k^(-T)) tensor f = (G_k tensor f)^(-T)` in the product +basis. Native frame labels can be replaced by their tensor powers if the +separately supplied directed native recipe identities are exact. This audit +does not reprove or rerun those native recipe identities. + +## The distinction that must be retained + +This algebra homomorphism is linear on formal sums. Therefore + +`rho_f(g-I) = G tensor f - I`, + +not `(G-I) tensor f`. Likewise `rho_f(c*g)=c*(G tensor f)`, not +`(c*G) tensor f = c^f*(G tensor f)`. A role SCALE or bridge coefficient must +remain scalar, while a constant phase already inside a unary generator is +part of that generator and therefore occurs in every tensor factor. + +For an exact small counterexample, take `G=[[1,1],[0,1]]` and `f=2`. +Then `(G tensor G-I)` sends `e_2 tensor e_2` to +`e_1 tensor e_1 + e_1 tensor e_2 + e_2 tensor e_1`; whereas +`(G-I) tensor (G-I)` sends it only to `e_1 tensor e_1`. Their difference is +nonzero over `Q` (and over the supplemental field F101). +The code checks a distinct noncommuting 72-generator family as well, and rejects +both the whole-difference and whole-scalar tensorization rules. + +## Independent evidence and its scope + +`independent.py` imports or executes no retained implementation. It reconstructs +the literal sequence from the four exported words and, for each of the 723 +outputs separately, pulls the output functional backward through that sequence +over exact `Q[F_72]`. The reverse traversal appends words on the right; a stack +reduces only adjacent inverse letters. All four forward and all four dual +contracts match exactly: 5784 output-functional checks, 6680 endpoint terms and +zero surviving nonempty words. Its controls preserve a nontrivial commutator, +a fourth power and the two distinct terms of `g-I`. + +This implementation is independent of the source engine; the format and +endpoint contract were read from the same credited source. Agreement is +supplemental to inspection of the finite exact computations, not a substitute +for proving what the reductions mean. + +`verify.py` also reconstructs and executes the literal events directly on dense +vectors over F101, with 72 distinct invertible 2-by-2 matrices. The first two do +not commute. It substitutes their tensor powers at `f=1,2,3` in both orientations +of all four providers, yielding 24 direct fixtures; all 723 registers are given +deterministic dirty values. These finite-field experiments are controls, not +the proof for every rational input or unbounded f. Erasing the actual listed +correction generators fails at 20 registers; tensorizing the actual role SCALE +coefficients fails at the reported registers. Exact inverse and product +compatibility controls also pass. + +## Remaining obligations and credit + +This positive result discharges only the source's formal free-operator premise +and its algebraic implication to per-role tensor multiplicity. The physical +lowering of native monomials, directed native recipes, placement, common cover, +hosted slices, analytic bounds, coefficient precision, fixed-tape inventory, +recovery and complete ordinary/outer release are outside this audit. The source +construction makes additional written claims about these interfaces; this audit +neither verifies nor refutes those claims. +No paid-rank saving, all-size multiplication theorem, independent human +acceptance or new kappa is claimed. + +The tensor-lift proposal and current construction are credited to Cinna Davis, +the PR4100 author; this audit does not claim to invent the representation argument. +Cinna Davis's PR4088 supplies the four literal providers and source integration. +Sagar Thakrar's PR3687 exact free-operator engine and roger-sato's PR3693 +all-dirty/reverse audit are reused explicitly. Retained lineage includes Rohan +Arun/PR4076, Dugongue/David Ganz/PR4085 and PR3945, Nick Petalas, Ross +Richardson/PR3605, dataisfire/PR3734, ChaloupeMusic/Erwan Secousses, Marius-Paul +Dumitrean, zxv and the earlier geometry/native/compiler/owner contributors. +The byte-identical source notice and source-file notices remain in `source/`. + +The formal and F101 implementations were separately written by one Codex agent. A second Codex agent independently reviewed them and supplied the exact rational signed-permutation oracle in `independent_real.py`; see `INDEPENDENT-REVIEW.md`. None is a human or formal-kernel acceptance. + +`mutation_controls.py` also produces exact actual-program counterexamples in `MUTATIONS.json`: erasing the first correction generator yields `(I-G59)x273` in output115; dropping the first nonidentity scale yields `-3*x119` in output119. Both baseline output functionals pass first. Every actual correction word has length one, so a multi-letter correction reorder is inapplicable rather than counted as an executed control. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py new file mode 100644 index 0000000000..4b24a50961 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Higher-moment strictification and a polynomial-logarithm compiler bound. + +New arithmetic is independent of predecessor interval code. The unchanged +invoice replay and two outer ledgers are credited, byte-pinned oracles. +zxv with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +from collections import Counter +from contextlib import redirect_stdout +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256, sha1 +import io +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +GRID = 2**192 +C = Q('0.00268648') +KAPPA = Q('0.00268647') +T = {5:420, 6:270, 7:840, 8:1395, 9:3195, + 25:448, 41:448, 57:448, 121:224} +P = {1:37305, 2:10695, 3:3360, 4:1530, 5:300, + 8:1464, 16:448, 32:448, 48:448} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def down(x): + return Q((x*GRID).__floor__(), GRID) + + +def up(x): + return Q(-((-x*GRID).__floor__()), GRID) + + +def rounded(lo, hi): + return down(lo), up(hi) + + +def mul(a, b): + products = [x*y for x in a for y in b] + return rounded(min(products), max(products)) + + +def scale(a, x): + return mul(a, (x, x)) + + +def divide(a, b): + need(b[0] > 0, 'positive interval denominator') + return mul(a, rounded(1/b[1], 1/b[0])) + + +@lru_cache(None) +def log_bounds(n): + """Exact atanh series, binary reduction; round only the final interval.""" + need(isinstance(n, int) and n >= 1, 'positive integer logarithm') + + def series(x): + u = (x-1)/(x+1) + term, total = u, Q(0) + for j in range(80): + total += 2*term/(2*j+1) + term *= u*u + tail = 2*term/(161*(1-u*u)) + return total, total+tail + + k = n.bit_length()-1 + a, b = series(Q(2)) + c, d = series(Q(n, 2**k)) + return rounded(k*a+c, k*b+d) + + +def exp_point(x): + """Outward fixed-point Taylor enclosure, with binary scaling/squaring.""" + need(abs(x) < 16, 'bounded exponential argument') + if x < 0: + a, b = exp_point(-x) + return rounded(1/b, 1/a) + divisions = 0 + while x > Q(1, 2): + x /= 2 + divisions += 1 + term = total = (Q(1), Q(1)) + for j in range(1, 65): + term = scale(term, x/j) + total = rounded(total[0]+term[0], total[1]+term[1]) + following = scale(term, x/65) + # Every remaining ratio is <= 1/132. Twice the next term is safe. + result = rounded(total[0], total[1]+2*following[1]) + for _ in range(divisions): + result = mul(result, result) + return result + + +def exp_interval(a): + return exp_point(a[0])[0], exp_point(a[1])[1] + + +@lru_cache(None) +def power(n, exponent): + return exp_interval(scale(log_bounds(n), exponent)) + + +def moment(histogram, exponent): + low = high = Q(0) + for n, count in histogram.items(): + a, b = power(n, exponent) + low += count*a + high += count*b + return rounded(low, high) + + +def display(a): + unit = 10**30 + + def fixed(n): + sign = '-' if n < 0 else '' + s = str(abs(n)).rjust(31, '0') + return sign+s[:-30]+'.'+s[-30:] + + return {'lower': fixed((a[0]*unit).__floor__()), + 'upper': fixed(-((-a[1]*unit).__floor__()))} + + +def encoded(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encoded(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encoded(v) for v in x] + return x + + +def source_environment(path): + env = {'__file__': str(path), '__name__': 'pinned_source_oracle'} + exec(compile(path.read_bytes(), str(path), 'exec'), env) + return env + + +def authenticate(): + result = {} + for row in json.loads((HERE/'VENDOR.json').read_text())['files']: + path = HERE/'vendor'/Path(row['path']).relative_to( + 'research/higher-moment-strictification/vendor') + digest = sha256(path.read_bytes()).hexdigest() + need(digest == row['sha256'], 'changed source: '+row['path']) + raw = path.read_bytes() + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + == row['git_blob'], 'changed Git source blob') + result[row['path']] = digest + return result + + +def invoice_oracle(): + """Run #4426 unchanged, rebinding only its two file-location globals.""" + path = HERE/'vendor/invoice-review/verify.py' + env = source_environment(path) + env.update(ROOT=path.parent, PHASES='DATA-PHASES.json') + output = io.StringIO() + with redirect_stdout(output): + env['main']() + result = json.loads(output.getvalue()) + need(result['status'] == 'PASS_PR4416_INVOICE_REBUILD', 'source invoice oracle') + need({int(k): v for k, v in result['targets'].items()} == T + and {int(k): v for k, v in result['paid'].items()} == P, + 'exact literal-word invoice') + return result + + +def tail_certificate(v=150, cutoff=10, floor=15, u=Q(3, 10)): + t = 1-C + need(v >= 1 and 1 < cutoff < floor < 121, 'strict finite ranks') + need(t+u >= 1, 'tail moment exponent at least one') + target, paid = moment(T, t), moment(P, t) + alpha = divide(paid, target) + gamma = divide(moment(P, t+u), mul(power(cutoff, u), target)) + delta = divide((Q(sum(T.values())*floor),)*2, + mul(power(cutoff, C), target)) + limits = (1-Q(1, 10**8), Q(181, 200), Q(439, 500)) + for name, bounds, limit in zip(('alpha', 'gamma', 'delta'), + (alpha, gamma, delta), limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, name+' certified limit') + a, g, d = limits + bound = 1/(1+v*(1-a))+2*g**v+2*d**v + need(bound < 1, 'complete charged normalized moment') + old_gamma = divide((Q(sum(k*n for k, n in P.items())),)*2, + mul(power(cutoff, C), target)) + old_lower = alpha[0]**v+2*old_gamma[0]**v + need(old_lower > 1, 'rank-one-tail estimate fails at this tensor power') + return {'tensor_power': v, 'cutoff_base': cutoff, 'floor_base': floor, + 'paid_moment_exponent': t+u, 'tail_offset_u': u, + 'tested_saving': C, 'alpha': display(alpha), 'gamma': display(gamma), + 'delta': display(delta), 'rational_upper_limits': limits, + 'normalized_paid_upper': bound, 'strict_moment_gap': display((1-bound,)*2), + 'old_rank_one_gamma': display(old_gamma), + 'old_rank_one_bound_lower': display((old_lower, old_lower)), + 'ambient': '121^'+str(v), 'minimum_target': str(floor)+'^'+str(v), + 'maximum_paid': str(cutoff)+'^'+str(v), + 'productive_fields_before_uniform_compiler': '7688^'+str(v), + 'rank_one_surplus': '131723^'+str(v)+'-131115^'+str(v), + 'materialized_product_or_uniform_word': False} + + +def uniform_rank(v): + t, p, theta = 1-C, 13, Q(6, 7) + gap = (C-KAPPA)/7 + uniform_saving = C-gap + need(10**7 < 15**6, 'theta upper bound') + need(2*(10**v)**7 <= (121**v)**6, 'shifted logarithm inequality') + eta = scale(exp_interval(scale(log_bounds(121), -v*C)), t) + need(eta[0] > theta**p, 'exit contraction below complement capacity') + base = exp_interval(scale(log_bounds(121), v*C)) + need(base[1] < 2**p, 'entire ordinary base range fits') + # Integer grid: gap*H is integral, avoiding enormous rational powers. + step = gap.denominator + need(gap.numerator == 1, 'chosen rational gap grid') + + def passes(j): + H = step*j + return (H+1)**p < 2**j + + lo, hi = 1, 2 + while not passes(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (lo+hi)//2 + if passes(mid): + hi = mid + else: + lo = mid + H = step*hi + need(H > 7*v and passes(hi) and not passes(hi-1), 'final integer comparison') + need(eta[1] < theta**(p-1), 'one smaller logarithmic power fails') + return {'t': t, 'uniform_saving': uniform_saving, 'gap': gap, + 'logarithm_power': p, 'theta_upper': theta, 'eta': display(eta), + 'eta_minus_theta_to_p': display((eta[0]-theta**p, eta[1]-theta**p)), + 'm_to_saving': display(base), 'H': H, 'N': '2^'+str(H), + 'integer_test': {'left_base': H+1, 'left_exponent': p, + 'right_base': 2, 'right_exponent': hi}, + 'grid_step': step, 'previous_grid_point_rejected': True, + 'smaller_logarithmic_power_rejected': True} + + +def power_majorant_comparison(v, uniform_saving): + """Retain #4416's older power proof, changing only the new unit's ranks.""" + t, z, h = 1-C, 1-uniform_saving, Q(1, 7) + z0 = (t+z)/2 + delta = z0-t + B, debt = (4+7*h)*v, 1+7*v*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= 7*v and H0*h*delta >= delta*B+debt, 'power majorant threshold') + need((H0-1)*h*delta < delta*B+debt, 'previous power threshold rejected') + need(H1*(z-z0) > H0*(1-z0) >= (H1-1)*(z-z0), + 'strict power-majorant comparison and previous-rank control') + return {'H0': H0, 'H1': H1, 'N': '2^'+str(H1), 'theta_upper': 1-h, + 'scope': 'Tail transformation alone, retaining the older power majorant.'} + + +def outer_ledger(uniform_saving): + d = (C-KAPPA)/7 + params = {'kappa': KAPPA, 'tested_saving': C, + 'complex_uniform_saving': uniform_saving, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q('0.0027'), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + env = source_environment(HERE/'vendor/outer_endpoint.py') + row = env['ledger'](params) + need(len(row['strict_checks']) == 54 and len(row['functional_checks']) == 3, + 'complete first outer ledger') + need(all(v > 0 for group in ('strict_checks', 'functional_checks') + for v in row[group].values()), 'all outer predicates') + frozen = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['outer'] + need(encoded(row) == frozen, 'unchanged full p7 endpoint ledger') + parsed = ast.parse((HERE/'vendor/check_ledger.py').read_bytes()) + function = next(n for n in parsed.body + if isinstance(n, ast.FunctionDef) and n.name == 'ledger') + constants = [n for n in parsed.body if isinstance(n, ast.Assign) + and any(isinstance(t, ast.Name) and t.id.startswith('KAPPA_') + for t in n.targets)] + eps, beta, q, a = (params[k] for k in ('epsilon', 'beta', 'q', 'a')) + grid = 10**10 + backoff = Q((eps*q*grid).__floor__(), grid)-KAPPA + need(backoff > 0, 'strict derived oracle grid backoff') + oracle = {'Q': Q, 'R0': params['r0'], 'ZETA': Q(1, 10**8), + 'SLACK': d, 'STOP': d, 'FLOOR': grid, 'BACKOFF': backoff, + 'EPS': eps, 'BETA': beta, 'THETA_POWER': Q(2), + 'HALO_POWER': 48, 'CORE_POWER': 128, 'STRASSEN_TAU': Q(45, 16), + 'b': params['b'], 'q': q, 'a': a, 'bit': params['bit_saving'], + 'online': Q('0.001730970419199163702738'), + 'old': Q('0.001730970419199163702738')} + code = ast.fix_missing_locations(ast.Module(body=constants+[function], type_ignores=[])) + exec(compile(code, 'pinned 63-predicate ledger', 'exec'), oracle) + second = oracle['ledger']('higher_moment_smaller_ranks') + need(second['kappa'] == KAPPA and second['margins'] == row['margins'], + 'all nine rows match both ledgers') + need(len(second['strict_checks']) == 63 and + all(v > 0 for v in second['strict_checks'].values()), 'all 63 legacy predicates') + controls = {} + for name, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': C}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + bad = env['ledger'](dict(params, **updates)) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'outer control rejected: '+name) + controls[name] = failed + for name, options in [('old_per_axis_scan', {'old_scan': True}), + ('group_equals_dimension', {'beta_': eps})]: + bad = oracle['ledger']('reject_'+name, **options) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'legacy control rejected: '+name) + controls[name] = failed + return {'ledger': row, 'legacy_63_checks': second['strict_checks'], + 'legacy_grid': grid, 'legacy_backoff': backoff, + 'minimum_margin_minus_kappa': min(row['margins'].values())-KAPPA, + 'rejected_controls': controls} + + +def finite_controls(): + def tensor(histogram): + out = Counter() + for k, n in histogram.items(): + for h, b in histogram.items(): + out[k*h] += n*b + return out + + def split(histogram, cutoff): + out = Counter() + for k, n in histogram.items(): + q, r = divmod(k, cutoff) + out[cutoff] += q*n + if r: + out[r] += n + return +out + + target, paid = tensor({2:1, 5:1}), tensor({1:2, 4:1}) + padded, completion = Counter(), Counter() + for k, n in target.items(): + padded[max(k, 9)] += n + if k < 9: + completion[9-k] += n + final = split(paid+completion, 4) + mass = lambda x: sum(k*n for k, n in x.items()) + need(mass(padded)-mass(final) == 7**2-6**2 == 13, 'exact paid padding mass') + need(min(padded) > max(final), 'exact toy separation') + need(final == Counter({1:5, 4:9}), 'literal toy expanded inventory') + # t=1/2, sigma=3/4, R=100, J=1 refutes a sublinear tail extension. + invalid = power(100, Q(1, 2))[1]+2*power(100, Q(3, 4))[1] + need(invalid < 100, 'sublinear upper-tail moment cannot bound splitting') + return {'toy_targets': padded, 'toy_paid': final, 'rank_one_surplus': 13, + 'sublinear_tail_counterexample': {'R': 100, 'J': 1, 't': '1/2', + 'sigma': '3/4', 'actual_charge': 100, + 'invalid_upper': display((invalid, invalid))}} + + +def verify(): + sources = authenticate() + invoice = invoice_oracle() + tail = tail_certificate() + rank = uniform_rank(tail['tensor_power']) + endpoint = outer_ledger(rank['uniform_saving']) + controls = finite_controls() + rejected = [] + for name, updates, expected in [ + ('too_short_product', {'v': 100}, 'complete charged normalized moment'), + ('sublinear_tail', {'u': C/2}, 'tail moment exponent at least one'), + ('lost_separation', {'floor': 10}, 'strict finite ranks'), + ]: + try: + tail_certificate(**updates) + except ValueError as error: + need(str(error) == expected, 'wrong rejection: '+name) + rejected.append({'mutation': name, 'failed_at': str(error)}) + else: + raise ValueError('accepted mutation: '+name) + old = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['compiler'] + return encoded({'schema': 'higher-moment-native-strictification/1', + 'status': 'PASS_HIGHER_MOMENT_STRICTIFICATION', 'kappa': KAPPA, + 'invoice_oracle': invoice, 'strictification': tail, + 'uniform_rank': rank, 'outer': endpoint, + 'tail_only_power_majorant': power_majorant_comparison( + tail['tensor_power'], rank['uniform_saving']), + 'finite_controls': controls, 'rejected_mutations': rejected, + 'predecessor_H': old['H1'], + 'rank_exponent_reduction_factor': Q(old['H1'], rank['H']), + 'tensor_power_reduction_factor': Q(6240, tail['tensor_power']), + 'source_sha256': sources, + 'verifier_sha256': sha256(Path(__file__).read_bytes()).hexdigest(), + 'scope': 'Conditional charged transformation and finite compiler rank. Native all-column, physical, analytic, precision, storage, fixed-tape and recovery premises remain inherited. No new kappa, selected frontier or practical word.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = verify() + if args.out: + need(not args.out.exists(), 'new output path required') + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + need(json.loads((HERE/'RESULT.json').read_text()) == result, 'changed saved receipt') + print(json.dumps({'status': result['status'], 'tensor_power': result['strictification']['tensor_power'], + 'uniform_rank': result['uniform_rank']['N'], + 'strict_moment_gap': result['strictification']['strict_moment_gap'], + 'kappa': result['kappa']})) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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" + ], + [ + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "1", + "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", + "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", + "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", + "1", + "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", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "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", + "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", + "1", + "-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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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" + ], + [ + "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", + "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" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -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 + ], + [ + -1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 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 + ], + [ + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py new file mode 100644 index 0000000000..1d93e43d1c --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py @@ -0,0 +1,147 @@ +"""Complete p16 price and finite compiler for a changed native profile. + +Adapted from Cinna Davis's PR4470 arithmetic, retaining zxv's paid tensor +completion/logarithmic majorant and Jacob Alan Sussman's mixed-job flow. +Apache-2.0. Substantial OpenAI Codex assistance. Native admission is separate. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import importlib.util +import json +import math +import sys +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] + +def need(ok,why): + if not ok:raise ValueError(why) + +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path) + m=importlib.util.module_from_spec(spec);sys.modules[name]=m;spec.loader.exec_module(m) + return m + +def encode(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)):return [encode(v) for v in x] + return x + +def read(path): + import gzip + b=path.read_bytes();return json.loads(gzip.decompress(b) if path.suffix=='.gz' else b) + +def assemble(local): + H={int(k):v for k,v in local['helpers'].items()};N={int(k):v for k,v in local['paid'].items()} + sys.path.insert(0,str(ROOT/'research/joint-helper-lattice')) + J=load(ROOT/'research/joint-helper-lattice/verify.py','round2_pinned_controller') + sys.path.insert(0,str(ROOT/'research/query-thinned-controllers')) + C=load(ROOT/'research/query-thinned-controllers/controller.py','round2_controller_engine') + word=J.controller16(C) + T,P=Counter(),Counter();full=thin=0 + for e in word['physical_events']: + if e[0]=='LOCAL':full+=1;T.update(H);P.update(N) + elif e[0]=='QUERY_SHEAR':thin+=1;P[1]+=112 + elif e[0]=='IDLE':P[8*len(e[2])]+=224 + for term in word['diagonal']:T[1+8*sum(term[1:])]+=112 + need(full==18 and thin==15 and sum(H.values())==408,'Complete retained p16 call and input inventory') + return H,N,T,P,word + +def run(local,kappa=None): + H,N,T,P,word=assemble(local) + E=load(ROOT/'research/higher-moment-strictification/verify.py','round2_exact_intervals') + other=load(ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py','round2_second_intervals') + def margin(c): + t,p=E.moment(T,1-c),E.moment(P,1-c) + return t[0]-p[1],t[1]-p[0] + old_upper=Q('.0030201659771') + need(margin(old_upper)[0]>0,'Changed complete invoice strictly beats old raw root upper endpoint') + # Binary search on a fixed rational grid; all final signs use exact intervals. + lo,hi=0,100000000 + grid=10**10 + while hi-lo>1: + mid=(lo+hi)//2 + if margin(Q(mid,grid))[0]>0:lo=mid + else:hi=mid + root_low,root_high=Q(lo,grid),Q(hi,grid) + need(margin(root_low)[0]>0 and margin(root_high)[1]<0,'Strict changed-profile rational root enclosure') + if kappa is None:kappa=Q((root_low*10**8).__floor__()-3,10**8) + tested=kappa+Q(1,10**8) + need(Q('.003020165')ph and max(tl,target[0])<=min(th,target[1]) and max(pl,paid[0])<=min(ph,paid[1]),'Two independently implemented rational moment engines agree') + alpha=E.divide(paid,target) + gamma=E.divide(E.moment(P,t+u),E.mul(E.power(c,u),target)) + delta=E.divide((Q(sum(T.values())*b),)*2,E.mul(E.power(c,tested),target)) + alpha_gap=Q(1,10**9);g=d=Q(97,100) + need(alpha[1]<1-alpha_gap and gamma[1]theta**power,'Shifted exits and complement capacity') + need(E.power(145,v*tested)[1]<2**power,'Compiler initial range') + gap=(tested-kappa)/7;need(gap.numerator==1,'Explicit finite integer grid') + step=gap.denominator + def wins(j):return (step*j+1)**power<2**j + left,right=1,2 + while not wins(right):left,right=right,2*right + while right-left>1: + mid=(left+right)//2 + if wins(mid):right=mid + else:left=mid + height=step*right + need(height>8*v and wins(right) and not wins(right-1),'Strict finite uniform-rank integer bound') + local_scalar=max(x['real_scalar_allowance'] for x in local['native'].values()) + routes=(sum(N.values())+2*408+688)*1000 + need(local_scalar+routes<10**7,'Complete scalar and fixed monomial routing bound') + scalar_upper=18*10**7+15*1792+32*112*(len(word['physical_events'])+sum(len(word['boundaries'][k+'_program']) for k in ('left','right'))) + need(scalar_upper<10**9,'Raw controller scalar bound') + bit=read(ROOT/'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom=Q(bit['atom']);ordinary=(1-atom)*Q(bit['after_cover'])+atom*Q('.0000384599');admitted=Q(bit['admitted']) + need(atom==Q('.004') and atom>ordinary>admitted>tested and atom<1-ordinary,'Source ordinary BIT admission and stock') + L=load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py','round2_outer_ledger') + params={'kappa':kappa,'tested_saving':tested,'complex_uniform_saving':kappa+6*gap, + 'b':kappa+5*gap,'a':kappa+4*gap,'q':kappa+3*gap,'bit_saving':admitted, + 'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} + outer=L.ledger(params);outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) + need(len(outer['strict_checks'])==54 and len(outer['functional_checks'])==4,'Whole outer predicate inventory') + need(all(x>0 for key in ('strict_checks','functional_checks') for x in outer[key].values()),'All outer inequalities strictly positive') + controls={} + for name,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('unfunded_endpoint',{'kappa':tested}),('closed_epsilon',{'epsilon':Q(1)})]: + bad=L.ledger(dict(params,**patch));failed=[k for k,x in bad['strict_checks'].items() if x<=0] + need(failed,'Reject unsupported outer patch '+name);controls[name]=failed + return encode({'status':'PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE','kappa':kappa, + 'gain_over_PR4535':kappa-Q('.003020165'),'raw_root_interval':[root_low,root_high], + 'margin_at_old_root_upper':margin(old_upper),'local_helpers':H,'local_paid':N,'targets':T,'paid':P, + 'productive_fields':sum(T.values()),'paid_calls':sum(P.values()),'rank_mass_surplus':sum(r*n for r,n in T.items())-sum(r*n for r,n in P.items()), + 'strictification':{'tested':tested,'power':v,'cutoff':c,'floor':b,'tail_offset':u,'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta),'normalized_paid_upper':normalized}, + 'compiler':{'theta':theta,'logarithm_power':power,'eta':E.display(eta),'gap':gap,'uniform_saving':params['complex_uniform_saving'],'H':height,'N':'2^'+str(height),'integer_test_exponent':right,'word_materialized':False}, + 'nonrecursive':{'local_scalar':local_scalar,'local_routes':routes,'raw_scalar_upper':scalar_upper}, + 'ordinary_BIT':bit,'outer':outer,'negative_controls':controls, + 'scope':'Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.'}) + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--native',type=Path,required=True);ap.add_argument('--kappa');ap.add_argument('--out',type=Path,default=HERE/'ARITHMETIC.json');args=ap.parse_args() + result=run(read(args.native),Q(args.kappa) if args.kappa else None) + result['native_receipt_sha256']=sha256(args.native.read_bytes()).hexdigest() + # Pin all loaded project source modules and the non-module controller/stock + # records read by the inherited engines. Standard-library files are outside + # the repository and are recorded instead by the replay's Python version. + paths={Path(__file__).resolve(),ROOT/'research/joint-helper-lattice/CONTROLLER.json', + ROOT/'research/query-thinned-controllers/RESULT.json'} + for module in tuple(sys.modules.values()): + name=getattr(module,'__file__',None) + if name: + path=Path(name).resolve() + if path.is_relative_to(ROOT) and path.is_file():paths.add(path) + result['source_sha256']={p.relative_to(ROOT).as_posix():sha256(p.read_bytes()).hexdigest() for p in sorted(paths)} + args.out.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({k:result[k] for k in ('status','kappa','gain_over_PR4535','raw_root_interval','paid_calls','compiler')},indent=2)) diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py new file mode 100644 index 0000000000..7f84894efc --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +"""Native embedded query logger and common-frame H conjugation contacts. + +Apache-2.0. Substantial OpenAI assistance. These are fresh constructions with +explicit arbitrary-input endpoints. An embedded cache output is not claimed +as an independent clean helper output until a whole caller erases its defect. +""" +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +import argparse +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import rebuild_native as N +import power_two_balance as B + +B_SHA = '76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424' + + +def common_frame_h(geo, offset, frame): + """H = diag(I,-I) S_L S_-K S_L, with all shear ADDs having coefficient ±1. + + Balancing only the eight selected coordinates avoids scaling104 ordinary + coordinates. No private field and no recursive transport are introduced. + Precondition: ALL112 physical fields share the stated actual frame gauge. + """ + A = geo['selected'] + out = [['phase', 'fresh_common_frame_H']] + def scale(n, d): + out.extend(N.scalar(['scale', ['L', offset+a], n, d], frame) for a in A) + def left(): + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = 2*value + N.need(abs(coefficient) == 1, 'Balanced unit L coefficients') + out.append(N.scalar(['add', ['L', offset+a], ['L', offset+u], int(coefficient), 1], frame)) + scale(2, 1); left(); scale(1, 4) + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = -2*value + out.append(N.scalar(['add', ['L', offset+u], ['L', offset+a], int(coefficient), 1], frame)) + scale(4, 1); left(); scale(-1, 2) + N.need(B.scalar_sum(out) == 10096, 'Exact common-frame H scalar allowance') + return out + + +def embedded_cache_roles(canonical): + roles = [i for i in range(224, 632) if canonical['start'][i] == 0 and canonical['final'][i] == 1] + N.need(len(roles) == 213, '213 genuinely cold, full-ended native helper roles') + return roles[:8] + + +def embedded_logger_suffix(canonical, geo, roles=None): + roles = embedded_cache_roles(canonical) if roles is None else list(roles) + N.need(len(roles) == len(set(roles)) == 8, 'Eight distinct embedded caches') + N.need(all(224 <= i < 632 and canonical['start'][i] == 0 and canonical['final'][i] == 1 for i in roles), + 'Embedded logger only uses cold full-ended physical helper references') + out = [['phase', 'fresh_embedded_dirty_logger']] + for k, a in enumerate(geo['selected']): + r = roles[k] + out += [N.scalar(['scale', ['L', r], 2, 1], 1), + N.scalar(['add', ['L', r], ['L', a], 2, 1], 1)] + out += [N.scalar(['add', ['L', r], ['L', u], int(2*q), 1], 1) + for u, q in sorted(geo['L'][k].items())] + out.append(N.scalar(['scale', ['L', r], 1, 2], 1)) + N.need(B.scalar_sum(out) == 3440, 'Embedded logger exact scalar bill') + return out + + +def make_embedded_logger(canonical, base_word, geo): + word = B.make_balanced_h(canonical, base_word, geo)['forward'] + return word+embedded_logger_suffix(canonical, geo) + + +def make_wrapped_h(canonical, base_word, geo): + words = B.make_balanced_h(canonical, base_word, geo) + return {direction: common_frame_h(geo, 112, 0)+word+common_frame_h(geo, 0, 1) + for direction, word in words.items()} + + +def literal_replay(v, c, program, backward=False): + """Second literal evaluator for new endpoints; all632 inputs arbitrary. + + This checker has no endpoint-specific shortcut. It applies every scalar + and free-warp event and checks each contact's frame before comparing rows. + """ + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + current = {('L', i): f for i, f in enumerate(c['start'])}; current['C', 0] = None + spaces = [v.span(frame) for frame in c['frames']] + profile = Counter(); cost = 0; max_l1 = Q(1); witness = None; max_denominator = 1 + for j, event in enumerate(program): + kind = event[0]; touched = None + if kind == 'scalar': + g, frame = event[1:]; target = tuple(g[1]); touched = target + cost += N.primitive_allowance(g) + if g[0] == 'clear': + N.need(target == ('C', 0), 'Only owned C0 can be cleared') + rows[target] = {}; current[target] = frame + else: + N.need(current[target] == frame, 'Exact scalar target frame') + if g[0] in ('add', 'copy'): + source = tuple(g[2]); N.need(current[source] == frame, 'Exact scalar source frame') + if g[0] == 'copy': + N.need(target == ('C', 0), 'Only owned field overwritten by copy') + rows[target] = dict(rows[source]) + else: + N.need(target != source, 'Distinct reversible ADD arguments') + v.add(rows[target], rows[source], Q(g[3], g[4])) + else: + N.need(g[0] == 'scale', 'Known scalar action') + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + elif kind == 'warp': + _, r, op, old, new = event; target = tuple(r); touched = target + N.need(current[target] == old, 'Warp input frame') + rows[target] = v.warp(rows[target], op, backward); current[target] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, part, i, old, new, rank = event; target = ('L', i) + N.need(spaces[old] < spaces[new], 'Ascending borrowed climb') + else: + _, i, old, new, rank = event; target = ('C', i) + N.need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested center transport') + N.need(current[target] == old and rank == abs(len(c['frames'][new])-len(c['frames'][old])), 'Paid rank and source frame') + current[target] = new; profile[rank] += 1 + else: + N.need(kind in ('phase', 'adapter', 'residual_adapter'), 'Known inert native marker') + if touched is not None: + norm = sum(map(abs, rows[touched].values()), Q(0)) + if norm > max_l1: + max_l1 = norm; witness = dict(event=j, role=list(touched)) + max_denominator = max(max_denominator, max((x.denominator for x in rows[touched].values()), default=1)) + N.need([current['L', i] for i in range(632)] == c['final'], 'Final native frames') + N.need(not rows['C', 0], 'Owned C0 cleared at return') + return rows, dict(independent_persistent_columns=632, independent_owned_entry_columns=1, + scalar_frames_checked=True, arbitrary_owned_C0_cleared=True, + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*x for k, x in profile.items()), + real_scalar_allowance=cost, max_formal_prefix_l1=str(max_l1), max_denominator=max_denominator, + l1_witness=witness) + + +def check_rows(v, rows, geo, kind, backward=False, cache_roles=()): + mismatch = [] + for r in range(632): + actual = rows['L', r] + if kind == 'wrapped' and r < 224: + port = r % 112; wanted = {} + for j, q in geo['H'][port].items(): + v.add(wanted, v.identity(('L', (112 if r >= 112 else 0)+j)), q) + if backward and r < 112: + v.add(wanted, v.identity(('L', 112+j)), -q) + if not backward and r >= 112: + v.add(wanted, v.identity(('L', j)), q) + else: + wanted = v.identity(('L', r)) + if 112 <= r < 224: + for j, q in geo['H'][r-112].items(): + v.add(wanted, v.identity(('L', j)), q) + if r in cache_roles: + k = list(cache_roles).index(r) + for j, q in {geo['selected'][k]: Q(1), **geo['L'][k]}.items(): + v.add(wanted, v.identity(('L', j)), q) + if actual != wanted: + mismatch.append(r) + N.need(not mismatch, 'Fresh exact endpoint mismatch '+repr(mismatch[:5])) + + +def check_scalar_h(v, geo): + """Independent112-column execution without native body or Clifford data.""" + rows = {i: {i: Q(1)} for i in range(112)} + program = common_frame_h(geo, 0, 0) + for event in program: + if event[0] != 'scalar': + continue + g = event[1]; target = g[1][1] + if g[0] == 'scale': + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + else: + v.add(rows[target], rows[g[2][1]], Q(g[3], g[4])) + N.need(all(rows[i] == geo['H'][i] for i in range(112)), 'Three balanced shears exactly equal H') + return dict(all_columns=112, real_scalar_allowance=B.scalar_sum(program), + additions=sum(e[0] == 'scalar' and e[1][0] == 'add' for e in program), + unit_add_coefficients=True, owned_fields=0, new_recursive_children=0, + required_physical_precondition='All112 fields occupy one actual common frame reference.') + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--out', type=Path, default=HERE/'extension-certificates') + args = ap.parse_args(); args.out.mkdir(parents=True, exist_ok=True) + N.need(N.digest(HERE/'rebuild_native.py') == B.N_SHA and N.digest(HERE/'power_two_balance.py') == B_SHA, + 'Authenticated fresh prerequisite sources') + p, v, ce, receipt, inherited = N.authenticated(); geo = N.geometry(v.PACKET) + result = dict(schema='fresh-native-helper-log-and-common-frame-conjugation/1', + source_sha256=N.digest(Path(__file__)), reconstruction_source_sha256=B.N_SHA, + balance_source_sha256=B_SHA, scalar_H=check_scalar_h(v, geo), providers={}, no_new_kappa_claimed=True) + for tag in N.TAGS: + c = N.read(N.BASE/(tag+'-CANONICAL.json.gz')); word = N.read(N.BASE/(tag+'-NATIVE-WORD.json.gz')) + base_scalar = B.scalar_sum(word['forward']) + roles = embedded_cache_roles(c); embedded = make_embedded_logger(c, word, geo) + rows, embedded_check = literal_replay(v, c, embedded) + check_rows(v, rows, geo, 'embedded', cache_roles=roles) + N.need(embedded_check['real_scalar_allowance'] == base_scalar+3504+3440, 'Embedded complete scalar invoice') + wrapped = make_wrapped_h(c, word, geo); wrapped_checks = {} + for direction, program in wrapped.items(): + back = direction == 'backward' + rows, checked = literal_replay(v, c, program, back) + check_rows(v, rows, geo, 'wrapped', back) + N.need(checked['real_scalar_allowance'] == base_scalar+3504+2*10096, 'Wrapped H complete scalar invoice') + wrapped_checks[direction] = checked + ep = args.out/(tag+'-EMBEDDED-LOGGER.json.gz'); wp = args.out/(tag+'-SCALAR-WRAPPED-H.json.gz') + result['providers'][tag] = dict( + embedded_logger=dict(artifact=ep.name, sha256=N.save(ep, embedded), check=embedded_check, + cache_roles=roles, exactly_400_other_helpers_restored=True, + cache_output='d_k + X_A[k] + L[k] X_U', extra_children=0, + extra_persistent_fields=0, extra_owned_fields=0, extra_scalar_allowance=3440, + independent_clean_output_credit_for_eight_caches=False), + scalar_wrapped_H=dict(artifact=wp.name, sha256=N.save(wp, wrapped), checks=wrapped_checks, + endpoint='diag(H,H) times the corresponding identity shear in local logical coordinates', + new_recursive_children_beyond_H=0, extra_scalar_allowance=20192, + all_408_helpers_restored=True, + outer_intercall_frame_identification_certified=False)) + N.save(args.out/'RESULT.json', result) + print('PASS extensions', tag, 'embedded0 extra children; wrapped H20192 extra scalars', flush=True) + result['status'] = 'PASS_LOCAL_NATIVE_ENDPOINTS_WITH_EXPLICIT_OUTER_FRAME_OBLIGATION' + N.save(args.out/'RESULT.json', result) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py new file mode 100644 index 0000000000..340e1f0ffb --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +"""Exact endpoint refill conditional on the source PR4359 construction. + +Apache-2.0. Substantial OpenAI assistance. The mixed inventory and elementary +function enclosure are zxv's PR4359; mixed-target flow is Jacob Alan Sussman's +Theorem 1G. Outer formulas retain the attribution in PR4359 outer_parameters.py. +This file checks arithmetic, not the native or all-size proof hypotheses. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +PREFIX = Path('research/kappa-rebuild') +OLD_BASELINE = Q('0.001730970419199163702738') +KAPPA = Q('0.00230509') +TESTED = Q('0.00230509019') +ROOT_UPPER = Q('0.002306') + + +def need(value, message): + if not value: + raise AssertionError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def ceil(value): + value = Q(value) + return -((-value.numerator) // value.denominator) + + +def encode(value): + if isinstance(value, Q): + return str(value) + if isinstance(value, dict): + return {str(k): encode(v) for k, v in value.items()} + if isinstance(value, (tuple, list)): + return [encode(v) for v in value] + return value + + +def family(kappa, tested): + """One explicit slack family approaching the same source mixed root.""" + need(Q(0) < kappa < tested < ROOT_UPPER, 'Positive strictly ordered savings') + d = (tested-kappa)/7 + return {'kappa': kappa, 'tested_saving': tested, + 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, + 'bit_saving': Q('0.0027'), 'epsilon': 1-d, 'beta': 1-3*d, + 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + + +def ledger(p): + """Recompute all 54 named PR4359 checks with freely supplied parameters.""" + kappa, b, a, q = (p[key] for key in ('kappa', 'b', 'a', 'q')) + epsilon, beta, r0, stop, layout = (p[key] for key in + ('epsilon', 'beta', 'r0', 'stop', 'layout')) + sigma, tau = 1-b, 1-a + internal = tau+(1-stop)*max(sigma-tau, Q(0)) + leaf = sigma+stop*(1-sigma) + lam, c = 1-(q+a)/2, Q(3, 32) + xi, key = epsilon*(1+q)-c+layout, beta+1-epsilon + margins = { + 'main_transform': epsilon*q, + 'global_coordinate_router': a, + 'fused_gaussian': 1-epsilon+q*beta, + 'group_bit_router': 1-epsilon+a*beta, + 'group_scans': 1-epsilon+beta, + 'boundary_algebraic_matrix': c+xi-epsilon, + 'sparse_union_movement': xi+Q(1, 2)-epsilon, + 'polynomial_products': epsilon, + 'microbox_face_corrections': 1-(epsilon+beta+48-128+2), + } + checks = { + 'actual_bit_above_effective': p['bit_saving']-a, + 'complex_above_effective': b-a, + 'q_positive': q, 'complex_endpoint': b-q, 'q_below_effective': a-q, + 'stop_positive': stop, 'stop_below_one': 1-stop, + 'leaf_saving_above_effective': (1-stop)*b-a, + 'q_below_internal': 1-internal-q, 'q_below_leaf': 1-leaf-q, + 'lambda_above_tau': lam-tau, 'lambda_above_sigma': lam-sigma, + 'lambda_above_internal': lam-internal, + 'lambda_prime_above_lambda': 1-q-lam, + 'lambda_prime_above_leaf': 1-q-leaf, + 'epsilon_positive': epsilon, 'epsilon_below_one': 1-epsilon, + 'cap_above_band': xi-Q(1, 2), 'cap_below_cell': epsilon-xi, + 'group_positive': beta, 'group_below_dimension': epsilon-beta, + 'support_router_span': 1-beta, + 'group_gauge_power_slack': 1-(2*xi-2)-r0-beta, + 'actual_logarithmic_group_guard': 1-(2*xi-2)-beta, + 'global_gamma_power_slack': 1-epsilon-r0, + 'actual_logarithmic_gamma_guard': 1-epsilon, + 'alpha_logarithm_absorption': r0, + 'group_key_fits_record': 1-key, + 'membership_arithmetic_fits_record': 1-beta-2*(1-epsilon), + 'microbox_halo_volume': 128-48-beta, + 'positive_layout_slack': layout, + 'short_record_fallback': epsilon-a, + 'complex_below_one_over_32': Q(1, 32)-b, + 'strassen_integer_power_gap': Q(2**45-7**16), + 'theta_positive_polynomial_power': Q(2), + 'cap_below_phase_cell_power': 2-xi, + 'halo_covers_generic_inverse_radius': Q(48-43), + 'union_tag_work_per_visit_fits_record': 1-beta, + 'union_header_fits_record': 1-beta, + 'source_axis_superpolynomial': 1-epsilon, + 'gaussian_above_main': margins['fused_gaussian']-margins['main_transform'], + 'new_complex_uniform_saving_above_b': p['complex_uniform_saving']-b, + 'improvement_over_user_baseline': kappa-OLD_BASELINE, + 'new_semantic_guard_with_C1_one': 1-epsilon, + 'fine_prime_halo_umbrella': 10-(2*2+2+Q(1, 2)), + } + checks.update({name+'_above_kappa': value-kappa for name, value in margins.items()}) + # These are the additional functional conditions in the independent + # PR4359 outer_transfer_audit.py, beyond the 54-row parameter ledger. + functional = { + 'new_semantic_group_guard': 1-beta, + 'new_BIT_row_stock_sublinear_in_active_group': beta*(1-Q(3, 1000)), + 'fixed_halo_explicit_metadata_branch': 128-48-epsilon-beta-1, + } + return {'parameters': dict(p, cap_xi=xi, lambda_=lam, lambda_prime=1-q), + 'margins': margins, 'strict_checks': checks, 'functional_checks': functional} + + +def compiler_rank(E, targets, paid, tested, uniform): + """The original sufficient bound, re-instantiated for the new exponent.""" + m, kmin, rmax = max(targets), min(targets), max(paid) + need((m, kmin, rmax) == (57, 6, 5), 'Pinned complex separation') + t, z = 1-tested, 1-uniform + z0, h = (t+z)/2, Q(1, 10) + delta = z0-t + need(0 < t < z0 < z < 1, 'Compiler exponent order') + need(5**10 < 6**9 and 57 < 2**10, 'Exact source rank bounds') + need(z0 > Q(1, 2) and (1-z0)*E.log_interval(m)[1] < E.log_interval(2)[0], + 'Original eta strictly exceeds 1/4') + H0 = ceil((3+4*delta)/(h*delta)) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= m.bit_length() and H0*h*delta >= 3+4*delta, 'Induction starts') + need(H1*(z-z0) > H0*(1-z0), 'Strict winning uniform rank') + need((H0-1)*h*delta < 3+4*delta, 'Reject one lower threshold exponent') + need((H1-1)*(z-z0) <= H0*(1-z0), 'Reject one lower final exponent') + return {'t': t, 'z0': z0, 'z': z, 'theta_upper': Q(9, 10), + 'H0': H0, 'H1': H1, 'N_encoding': '2^H1', + 'strict_final_gap': H1*(z-z0)-H0*(1-z0), + 'winning_word_materialized': False, + 'bound': 'Original sufficient inequality; a sharper bound is separate.'} + + +def run(source_root): + base = source_root/PREFIX + interval_path = base/'architecture/mixed_target_probe.py' + spec = importlib.util.spec_from_file_location('pr4359_moment', interval_path) + E = importlib.util.module_from_spec(spec) + spec.loader.exec_module(E) + cover = read(base/'controller/P3-NATIVE-COVER.json.gz')['cover'] + targets = {int(k): int(v) for k, v in cover['targets'].items()} + paid = {int(k): int(v) for k, v in cover['paid'].items()} + need(targets == {6: 192, 7: 56, 8: 93, 9: 1229, 25: 448, 57: 224}, + 'Exact source productive inventory') + need(paid == {1: 17623, 2: 5065, 3: 1738, 4: 714, 5: 254}, + 'Exact source paid inventory') + signed = Counter(targets) + signed.subtract(paid) + need(sum(k*v for k, v in signed.items()) == 224, 'Rank-one surplus') + bracket = {'lower': E.moment(signed, TESTED), 'upper': E.moment(signed, ROOT_UPPER)} + need(bracket['lower'][0] > 0 and bracket['upper'][1] < 0, + 'Strict mixed test and upper root bound') + + original = read(base/'controller/OUTER-PARAMETERS.json')['outer'] + old = ledger({'kappa': Q('0.0023'), 'complex_uniform_saving': Q('0.002304'), + 'b': Q('0.002303'), 'a': Q('0.0023025'), 'q': Q('0.002302'), + 'bit_saving': Q('0.0027'), 'epsilon': Q('0.99999'), + 'beta': Q('0.99997'), 'r0': Q(1, 10**6), + 'stop': Q(1, 10**8), 'layout': Q(1, 10**6)}) + for group in ('margins', 'strict_checks'): + frozen = {key: Q(value['rational']) for key, value in original[group].items()} + need(old[group] == frozen, 'Exact reproduction of every old '+group) + p = family(KAPPA, TESTED) + result = ledger(p) + need(all(v > 0 for v in result['strict_checks'].values()), 'All 54 new outer predicates') + need(all(v > 0 for v in result['functional_checks'].values()), 'Additional functional predicates') + need(min(result['margins'].values()) == result['margins']['main_transform'], + 'Main transform remains limiting') + need(result['parameters']['cap_xi'] == Q(29, 32)+(1-p['d'])*p['q'], + 'Cofinal cap simplification') + controls = {} + for label, updates in [('closed_epsilon_gap', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': Q('0.002306')}), + ('BIT_below_effective', {'bit_saving': OLD_BASELINE}), + ('no_complex_slack', {'complex_uniform_saving': p['b']})]: + tested = ledger(dict(p, **updates)) + failures = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failures, 'Mutation rejected: '+label) + controls[label] = failures + need(E.moment(signed, Q('0.004'))[1] < 0, 'Unsupported mixed target is rejected') + inputs = [interval_path, base/'controller/P3-NATIVE-COVER.json.gz', + base/'controller/OUTER-PARAMETERS.json'] + return encode({'schema': 'pr4359-cofinal-outer-refill/1', + 'status': 'PASS_EXACT_CONDITIONAL_ENDPOINT_REFILL', + 'kappa': KAPPA, 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'unchanged_paid': paid, 'unchanged_targets': targets, + 'mixed_test_saving': TESTED, 'mixed_test_margin': E.show(bracket['lower']), + 'root_upper_test': ROOT_UPPER, 'root_upper_margin': E.show(bracket['upper']), + 'old_ledger_crosscheck': {'matched_savings': len(old['margins']), + 'matched_checks': len(old['strict_checks'])}, + 'outer': result, 'limiting_margin': min(result['margins'].values())-KAPPA, + 'compiler': compiler_rank(E, targets, paid, TESTED, p['complex_uniform_saving']), + 'negative_controls': controls, + 'source_sha256': {str(p.relative_to(source_root)): sha256(p.read_bytes()).hexdigest() + for p in inputs}, + 'scope': 'Conditional arithmetic and specified finite rank. The PR4359 native, compiler, cover, precision, fixed-tape and outer hypotheses remain premises; no full theorem or practical word is certified.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=HERE/'source') + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = run(args.source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'limiting_margin', 'compiler')}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/certificates/selected-result.json @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json new file mode 100644 index 0000000000..b6c9cd0da1 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR-5383.json @@ -0,0 +1,961 @@ +{ + "arithmetic": { + "PR5377_raw_root_upper": "75559684087/25000000000000", + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000199495867924466542600392", + "upper": "0.000000199495867924466542600393" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "529667/175000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195473.450610684184815935477074865515", + "upper": "-195473.450610684184815935477074865514" + }, + "remaining_interval_moment_upper": { + "lower": "-6820.155255095433991980526890420873", + "upper": "-6820.155255095433991980526890420872" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "24421/5000000000", + "gain_over_PR5377": "431/100000000", + "kappa": "151333/50000000", + "kappa_decimal": ".00302666", + "margin_at_previous_kappa": { + "lower": "1.209169472215494738857340795394", + "upper": "1.209169472215494738857340795395" + }, + "margin_at_previous_root_upper": { + "lower": "1.209152002019805295008574084544", + "upper": "1.209152002019805295008574084545" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 8, + "local_routes": 4834000, + "local_scalar": 158744, + "owned_slots_backward": 17, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "89109113099576267/98000000000000000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "lambda_": "199394667/200000000", + "lambda_prime": "139576267/140000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_calls": 64148, + "productive_fields": 10800, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "1476807/100000000000000", + "184601/12500000000000" + ], + "raw_root_interval": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999995016963387587258118166", + "upper": "0.999999995016963387587258118167" + }, + "cutoff": 20, + "delta": { + "lower": "0.951652473261883819699264316643", + "upper": "0.951652473261883819699264316644" + }, + "floor": 21, + "gamma": { + "lower": "0.956968564096059991841792406781", + "upper": "0.956968564096059991841792406782" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "302667/100000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_owned_entry_columns": 17, + "independent_persistent_columns": 624, + "max_denominator": 64, + "max_formal_prefix_l1": "163", + "owned_outputs_zero": true, + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "real_scalar_allowance": 158744, + "zero_identities": 8 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "checked": [ + [ + "center", + 11332 + ], + [ + "center", + 11358 + ], + [ + "center", + 11384 + ], + [ + "center", + 11410 + ], + [ + "center", + 11436 + ], + [ + "center", + 11462 + ], + [ + "center", + 11488 + ], + [ + "center", + 11514 + ], + [ + "zero", + 15584 + ], + [ + "zero", + 15870 + ], + [ + "zero", + 15876 + ], + [ + "zero", + 17245 + ], + [ + "zero", + 17256 + ], + [ + "zero", + 17264 + ], + [ + "zero", + 17580 + ], + [ + "zero", + 17722 + ] + ], + "owned_pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 288 + ], + "reduced_basis": { + "225": { + "225": "1", + "384": "-1", + "388": "-1", + "390": "1", + "391": "1", + "392": "1", + "397": "-1" + }, + "227": { + "227": "1", + "231": "1", + "232": "-1", + "234": "1", + "235": "1", + "237": "1", + "238": "-1", + "239": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "229": { + "229": "1", + "231": "-1", + "236": "-1", + "238": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "230": { + "230": "1", + "324": "-1", + "326": "1", + "328": "1", + "333": "-1" + }, + "241": { + "241": "1", + "243": "-1", + "253": "-1", + "255": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + "245": { + "245": "1", + "247": "-1", + "252": "-1", + "254": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "257": { + "257": "1", + "259": "-1", + "261": "1", + "263": "-1", + "268": "-1", + "269": "-1", + "270": "1", + "271": "1" + }, + "288": { + "288": "1", + "294": "-1", + "296": "-1", + "297": "-1", + "300": "1", + "303": "1" + } + }, + "relation_rank": 8, + "snapshot_terms_before_substitution": { + "11205": 61, + "11218": 63, + "11231": 73, + "11244": 68, + "11257": 64, + "11270": 75, + "11283": 64, + "11306": 62 + }, + "source_event_indices_are_zero_based": true, + "witnesses": [ + { + "cached_event": 11205, + "cached_role": 92, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11332, + "frame": 254, + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 15584, + "zero_factor": "-1/4", + "zero_role": 92 + }, + { + "cached_event": 11218, + "cached_role": 57, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11358, + "frame": 274, + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17264, + "zero_factor": "-1/4", + "zero_role": 57 + }, + { + "cached_event": 11231, + "cached_role": 81, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11384, + "frame": 619, + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17256, + "zero_factor": "-1/4", + "zero_role": 81 + }, + { + "cached_event": 11244, + "cached_role": 224, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11410, + "frame": 279, + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 17722, + "zero_factor": "1/4", + "zero_role": 224 + }, + { + "cached_event": 11257, + "cached_role": 11, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11436, + "frame": 621, + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "zero_event": 15876, + "zero_factor": "-1/4", + "zero_role": 11 + }, + { + "cached_event": 11270, + "cached_role": 240, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11462, + "frame": 280, + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17245, + "zero_factor": "1/4", + "zero_role": 240 + }, + { + "cached_event": 11283, + "cached_role": 9, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11488, + "frame": 624, + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "zero_event": 15870, + "zero_factor": "-1/4", + "zero_role": 9 + }, + { + "cached_event": 11306, + "cached_role": 288, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11514, + "frame": 281, + "relation": [ + [ + 288, + "1" + ], + [ + 294, + "-1" + ], + [ + 296, + "-1" + ], + [ + 297, + "-1" + ], + [ + 300, + "1" + ], + [ + 303, + "1" + ] + ], + "zero_event": 17580, + "zero_factor": "-1/4", + "zero_role": 288 + } + ] + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Declared zero identity" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS", + "word_payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json new file mode 100644 index 0000000000..193625791f --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/PREDECESSOR.json @@ -0,0 +1,24 @@ +{ + "predecessor_pr": 5377, + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "author": "Ali Romman", + "files": { + "native.py": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "price.py": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "README.md": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "RESULT.json": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "SOURCES.json": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "TASK.json": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "VERIFY.json": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "verify.py": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "WORD.json.gz": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc" + }, + "new_scope": "Joint eight-relation construction, eight snapshots, sixteen removed native jobs per backward call. Direct adaptation of predecessor interpreter and pricing; not an independent implementation.", + "concurrent_predecessor": { + "pr": 5383, + "head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "receipt_sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "credit": "Ali Romman", + "scope": "Same eight-relation mechanism published during our construction; no priority claimed. Our new result tightens finite compiler/outer margin with a smaller completion reserve." + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md new file mode 100644 index 0000000000..17901a8af8 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/README.md @@ -0,0 +1,63 @@ +# Smaller completion reserve for the eight-relation supplier + +This package supplies **conditional κ = 0.003026674765**, improving Ali Romman’s PR #5383 value 0.00302666 by **0.000000014765** on the same complete recursive paid/target profile. The gain is a small finite compiler-margin refinement, not a new native mechanism or a practical speedup. The selected frontier remains unchanged. RESULT.json is the replay receipt; the claim requires all checks below to pass. + +## Exact contribution and predecessor overlap + +We first reconstructed eight compatible helper relations from PR #5377’s one-relation argument. During that work, PR #5383 published the same eight-relation mechanism, at head `4bd6efa51a495a7c7b7754915cf0244e7e60969e`. We therefore credit that mechanism to the public predecessor and make no priority claim. The new result shrinks the exact completion reserve from 10⁻⁹ to 10⁻¹² and funds a higher tested saving and outer endpoint. Both constructions have the same full bill, verified explicitly against the retained PR #5383 receipt. Our preparation ordering has its own scalar allowance, charged afresh. + +The local native checker and pricing code are direct adaptations of Ali Romman’s PR #5377 at `c448d13c71908647f968b06cddb795ce7d288139`. They are not independent implementations of those engines. PREDECESSOR.json pins the downloaded sources and concurrent receipt. No pending PR object is needed at runtime: the new construction and receipt are retained here, and every external replay input is on the pinned main base in SOURCES.json. + +## Sufficient construction + +Let the eight rational forms in RELATIONS.json vanish. Exact row reduction has pivot columns 225, 227, 229, 230, 241, 245, 257 and 261, so each of these helpers can be prepared from the other independent cold helpers with dyadic operations. No pivot occurs on another pivot’s prepared right-hand side. Clear each private pivot, prepare it, execute the native word, then clear its output. This removes eight productive rank-9 targets per backward invocation; those targets are never credited. + +For each of the eight sites, the unrestricted original source satisfies two exact identities: the center row minus the saved row is a nonzero rational multiple of its relation, and the later rank-1 input row is a rational multiple of that same relation. All sixteen identities are replayed by the retained predecessor row engine before imposing the relations. Under the joint preparation, the center equals the saved value in the exact same physical frame and the later row is identically zero. Thus an owned COPY replaces each rank-8 center and identity on zero replaces each rank-1 transport. Eight distinct snapshot fields are retained across overlapping lifetimes; none is reused early. + +The new chronological interpreter checks every remaining scalar contact, owned erasure, native boundary, paid rank and terminal frame. Backward calls preserve all 224 main inputs and 400 independent helper inputs, and erase all 17 owned entry fields. Forward calls preserve their original 632 persistent inputs. The phase/map/adapter sequences are unchanged and bound to the source phase receipt. Copies and clears introduce no new Gaussian phase recipe. This is an exact symbolic all-input argument under the retained physical representation contracts, not numerical sampling. + +## Complete bill and conditional exponent + +The p16/a7 controller has 16 backward and two forward invocations, 15 query shears and its retained idle and boundary programs. Relative to the selected PR #4610 source, the change is −128 H1 and −128 H8 paid jobs and −128 H9 productive targets. For 0 < t < 1, the net target-minus-paid moment gain is + +`128 (1 + 8^t − 9^t) > 0`, + +by strict subadditivity of x ↦ x^t on positive reals. This mechanism and bill are already in PR #5383. There are 64,148 paid jobs, 10,800 productive fields and rank surplus 752. No extra target credit is obtained from owned pivots or snapshot fields. + +The fixed-profile root remains in `(0.00302667476807, 0.00302667476808)`. We use tested saving `C = 0.003026674766`, completion reserve `ρ = 10⁻¹²`, tensor power `v = 1024`, cutoff 20, completion floor 21 and tail offset 1/5. Two rational interval engines certify the complete target and paid moments. The compiler needs all of: + +- `α < 1 − ρ`, where α is the full paid-to-target moment ratio; +- both charged tail ratios below 97/100 and `(97/100)^128 < 1/16`; +- the exact normalized completed bound `1/(1 + 1024 ρ) + 4/2^32 < 1`; +- the retained shifted-exit, rounding and complement-capacity inequalities. + +The smaller reserve is useful because it leaves enough moment margin near the raw root, but it is not free: shrinking it too far would violate the fixed rounding allowance in the third inequality. All these conditions are rechecked, not inferred from the sign of the raw moment. + +Let κ = 0.003026674765 and gap = (C − κ)/7 = 1/7,000,000,000,000. The uniform-rank compiler uses logarithmic power 1000 and computes an integer j satisfying `(gap.denominator * j + 1)^1000 < 2^j`; it checks that the preceding integer fails. The resulting finite height H and threshold N = 2^H are recorded in RESULT.json. Every intermediate saving has an explicit gap, and all 54 strict plus four functional outer predicates are positive. The construction is algorithmically specified; the enormous expanded word is not materialized. + +All preparation, snapshot, cleanup and route work is charged. Eight new snapshot slots and sixteen additional owned lifetimes receive two routes each. The full nonrecursive bound remains below 10^9; exact scalar and route counts appear in RESULT.json. Formal prefix norms and denominators are checked against the retained 2^192 envelope; that check does not replace a physical precision execution. + +## Reproduction and scope + +Python 3.12, standard library only, portable relative paths: + +```sh +python3 -B scripts/research_package.py --package research/eight-owned-relations +python3 -B scripts/check_research_commit.py --package research/eight-owned-relations +``` + +Both registered normal and optimized runs are read-only. `verify.py --write` explicitly regenerates only this package’s word and receipt. Checks cover exact row reduction, all source identities, complete native endpoints and ownership, exact word bytes, controller factorization, independent invoice counting, directed intervals, compiler and outer predicates. Wrong signs in every prepared pivot, wrong snapshot/gauge, missing owned clears and corrupted ranks are rejected. The old 10⁻⁹ reserve is rejected at the new tested saving, and a 10⁻¹³ reserve is rejected for insufficient rounding budget. Source phase lowering is authenticated and reused, not rerun. + +The result retains the selected framework’s permitted-erasure, whole-job mixed-target all-size/native, precision/tape, analytic, prime and exact-recovery contracts. Physical tape execution, analytic decomposition, BIT native replay, full source phase lowering, Lean/kernel verification, hosted CI and independent human acceptance are not supplied here. The source admission review for #4610/#5241 does not automatically admit this changed inventory. Chris R’s concurrent PR #5384 independently validates the single-relation predecessor; it does not validate this eight-relation compiler endpoint. No unconditional integer-multiplication theorem or selected-result change is claimed. Full-history ancestry checking is not claimed for this shallow checkout. + +## Open next questions + +Independent review should check the new reserve against the completed-bound inequality and the finite compiler at the exact printed constants, then the applicability of inherited transfer assumptions. Begin with price.py and the complete invoice in RESULT.json. See TASK.json for the structured question. A further native/profile improvement is a different task; this result supplies no global ceiling for all helper relations. + +## Credit + +Ali Romman, with OpenAI Codex assistance: PR #5377’s one-relation mechanism and source/pricing implementation, and PR #5383’s public eight-relation construction and prior bound. Cao Yifan: final native word, phase evidence and earlier compiler tightening in PR #4610. Chris R: independent selected-source admission in PR #5241. Cinna Davis: p16 controller and helper lineage in PR #4470. zxv: productive-helper framework, completion/compiler and the PR #5283 cache-contract handoff. Jacob Alan Sussman: mixed-target recursion. Dugongue: retained transported-frame lineage and this compiler-margin refinement. ToikY and all earlier native, Clifford, BIT, precision and analytic contributors retain their source credit. The smaller-reserve technique already occurs in the selected #4610/#5241 compiler audit; we claim its new certified application to this bill, not invention of that technique. + +Latest overlap check covered all 214 open PR search results containing “kappa”, the 100 recently updated PRs, and targeted bodies through #5384. Larger draft #5270 is not used: #5349 documents a physical-reference/controller binding mismatch. This bounded search is not exhaustive literature or Discussion coverage. + +Prepared by Dugongue with substantial OpenAI Codex assistance, solo. Apache-2.0. Exact predecessor and source hashes are retained. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json new file mode 100644 index 0000000000..f558b9ddd9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RELATIONS.json @@ -0,0 +1,652 @@ +{ + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "rows": [ + { + "225": "1", + "384": "-1", + "388": "-1", + "390": "1", + "391": "1", + "392": "1", + "397": "-1" + }, + { + "227": "1", + "231": "1", + "232": "-1", + "234": "1", + "235": "1", + "237": "1", + "238": "-1", + "239": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + { + "229": "1", + "236": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2", + "231": "-1", + "238": "1" + }, + { + "230": "1", + "324": "-1", + "326": "1", + "328": "1", + "333": "-1" + }, + { + "241": "1", + "243": "-1", + "253": "-1", + "255": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + { + "245": "1", + "247": "-1", + "252": "-1", + "254": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + { + "257": "1", + "259": "-1", + "269": "-1", + "271": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + { + "261": "1", + "263": "-1", + "268": "-1", + "270": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + } + ], + "sites": [ + { + "score": 0.009448442829157244, + "center": 11332, + "snapshot": 11205, + "role": [ + "L", + 92 + ], + "frame": 254, + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zeros": [ + [ + 15584, + 1, + [ + "L", + 92 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11358, + "snapshot": 11218, + "role": [ + "L", + 57 + ], + "frame": 274, + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zeros": [ + [ + 17264, + 1, + [ + "L", + 57 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11384, + "snapshot": 11231, + "role": [ + "L", + 81 + ], + "frame": 619, + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zeros": [ + [ + 17256, + 1, + [ + "L", + 81 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11410, + "snapshot": 11244, + "role": [ + "L", + 224 + ], + "frame": 279, + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zeros": [ + [ + 17722, + 1, + [ + "L", + 224 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11436, + "snapshot": 11257, + "role": [ + "L", + 11 + ], + "frame": 621, + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "zeros": [ + [ + 15876, + 1, + [ + "L", + 11 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11462, + "snapshot": 11270, + "role": [ + "L", + 240 + ], + "frame": 280, + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zeros": [ + [ + 17245, + 1, + [ + "L", + 240 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11488, + "snapshot": 11283, + "role": [ + "L", + 9 + ], + "frame": 624, + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "zeros": [ + [ + 15870, + 1, + [ + "L", + 9 + ] + ] + ] + }, + { + "score": 0.009448442829157244, + "center": 11514, + "snapshot": 11296, + "role": [ + "L", + 256 + ], + "frame": 281, + "relation": [ + [ + 225, + "1" + ], + [ + 257, + "-1" + ], + [ + 259, + "1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "1" + ], + [ + 270, + "1" + ], + [ + 271, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zeros": [ + [ + 17233, + 1, + [ + "L", + 256 + ] + ] + ] + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json new file mode 100644 index 0000000000..2e13818df0 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/RESULT.json @@ -0,0 +1,429 @@ +{ + "arithmetic": { + "compiler": { + "H": 409549000000000000, + "N": "2^409549000000000000", + "eta": { + "lower": "0.000000199491021599850733809086", + "upper": "0.000000199491021599850733809087" + }, + "gap": "1/7000000000000", + "integer_test_exponent": 58507, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "21186723361/7000000000000", + "word_materialized": false + }, + "completion_reserve": "1/1000000000000", + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195473.450610684184815935477074865515", + "upper": "-195473.450610684184815935477074865514" + }, + "remaining_interval_moment_upper": { + "lower": "-6820.155255095433991980526890420873", + "upper": "-6820.155255095433991980526890420872" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "979793/200000000000", + "gain_over_PR5383": "2953/200000000000", + "kappa": "605334953/200000000000", + "kappa_decimal": ".003026674765", + "margin_at_previous_kappa": { + "lower": "1.209169472215494738857340795394", + "upper": "1.209169472215494738857340795395" + }, + "margin_at_previous_root_upper": { + "lower": "1.209152002019805295008574084544", + "upper": "1.209152002019805295008574084545" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 8, + "local_routes": 4834000, + "local_scalar": 158776, + "owned_slots_backward": 17, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "1742999999999253/1750000000000000", + "fixed_halo_explicit_metadata_branch": "134750000000001/1750000000000", + "new_BIT_row_stock_sublinear_in_active_group": "6978999999997009/7000000000000000", + "new_semantic_group_guard": "3/7000000000000" + }, + "margins": { + "boundary_algebraic_matrix": "74153531756489406638321/24500000000000000000000000", + "fused_gaussian": "74153531756468219914963/24500000000000000000000000", + "global_coordinate_router": "21186723359/7000000000000", + "group_bit_router": "148307063519936439829923/49000000000000000000000000", + "group_scans": "3499999999999/3500000000000", + "main_transform": "74153531752989406638321/24500000000000000000000000", + "microbox_face_corrections": "134750000000001/1750000000000", + "polynomial_products": "6999999999999/7000000000000", + "sparse_union_movement": "10027278531756489406638321/24500000000000000000000000" + }, + "parameters": { + "a": "21186723359/7000000000000", + "b": "132417021/43750000000", + "beta": "6999999999997/7000000000000", + "bit_saving": "17/5000", + "cap_xi": "22277278531752989406638321/24500000000000000000000000", + "complex_uniform_saving": "21186723361/7000000000000", + "d": "1/7000000000000", + "epsilon": "6999999999999/7000000000000", + "kappa": "605334953/200000000000", + "lambda_": "1993946650469/2000000000000", + "lambda_prime": "3489406638321/3500000000000", + "layout": "1/7000000000000", + "q": "10593361679/3500000000000", + "r0": "1/70000000000000", + "stop": "1/7000000000000", + "tested_saving": "1513337383/500000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "2613276641/7000000000000", + "actual_logarithmic_gamma_guard": "1/7000000000000", + "actual_logarithmic_group_guard": "2222721468252260593361679/12250000000000000000000000", + "alpha_logarithm_absorption": "1/70000000000000", + "boundary_algebraic_matrix_above_kappa": "13989406638321/24500000000000000000000000", + "cap_above_band": "10027278531752989406638321/24500000000000000000000000", + "cap_below_cell": "2222721468243510593361679/24500000000000000000000000", + "cap_below_phase_cell_power": "26722721468247010593361679/24500000000000000000000000", + "complex_above_effective": "1/7000000000000", + "complex_below_one_over_32": "1234770479/43750000000", + "complex_endpoint": "1/3500000000000", + "epsilon_below_one": "1/7000000000000", + "epsilon_positive": "6999999999999/7000000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "13968219914963/24500000000000000000000000", + "gaussian_above_main": "1739406638321/12250000000000000000000000", + "global_coordinate_router_above_kappa": "1/1750000000000", + "global_gamma_power_slack": "9/70000000000000", + "group_below_dimension": "1/3500000000000", + "group_bit_router_above_kappa": "34936439829923/49000000000000000000000000", + "group_gauge_power_slack": "2222721468252085593361679/12250000000000000000000000", + "group_key_fits_record": "1/3500000000000", + "group_positive": "6999999999997/7000000000000", + "group_scans_above_kappa": "6978813276643/7000000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647852172900418148631/500000000000000000000000", + "lambda_above_internal": "1/14000000000000", + "lambda_above_sigma": "3/14000000000000", + "lambda_above_tau": "1/14000000000000", + "lambda_prime_above_lambda": "1/14000000000000", + "lambda_prime_above_leaf": "87367582979/306250000000000000000000", + "leaf_saving_above_effective": "43617582979/306250000000000000000000", + "main_transform_above_kappa": "10489406638321/24500000000000000000000000", + "membership_arithmetic_fits_record": "1/7000000000000", + "microbox_face_corrections_above_kappa": "538978813276649/7000000000000", + "microbox_halo_volume": "553000000000003/7000000000000", + "new_complex_uniform_saving_above_b": "1/7000000000000", + "new_semantic_guard_with_C1_one": "1/7000000000000", + "polynomial_products_above_kappa": "1744703319161/1750000000000", + "positive_layout_slack": "1/7000000000000", + "q_below_effective": "1/7000000000000", + "q_below_internal": "1/7000000000000", + "q_below_leaf": "87367582979/306250000000000000000000", + "q_positive": "10593361679/3500000000000", + "short_record_fallback": "43617582979/43750000000", + "source_axis_superpolynomial": "1/7000000000000", + "sparse_union_movement_above_kappa": "9953125000013989406638321/24500000000000000000000000", + "stop_below_one": "6999999999999/7000000000000", + "stop_positive": "1/7000000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/7000000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/7000000000000", + "union_tag_work_per_visit_fits_record": "3/7000000000000" + } + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_calls": 64148, + "productive_fields": 10800, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "307/100000000000000", + "77/25000000000000" + ], + "raw_root_interval": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999999997831927004289535030", + "upper": "0.999999999997831927004289535031" + }, + "cutoff": 20, + "delta": { + "lower": "0.951652475842024105512105409944", + "upper": "0.951652475842024105512105409945" + }, + "floor": 21, + "gamma": { + "lower": "0.956968566609975897371044048406", + "upper": "0.956968566609975897371044048407" + }, + "normalized_paid_upper": "1048576000976562501/1048576001073741824", + "power": 1024, + "reserve": "1/1000000000000", + "tail_offset": "1/5", + "tested": "1513337383/500000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_owned_entry_columns": 17, + "independent_persistent_columns": 624, + "max_denominator": 64, + "max_formal_prefix_l1": "163", + "owned_outputs_zero": true, + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "real_scalar_allowance": 158776, + "zero_identities": 8 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": [ + { + "center": 11332, + "center_factor": "1/4", + "site": 0, + "zero_factor": "-1/4" + }, + { + "center": 11358, + "center_factor": "1/4", + "site": 1, + "zero_factor": "-1/4" + }, + { + "center": 11384, + "center_factor": "1/4", + "site": 2, + "zero_factor": "-1/4" + }, + { + "center": 11410, + "center_factor": "-1/4", + "site": 3, + "zero_factor": "1/4" + }, + { + "center": 11436, + "center_factor": "1/4", + "site": 4, + "zero_factor": "-1/4" + }, + { + "center": 11462, + "center_factor": "-1/4", + "site": 5, + "zero_factor": "1/4" + }, + { + "center": 11488, + "center_factor": "1/4", + "site": 6, + "zero_factor": "-1/4" + }, + { + "center": 11514, + "center_factor": "-1/4", + "site": 7, + "zero_factor": "1/4" + } + ], + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_prepared_pivot_225": "Every independent main/helper endpoint: 0", + "wrong_prepared_pivot_227": "Every independent main/helper endpoint: 0", + "wrong_prepared_pivot_229": "Every independent main/helper endpoint: 1", + "wrong_prepared_pivot_230": "Every independent main/helper endpoint: 0", + "wrong_prepared_pivot_241": "Every independent main/helper endpoint: 1", + "wrong_prepared_pivot_245": "Every independent main/helper endpoint: 1", + "wrong_prepared_pivot_257": "Every independent main/helper endpoint: 1", + "wrong_prepared_pivot_261": "Every independent main/helper endpoint: 1", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Zero identity requires an identically zero full row" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "relation_basis": { + "dyadic": true, + "pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 261 + ], + "rank": 8 + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_003026674765_COMPILER_MARGIN", + "word_payload_sha256": "9aa0d7112b4e13f1aa13a93dab0af6f4435ffe99b842aad841685becdafee492" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json new file mode 100644 index 0000000000..71c57c8a90 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/SOURCES.json @@ -0,0 +1,90 @@ +{ + "schema_version": 1, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "usage": "provenance", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "usage": "provenance", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "provenance", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json new file mode 100644 index 0000000000..8b9df431cc --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/TASK.json @@ -0,0 +1,71 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "changed", + "actual_scope": "Certify conditional kappa 0.003026674765 on the eight-relation bill of PR5383 by shrinking the completion reserve and rechecking the finite compiler and complete outer ledger.", + "scope_change_reason": "Concurrent PR5383 published the same eight-relation mechanism during discovery. Credit that result; the new contribution is a smaller fully charged completion reserve and higher finite conditional endpoint, with a fresh reconstructed native witness.", + "bottleneck_link": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737", + "budget_minutes": 60, + "stop_rule": "Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.", + "outcome": "partial", + "evidence": "Exact simultaneous native replay, source identities, rational row reduction, all-input endpoints, complete controller invoice, two rational interval engines, compiler and outer predicates. Conditional transfer assumptions retained.", + "author": "Dugongue", + "ai_assistance": "Substantial OpenAI Codex assistance, solo; no subagents.", + "open_questions": [ + { + "question": "Can an independent reviewer validate the new completion reserve and its finite-template application?", + "why_it_matters": "The result is conditional and author-checked; the numerical crossing alone is not an admitted supplier.", + "first_step": "Check alpha < 1 - 10^-12, the exact completion bound, finite integer test and all 58 outer predicates against the unchanged complete bill.", + "blocked_by": "Independent admission review remains pending." + } + ], + "coordination": { + "predecessor_discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154290", + "scope": "Compiler-margin refinement of PR5383, not a new claim to eight-relation discovery.", + "coverage": "All 214 open PR search results containing kappa, 100 recently updated PRs and targeted bodies through #5384; incomplete Discussion pagination. Agent CLI authentication returned HTTP 401." + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json new file mode 100644 index 0000000000..8098df4c80 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/VERIFY.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c62fcb59643f87919208100517a2fbc4b57cb7d7 GIT binary patch literal 207423 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 @8=;ymhQDTfhY=Ckg9!C?te#XLVKPXk&MY> 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 literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py new file mode 100644 index 0000000000..86c10d2e1e --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/native.py @@ -0,0 +1,329 @@ +"""Eight jointly prepared helpers remove sixteen paid jobs in the PR4610 backward word. + +Derived from Ali Romman PR5377; joint construction by Dugongue. +Both with substantial OpenAI Codex assistance. Apache-2.0. +The source word is by Cao Yifan. The row convention and scalar allowance +follow the credited native work of Cinna Davis and zxv. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from hashlib import sha1, sha256 +from pathlib import Path +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz' +PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8} +NEW_PAID = dict(OLD_PAID) +NEW_PAID[1] -= 8 +NEW_PAID.pop(8) +OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326} + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def encode(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encode(v) for v in x] + return x + + +def load(relative, name): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(): + pins = read(HERE / 'SOURCES.json') + for row in pins['files']: + if row['usage'] != 'input': + continue + p = ROOT + for part in Path(row['path']).parts: + p /= part + need(not p.is_symlink(), 'No source aliases') + raw = p.read_bytes() + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob') + need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload') + return pins + + +def span(basis): + out = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate') + out |= {v ^ vector for v in tuple(out)} + need(len(out) == 2 ** len(basis), 'Independent frame basis') + return out + + +def add(dst, src, q): + for k, v in tuple(src.items()): + value = dst.get(k, Q(0)) + q * v + if value: + dst[k] = value + else: + dst.pop(k, None) + + +def allowance(g): + if g[0] in ('clear', 'copy'): + return 2 + q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:]) + n, d = abs(q.numerator), q.denominator + need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +RELATIONS = json.loads((HERE / 'RELATIONS.json').read_text()) +PIVOTS = set(RELATIONS['pivots']) +SITES = RELATIONS['sites'] + + +def check_relation_basis(): + rows=[{int(h):Q(q)for h,q in x['relation']}for x in SITES] + pivots=[] + for i in range(8): + need(any(rows[j]for j in range(i,8)), 'Eight independent relations') + h=min(k for j in range(i,8)for k in rows[j]) + j=next(j for j in range(i,8)if rows[j].get(h)) + rows[i],rows[j]=rows[j],rows[i];q=rows[i][h] + rows[i]={k:v/q for k,v in rows[i].items()} + for j in range(8): + if j!=i:add(rows[j],rows[i],-rows[j].get(h,Q(0))) + pivots.append(h) + need(pivots==RELATIONS['pivots'], 'Exact eight-pivot row reduction') + need(rows==[{int(h):Q(q)for h,q in r.items()}for r in RELATIONS['rows']], 'Exact reduced preparation matrix') + need(all(q.denominator & (q.denominator-1)==0 for r in rows for q in r.values()),'Dyadic joint preparation') + return {'rank':8,'pivots':pivots,'dyadic':True} + +def construct(source): + c = source['canonical']; old = source['programs']['backward'] + need(len(PIVOTS) == 8 and len(SITES) == 8, 'Eight pivots and sites') + word = [] + for pivot, rr in zip(RELATIONS['pivots'], RELATIONS['rows']): + row = {int(h): Q(q) for h,q in rr.items()} + need(row[pivot] == 1 and all(row.get(h,0)==0 for h in PIVOTS-{pivot}), 'Reduced independent preparation') + need(all(c['start'][h]==0 and c['final'][h]==1 for h in row), 'Cold full-ended helper relation') + word.append(['scalar',['clear',['L',pivot]],0]) + for h,q in sorted(row.items()): + if h != pivot:word.append(['scalar',['add',['L',pivot],['L',h],(-q).numerator,q.denominator],0]) + centers={x['center']:(j+1,x) for j,x in enumerate(SITES)} + snapshots={x['snapshot']:(j+1,x) for j,x in enumerate(SITES)} + zeros={x['zeros'][0][0]:x for x in SITES} + need(len(centers)==len(snapshots)==len(zeros)==8,'Distinct rewrite events') + for i,event in enumerate(old): + if i in centers: + j,x=centers[i];f=x['frame'] + need(event==['center',0,0,f,8],'Source center') + word += [['scalar',['clear',['C',0]],f],['scalar',['copy',['C',0],['C',j]],f],['scalar',['clear',['C',j]],f]] + elif i in zeros: + x=zeros[i];need(event[0]=='climb' and event[-1]==1,'Source zero job') + word.append(['zero_retag',['L',event[2]],event[3],event[4]]) + else:word.append(deepcopy(event)) + if i in snapshots: + j,x=snapshots[i];f=x['frame'] + word += [['scalar',['clear',['C',j]],f],['scalar',['copy',['C',j],x['role']],f]] + for h in sorted(PIVOTS):word.append(['scalar',['clear',['L',h]],1]) + physical=deepcopy(c);physical.pop('local_profile') + return {'schema':'eight-owned-helper-relations/1','canonical':physical,'paid_profiles':{'forward':OLD_PAID,'backward':NEW_PAID}, + 'owned':{'forward':[['C',0]],'backward':[['C',i] for i in range(9)]+[['L',h]for h in sorted(PIVOTS)]}, + 'programs':{'forward':deepcopy(source['programs']['forward']),'backward':word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', j) for j in range(1,9)} | {('L',h) for h in PIVOTS} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and dst in {tuple(x['zeros'][0][2]) for x in SITES}, 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + need(any(tuple(x['zeros'][0][2])==dst and x['frame']==old and new==1 for x in SITES), 'Declared zero frame change') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == 8*int(specialized), 'Exactly eight checked zero identities') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + need(max_l1 < 2**192 and denominator < 2**192, 'Retained formal prefix envelope') + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 624 if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + v=load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py','eight_relation_source_rows') + rows={('L',i):v.identity(('L',i)) for i in range(632)};rows['C',0]=v.identity(('C',0)) + saved={};receipt=[] + for index,e in enumerate(source['programs']['backward']): + if e[0]=='scalar': + g=e[1];dst=tuple(g[1]) + if g[0]=='clear':rows[dst]={} + elif g[0]=='copy':rows[dst]=dict(rows[tuple(g[2])]) + elif g[0]=='scale':rows[dst]={k:Q(g[2],g[3])*a for k,a in rows[dst].items()} + else:v.add(rows[dst],rows[tuple(g[2])],Q(g[3],g[4])) + elif e[0]=='warp': + dst=tuple(e[1]);rows[dst]=v.warp(rows[dst],e[2],True) + for j,x in enumerate(SITES): + delta={(('L',h),()):Q(q)for h,q in x['relation']} + if index==x['snapshot']:saved[j]=dict(rows[tuple(x['role'])]) + if index==x['center']: + diff=dict(rows['C',0]);v.add(diff,saved[j],-1) + factor=diff.get(min(delta),Q(0))/delta[min(delta)] + need(factor and diff=={k:factor*q for k,q in delta.items()},'Exact unrestricted center identity') + receipt.append({'site':j,'center':index,'center_factor':str(factor)}) + if index==x['zeros'][0][0]: + row=rows[tuple(x['zeros'][0][2])];factor=row.get(min(delta),Q(0))/delta[min(delta)] + need(factor and row=={k:factor*q for k,q in delta.items()},'Exact unrestricted zero identity') + next(z for z in receipt if z['site']==j)['zero_factor']=str(factor) + need(len(receipt)==8 and all('zero_factor'in x for x in receipt),'All sixteen source identities') + return receipt + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for x in SITES for i in (x['center'], x['zeros'][0][0])) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the sixteen proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + for h in sorted(PIVOTS): + bad=deepcopy(base) + next(e for e in bad if e[0]=='scalar' and e[1][:2]==['add',['L',h]])[1][3]*=-1 + variants['wrong_prepared_pivot_'+str(h)]=bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py new file mode 100644 index 0000000000..ffc2b0fdfc --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/price.py @@ -0,0 +1,205 @@ +"""Complete p16 bill and finite compiler for eight jointly prepared helper relations. + +The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna +Davis's PR4470 controller, zxv's completion and logarithmic majorant, and +Jacob Alan Sussman's mixed-target recursion. Apache-2.0. +Derived from Ali Romman PR5377; eight-relation assembly by Dugongue, +with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS + +KAPPA = Q('.003026674765') +TESTED = Q('.003026674766') +PREVIOUS = Q('.0030217758') +OLD_ROOT_UPPER = Q('.00302177587078') + + +def controller(): + """Check the literal p16 word and both rational boundary programs.""" + word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json') + need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller') + zero = (0,) * 34 + def plus(dst, src, q): + for k, v in src.items(): + value = dst.get(k, Q(0)) + q * v + if value: dst[k] = value + else: dst.pop(k, None) + def shifted(row, term, sign=1): + return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row] + for side in ('left', 'right'): + matrix = [[Q(i == j) for j in range(32)] for i in range(32)] + for e in word['boundaries'][side + '_program']: + if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]] + elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]] + else: + need(e[0] == 'ADD', 'Boundary scalar opcode') + matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])] + need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program') + rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']] + for e in word['physical_events']: + if e[0] in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, back = e + x, y = 2 * pair, 2 * pair + 1 + if back: x, y = y, x + term = (1 if back else -1,) + (0,) * 33 + for dst, src in zip(rows[y], shifted(rows[x], term)): + plus(dst, src, Q(-1 if back else 1)) + if e[0] == 'LOCAL': + term = (0,) + tuple(int(s == stage) for s in range(33)) + for r in (x, y): rows[r] = shifted(rows[r], term) + elif e[0] == 'IDLE': + term = (0,) + tuple(int(s in e[2]) for s in range(33)) + for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term) + elif e[0] == 'ADD': + for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3])) + else: + need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode') + rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1) + out = [[{} for _ in range(32)] for _ in range(32)] + for i, row in enumerate(word['boundaries']['left']): + for k, q in enumerate(row): + if Q(q): + for j in range(32): plus(out[i][j], rows[k][j], Q(q)) + expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)] + need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors') + return word + + +def assemble(native, word): + T, P = Counter(), Counter() + orientations = Counter(); thin = 0 + for e in word['physical_events']: + if e[0] == 'LOCAL': + direction = 'backward' if e[3] else 'forward' + orientations[direction] += 1 + T.update(native[direction]['helpers']); P.update(native[direction]['paid']) + elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112 + elif e[0] == 'IDLE': P[8 * len(e[2])] += 224 + main = Counter() + for term in word['diagonal']: + need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target') + main[1 + 8 * sum(term[1:])] += 112 + T.update(main) + need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation') + # This second census uses the source invoice and the directional profile deltas. + check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()}) + check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 128 + check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()}) + check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 128; check_P[8] -= 128 + need(T == check_T and P == check_P, 'Independent full invoice substitution') + need(sum(T.values()) == 10800 and sum(P.values()) == 64148, 'Complete productive and paid counts') + need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus') + return T, P + + +def run(native): + word = controller(); T, P = assemble(native, word) + from native import HERE + predecessor = read(HERE / 'PREDECESSOR-5383.json') + old = predecessor['arithmetic'] + need(Q(old['kappa']) == Q('.00302666'), 'Pinned concurrent eight-relation bound') + need(T == Counter({int(r):n for r,n in old['targets'].items()}) and P == Counter({int(r):n for r,n in old['paid'].items()}), 'Same complete bill as PR5383') + need(KAPPA > Q(old['kappa']), 'Strict compiler-margin improvement over PR5383') + prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json') + need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing') + prior_T = Counter({int(r): n for r, n in prior['targets'].items()}) + prior_P = Counter({int(r): n for r, n in prior['paid'].items()}) + prior_T[9] -= 128; prior_P[1] -= 128; prior_P[8] -= 128 + need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill') + E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals') + other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals') + def margin(c): + t, p = E.moment(T, 1 - c), E.moment(P, 1 - c) + return t[0] - p[1], t[1] - p[0] + need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**12); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + need(alpha[0] > 1-Q(1,10**9), 'Reject predecessor reserve at the new tested saving') + need(1/(1+v*Q(1,10**13))+Q(4,2**32) >= 1, 'Reject excessively small reserve with fixed rounding budget') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # The old route allowance is retained. Charge sixteen additional owned field + # lifetimes at two routes each; the eight L pivots reuse existing slots. + routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 32) * 1000 + need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'gain_over_PR5383': KAPPA-Q('.00302666'), 'completion_reserve': reserve, 'kappa': KAPPA, 'kappa_decimal': '.003026674765', 'gain_over_PR4610': KAPPA - PREVIOUS, + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 8, 'owned_slots_backward': 17}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py new file mode 100644 index 0000000000..3bcf8f5e05 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/eight-owned-relations/verify.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +"""Replay the eight-relation native word and its complete conditional kappa. + +Derived from Ali Romman PR5377; new construction by Dugongue, +with substantial OpenAI Codex assistance. Apache-2.0. +Read README.md for the source credit and inherited proof obligations. +""" +from hashlib import sha256 +import argparse +import gzip +import json +from pathlib import Path +import sys +sys.dont_write_bytecode = True +import native as N +import price + + +def run(): + N.need(sha256((N.HERE/'PREDECESSOR-5383.json').read_bytes()).hexdigest() == 'd6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa', 'Pinned PR5383 receipt') + N.authenticate() + relation_basis=N.check_relation_basis() + source = N.read(N.ROOT / N.SOURCE) + candidate = N.construct(source) + c = candidate['canonical'] + before, after = {}, {} + for direction in ('forward', 'backward'): + back = direction == 'backward' + before[direction] = N.replay(c, source['programs'][direction], back, False) + after[direction] = N.replay(c, candidate['programs'][direction], back, back) + N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census') + N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile') + helpers = dict(N.OLD_HELPERS) + if back: helpers[9] -= 8 + N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census') + identities = N.independent_source_identities(source) + phase = N.phase_inheritance(source, candidate) + controls = N.controls(c, candidate) + arithmetic = price.run(after) + data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\n').encode() + result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_003026674765_COMPILER_MARGIN', + 'relation_basis': relation_basis, 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(), + 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities, + 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic, + 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'}) + return data, result + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.') + ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.') + args = ap.parse_args() + data, result = run() + if args.write: + (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0)) + (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + else: + N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word') + N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result') + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py new file mode 100644 index 0000000000..4b24a50961 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/higher-moment-strictification/verify.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Higher-moment strictification and a polynomial-logarithm compiler bound. + +New arithmetic is independent of predecessor interval code. The unchanged +invoice replay and two outer ledgers are credited, byte-pinned oracles. +zxv with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +from collections import Counter +from contextlib import redirect_stdout +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256, sha1 +import io +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +GRID = 2**192 +C = Q('0.00268648') +KAPPA = Q('0.00268647') +T = {5:420, 6:270, 7:840, 8:1395, 9:3195, + 25:448, 41:448, 57:448, 121:224} +P = {1:37305, 2:10695, 3:3360, 4:1530, 5:300, + 8:1464, 16:448, 32:448, 48:448} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def down(x): + return Q((x*GRID).__floor__(), GRID) + + +def up(x): + return Q(-((-x*GRID).__floor__()), GRID) + + +def rounded(lo, hi): + return down(lo), up(hi) + + +def mul(a, b): + products = [x*y for x in a for y in b] + return rounded(min(products), max(products)) + + +def scale(a, x): + return mul(a, (x, x)) + + +def divide(a, b): + need(b[0] > 0, 'positive interval denominator') + return mul(a, rounded(1/b[1], 1/b[0])) + + +@lru_cache(None) +def log_bounds(n): + """Exact atanh series, binary reduction; round only the final interval.""" + need(isinstance(n, int) and n >= 1, 'positive integer logarithm') + + def series(x): + u = (x-1)/(x+1) + term, total = u, Q(0) + for j in range(80): + total += 2*term/(2*j+1) + term *= u*u + tail = 2*term/(161*(1-u*u)) + return total, total+tail + + k = n.bit_length()-1 + a, b = series(Q(2)) + c, d = series(Q(n, 2**k)) + return rounded(k*a+c, k*b+d) + + +def exp_point(x): + """Outward fixed-point Taylor enclosure, with binary scaling/squaring.""" + need(abs(x) < 16, 'bounded exponential argument') + if x < 0: + a, b = exp_point(-x) + return rounded(1/b, 1/a) + divisions = 0 + while x > Q(1, 2): + x /= 2 + divisions += 1 + term = total = (Q(1), Q(1)) + for j in range(1, 65): + term = scale(term, x/j) + total = rounded(total[0]+term[0], total[1]+term[1]) + following = scale(term, x/65) + # Every remaining ratio is <= 1/132. Twice the next term is safe. + result = rounded(total[0], total[1]+2*following[1]) + for _ in range(divisions): + result = mul(result, result) + return result + + +def exp_interval(a): + return exp_point(a[0])[0], exp_point(a[1])[1] + + +@lru_cache(None) +def power(n, exponent): + return exp_interval(scale(log_bounds(n), exponent)) + + +def moment(histogram, exponent): + low = high = Q(0) + for n, count in histogram.items(): + a, b = power(n, exponent) + low += count*a + high += count*b + return rounded(low, high) + + +def display(a): + unit = 10**30 + + def fixed(n): + sign = '-' if n < 0 else '' + s = str(abs(n)).rjust(31, '0') + return sign+s[:-30]+'.'+s[-30:] + + return {'lower': fixed((a[0]*unit).__floor__()), + 'upper': fixed(-((-a[1]*unit).__floor__()))} + + +def encoded(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encoded(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encoded(v) for v in x] + return x + + +def source_environment(path): + env = {'__file__': str(path), '__name__': 'pinned_source_oracle'} + exec(compile(path.read_bytes(), str(path), 'exec'), env) + return env + + +def authenticate(): + result = {} + for row in json.loads((HERE/'VENDOR.json').read_text())['files']: + path = HERE/'vendor'/Path(row['path']).relative_to( + 'research/higher-moment-strictification/vendor') + digest = sha256(path.read_bytes()).hexdigest() + need(digest == row['sha256'], 'changed source: '+row['path']) + raw = path.read_bytes() + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + == row['git_blob'], 'changed Git source blob') + result[row['path']] = digest + return result + + +def invoice_oracle(): + """Run #4426 unchanged, rebinding only its two file-location globals.""" + path = HERE/'vendor/invoice-review/verify.py' + env = source_environment(path) + env.update(ROOT=path.parent, PHASES='DATA-PHASES.json') + output = io.StringIO() + with redirect_stdout(output): + env['main']() + result = json.loads(output.getvalue()) + need(result['status'] == 'PASS_PR4416_INVOICE_REBUILD', 'source invoice oracle') + need({int(k): v for k, v in result['targets'].items()} == T + and {int(k): v for k, v in result['paid'].items()} == P, + 'exact literal-word invoice') + return result + + +def tail_certificate(v=150, cutoff=10, floor=15, u=Q(3, 10)): + t = 1-C + need(v >= 1 and 1 < cutoff < floor < 121, 'strict finite ranks') + need(t+u >= 1, 'tail moment exponent at least one') + target, paid = moment(T, t), moment(P, t) + alpha = divide(paid, target) + gamma = divide(moment(P, t+u), mul(power(cutoff, u), target)) + delta = divide((Q(sum(T.values())*floor),)*2, + mul(power(cutoff, C), target)) + limits = (1-Q(1, 10**8), Q(181, 200), Q(439, 500)) + for name, bounds, limit in zip(('alpha', 'gamma', 'delta'), + (alpha, gamma, delta), limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, name+' certified limit') + a, g, d = limits + bound = 1/(1+v*(1-a))+2*g**v+2*d**v + need(bound < 1, 'complete charged normalized moment') + old_gamma = divide((Q(sum(k*n for k, n in P.items())),)*2, + mul(power(cutoff, C), target)) + old_lower = alpha[0]**v+2*old_gamma[0]**v + need(old_lower > 1, 'rank-one-tail estimate fails at this tensor power') + return {'tensor_power': v, 'cutoff_base': cutoff, 'floor_base': floor, + 'paid_moment_exponent': t+u, 'tail_offset_u': u, + 'tested_saving': C, 'alpha': display(alpha), 'gamma': display(gamma), + 'delta': display(delta), 'rational_upper_limits': limits, + 'normalized_paid_upper': bound, 'strict_moment_gap': display((1-bound,)*2), + 'old_rank_one_gamma': display(old_gamma), + 'old_rank_one_bound_lower': display((old_lower, old_lower)), + 'ambient': '121^'+str(v), 'minimum_target': str(floor)+'^'+str(v), + 'maximum_paid': str(cutoff)+'^'+str(v), + 'productive_fields_before_uniform_compiler': '7688^'+str(v), + 'rank_one_surplus': '131723^'+str(v)+'-131115^'+str(v), + 'materialized_product_or_uniform_word': False} + + +def uniform_rank(v): + t, p, theta = 1-C, 13, Q(6, 7) + gap = (C-KAPPA)/7 + uniform_saving = C-gap + need(10**7 < 15**6, 'theta upper bound') + need(2*(10**v)**7 <= (121**v)**6, 'shifted logarithm inequality') + eta = scale(exp_interval(scale(log_bounds(121), -v*C)), t) + need(eta[0] > theta**p, 'exit contraction below complement capacity') + base = exp_interval(scale(log_bounds(121), v*C)) + need(base[1] < 2**p, 'entire ordinary base range fits') + # Integer grid: gap*H is integral, avoiding enormous rational powers. + step = gap.denominator + need(gap.numerator == 1, 'chosen rational gap grid') + + def passes(j): + H = step*j + return (H+1)**p < 2**j + + lo, hi = 1, 2 + while not passes(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (lo+hi)//2 + if passes(mid): + hi = mid + else: + lo = mid + H = step*hi + need(H > 7*v and passes(hi) and not passes(hi-1), 'final integer comparison') + need(eta[1] < theta**(p-1), 'one smaller logarithmic power fails') + return {'t': t, 'uniform_saving': uniform_saving, 'gap': gap, + 'logarithm_power': p, 'theta_upper': theta, 'eta': display(eta), + 'eta_minus_theta_to_p': display((eta[0]-theta**p, eta[1]-theta**p)), + 'm_to_saving': display(base), 'H': H, 'N': '2^'+str(H), + 'integer_test': {'left_base': H+1, 'left_exponent': p, + 'right_base': 2, 'right_exponent': hi}, + 'grid_step': step, 'previous_grid_point_rejected': True, + 'smaller_logarithmic_power_rejected': True} + + +def power_majorant_comparison(v, uniform_saving): + """Retain #4416's older power proof, changing only the new unit's ranks.""" + t, z, h = 1-C, 1-uniform_saving, Q(1, 7) + z0 = (t+z)/2 + delta = z0-t + B, debt = (4+7*h)*v, 1+7*v*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= 7*v and H0*h*delta >= delta*B+debt, 'power majorant threshold') + need((H0-1)*h*delta < delta*B+debt, 'previous power threshold rejected') + need(H1*(z-z0) > H0*(1-z0) >= (H1-1)*(z-z0), + 'strict power-majorant comparison and previous-rank control') + return {'H0': H0, 'H1': H1, 'N': '2^'+str(H1), 'theta_upper': 1-h, + 'scope': 'Tail transformation alone, retaining the older power majorant.'} + + +def outer_ledger(uniform_saving): + d = (C-KAPPA)/7 + params = {'kappa': KAPPA, 'tested_saving': C, + 'complex_uniform_saving': uniform_saving, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q('0.0027'), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + env = source_environment(HERE/'vendor/outer_endpoint.py') + row = env['ledger'](params) + need(len(row['strict_checks']) == 54 and len(row['functional_checks']) == 3, + 'complete first outer ledger') + need(all(v > 0 for group in ('strict_checks', 'functional_checks') + for v in row[group].values()), 'all outer predicates') + frozen = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['outer'] + need(encoded(row) == frozen, 'unchanged full p7 endpoint ledger') + parsed = ast.parse((HERE/'vendor/check_ledger.py').read_bytes()) + function = next(n for n in parsed.body + if isinstance(n, ast.FunctionDef) and n.name == 'ledger') + constants = [n for n in parsed.body if isinstance(n, ast.Assign) + and any(isinstance(t, ast.Name) and t.id.startswith('KAPPA_') + for t in n.targets)] + eps, beta, q, a = (params[k] for k in ('epsilon', 'beta', 'q', 'a')) + grid = 10**10 + backoff = Q((eps*q*grid).__floor__(), grid)-KAPPA + need(backoff > 0, 'strict derived oracle grid backoff') + oracle = {'Q': Q, 'R0': params['r0'], 'ZETA': Q(1, 10**8), + 'SLACK': d, 'STOP': d, 'FLOOR': grid, 'BACKOFF': backoff, + 'EPS': eps, 'BETA': beta, 'THETA_POWER': Q(2), + 'HALO_POWER': 48, 'CORE_POWER': 128, 'STRASSEN_TAU': Q(45, 16), + 'b': params['b'], 'q': q, 'a': a, 'bit': params['bit_saving'], + 'online': Q('0.001730970419199163702738'), + 'old': Q('0.001730970419199163702738')} + code = ast.fix_missing_locations(ast.Module(body=constants+[function], type_ignores=[])) + exec(compile(code, 'pinned 63-predicate ledger', 'exec'), oracle) + second = oracle['ledger']('higher_moment_smaller_ranks') + need(second['kappa'] == KAPPA and second['margins'] == row['margins'], + 'all nine rows match both ledgers') + need(len(second['strict_checks']) == 63 and + all(v > 0 for v in second['strict_checks'].values()), 'all 63 legacy predicates') + controls = {} + for name, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': C}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + bad = env['ledger'](dict(params, **updates)) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'outer control rejected: '+name) + controls[name] = failed + for name, options in [('old_per_axis_scan', {'old_scan': True}), + ('group_equals_dimension', {'beta_': eps})]: + bad = oracle['ledger']('reject_'+name, **options) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'legacy control rejected: '+name) + controls[name] = failed + return {'ledger': row, 'legacy_63_checks': second['strict_checks'], + 'legacy_grid': grid, 'legacy_backoff': backoff, + 'minimum_margin_minus_kappa': min(row['margins'].values())-KAPPA, + 'rejected_controls': controls} + + +def finite_controls(): + def tensor(histogram): + out = Counter() + for k, n in histogram.items(): + for h, b in histogram.items(): + out[k*h] += n*b + return out + + def split(histogram, cutoff): + out = Counter() + for k, n in histogram.items(): + q, r = divmod(k, cutoff) + out[cutoff] += q*n + if r: + out[r] += n + return +out + + target, paid = tensor({2:1, 5:1}), tensor({1:2, 4:1}) + padded, completion = Counter(), Counter() + for k, n in target.items(): + padded[max(k, 9)] += n + if k < 9: + completion[9-k] += n + final = split(paid+completion, 4) + mass = lambda x: sum(k*n for k, n in x.items()) + need(mass(padded)-mass(final) == 7**2-6**2 == 13, 'exact paid padding mass') + need(min(padded) > max(final), 'exact toy separation') + need(final == Counter({1:5, 4:9}), 'literal toy expanded inventory') + # t=1/2, sigma=3/4, R=100, J=1 refutes a sublinear tail extension. + invalid = power(100, Q(1, 2))[1]+2*power(100, Q(3, 4))[1] + need(invalid < 100, 'sublinear upper-tail moment cannot bound splitting') + return {'toy_targets': padded, 'toy_paid': final, 'rank_one_surplus': 13, + 'sublinear_tail_counterexample': {'R': 100, 'J': 1, 't': '1/2', + 'sigma': '3/4', 'actual_charge': 100, + 'invalid_upper': display((invalid, invalid))}} + + +def verify(): + sources = authenticate() + invoice = invoice_oracle() + tail = tail_certificate() + rank = uniform_rank(tail['tensor_power']) + endpoint = outer_ledger(rank['uniform_saving']) + controls = finite_controls() + rejected = [] + for name, updates, expected in [ + ('too_short_product', {'v': 100}, 'complete charged normalized moment'), + ('sublinear_tail', {'u': C/2}, 'tail moment exponent at least one'), + ('lost_separation', {'floor': 10}, 'strict finite ranks'), + ]: + try: + tail_certificate(**updates) + except ValueError as error: + need(str(error) == expected, 'wrong rejection: '+name) + rejected.append({'mutation': name, 'failed_at': str(error)}) + else: + raise ValueError('accepted mutation: '+name) + old = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['compiler'] + return encoded({'schema': 'higher-moment-native-strictification/1', + 'status': 'PASS_HIGHER_MOMENT_STRICTIFICATION', 'kappa': KAPPA, + 'invoice_oracle': invoice, 'strictification': tail, + 'uniform_rank': rank, 'outer': endpoint, + 'tail_only_power_majorant': power_majorant_comparison( + tail['tensor_power'], rank['uniform_saving']), + 'finite_controls': controls, 'rejected_mutations': rejected, + 'predecessor_H': old['H1'], + 'rank_exponent_reduction_factor': Q(old['H1'], rank['H']), + 'tensor_power_reduction_factor': Q(6240, tail['tensor_power']), + 'source_sha256': sources, + 'verifier_sha256': sha256(Path(__file__).read_bytes()).hexdigest(), + 'scope': 'Conditional charged transformation and finite compiler rank. Native all-column, physical, analytic, precision, storage, fixed-tape and recovery premises remain inherited. No new kappa, selected frontier or practical word.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = verify() + if args.out: + need(not args.out.exists(), 'new output path required') + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + need(json.loads((HERE/'RESULT.json').read_text()) == result, 'changed saved receipt') + print(json.dumps({'status': result['status'], 'tensor_power': result['strictification']['tensor_power'], + 'uniform_rank': result['uniform_rank']['N'], + 'strict_moment_gap': result['strictification']['strict_moment_gap'], + 'kappa': result['kappa']})) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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" + ], + [ + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "1", + "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", + "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", + "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", + "1", + "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", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "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", + "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", + "1", + "-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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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" + ], + [ + "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", + "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" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -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 + ], + [ + -1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 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 + ], + [ + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py new file mode 100644 index 0000000000..340e1f0ffb --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +"""Exact endpoint refill conditional on the source PR4359 construction. + +Apache-2.0. Substantial OpenAI assistance. The mixed inventory and elementary +function enclosure are zxv's PR4359; mixed-target flow is Jacob Alan Sussman's +Theorem 1G. Outer formulas retain the attribution in PR4359 outer_parameters.py. +This file checks arithmetic, not the native or all-size proof hypotheses. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +PREFIX = Path('research/kappa-rebuild') +OLD_BASELINE = Q('0.001730970419199163702738') +KAPPA = Q('0.00230509') +TESTED = Q('0.00230509019') +ROOT_UPPER = Q('0.002306') + + +def need(value, message): + if not value: + raise AssertionError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def ceil(value): + value = Q(value) + return -((-value.numerator) // value.denominator) + + +def encode(value): + if isinstance(value, Q): + return str(value) + if isinstance(value, dict): + return {str(k): encode(v) for k, v in value.items()} + if isinstance(value, (tuple, list)): + return [encode(v) for v in value] + return value + + +def family(kappa, tested): + """One explicit slack family approaching the same source mixed root.""" + need(Q(0) < kappa < tested < ROOT_UPPER, 'Positive strictly ordered savings') + d = (tested-kappa)/7 + return {'kappa': kappa, 'tested_saving': tested, + 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, + 'bit_saving': Q('0.0027'), 'epsilon': 1-d, 'beta': 1-3*d, + 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + + +def ledger(p): + """Recompute all 54 named PR4359 checks with freely supplied parameters.""" + kappa, b, a, q = (p[key] for key in ('kappa', 'b', 'a', 'q')) + epsilon, beta, r0, stop, layout = (p[key] for key in + ('epsilon', 'beta', 'r0', 'stop', 'layout')) + sigma, tau = 1-b, 1-a + internal = tau+(1-stop)*max(sigma-tau, Q(0)) + leaf = sigma+stop*(1-sigma) + lam, c = 1-(q+a)/2, Q(3, 32) + xi, key = epsilon*(1+q)-c+layout, beta+1-epsilon + margins = { + 'main_transform': epsilon*q, + 'global_coordinate_router': a, + 'fused_gaussian': 1-epsilon+q*beta, + 'group_bit_router': 1-epsilon+a*beta, + 'group_scans': 1-epsilon+beta, + 'boundary_algebraic_matrix': c+xi-epsilon, + 'sparse_union_movement': xi+Q(1, 2)-epsilon, + 'polynomial_products': epsilon, + 'microbox_face_corrections': 1-(epsilon+beta+48-128+2), + } + checks = { + 'actual_bit_above_effective': p['bit_saving']-a, + 'complex_above_effective': b-a, + 'q_positive': q, 'complex_endpoint': b-q, 'q_below_effective': a-q, + 'stop_positive': stop, 'stop_below_one': 1-stop, + 'leaf_saving_above_effective': (1-stop)*b-a, + 'q_below_internal': 1-internal-q, 'q_below_leaf': 1-leaf-q, + 'lambda_above_tau': lam-tau, 'lambda_above_sigma': lam-sigma, + 'lambda_above_internal': lam-internal, + 'lambda_prime_above_lambda': 1-q-lam, + 'lambda_prime_above_leaf': 1-q-leaf, + 'epsilon_positive': epsilon, 'epsilon_below_one': 1-epsilon, + 'cap_above_band': xi-Q(1, 2), 'cap_below_cell': epsilon-xi, + 'group_positive': beta, 'group_below_dimension': epsilon-beta, + 'support_router_span': 1-beta, + 'group_gauge_power_slack': 1-(2*xi-2)-r0-beta, + 'actual_logarithmic_group_guard': 1-(2*xi-2)-beta, + 'global_gamma_power_slack': 1-epsilon-r0, + 'actual_logarithmic_gamma_guard': 1-epsilon, + 'alpha_logarithm_absorption': r0, + 'group_key_fits_record': 1-key, + 'membership_arithmetic_fits_record': 1-beta-2*(1-epsilon), + 'microbox_halo_volume': 128-48-beta, + 'positive_layout_slack': layout, + 'short_record_fallback': epsilon-a, + 'complex_below_one_over_32': Q(1, 32)-b, + 'strassen_integer_power_gap': Q(2**45-7**16), + 'theta_positive_polynomial_power': Q(2), + 'cap_below_phase_cell_power': 2-xi, + 'halo_covers_generic_inverse_radius': Q(48-43), + 'union_tag_work_per_visit_fits_record': 1-beta, + 'union_header_fits_record': 1-beta, + 'source_axis_superpolynomial': 1-epsilon, + 'gaussian_above_main': margins['fused_gaussian']-margins['main_transform'], + 'new_complex_uniform_saving_above_b': p['complex_uniform_saving']-b, + 'improvement_over_user_baseline': kappa-OLD_BASELINE, + 'new_semantic_guard_with_C1_one': 1-epsilon, + 'fine_prime_halo_umbrella': 10-(2*2+2+Q(1, 2)), + } + checks.update({name+'_above_kappa': value-kappa for name, value in margins.items()}) + # These are the additional functional conditions in the independent + # PR4359 outer_transfer_audit.py, beyond the 54-row parameter ledger. + functional = { + 'new_semantic_group_guard': 1-beta, + 'new_BIT_row_stock_sublinear_in_active_group': beta*(1-Q(3, 1000)), + 'fixed_halo_explicit_metadata_branch': 128-48-epsilon-beta-1, + } + return {'parameters': dict(p, cap_xi=xi, lambda_=lam, lambda_prime=1-q), + 'margins': margins, 'strict_checks': checks, 'functional_checks': functional} + + +def compiler_rank(E, targets, paid, tested, uniform): + """The original sufficient bound, re-instantiated for the new exponent.""" + m, kmin, rmax = max(targets), min(targets), max(paid) + need((m, kmin, rmax) == (57, 6, 5), 'Pinned complex separation') + t, z = 1-tested, 1-uniform + z0, h = (t+z)/2, Q(1, 10) + delta = z0-t + need(0 < t < z0 < z < 1, 'Compiler exponent order') + need(5**10 < 6**9 and 57 < 2**10, 'Exact source rank bounds') + need(z0 > Q(1, 2) and (1-z0)*E.log_interval(m)[1] < E.log_interval(2)[0], + 'Original eta strictly exceeds 1/4') + H0 = ceil((3+4*delta)/(h*delta)) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= m.bit_length() and H0*h*delta >= 3+4*delta, 'Induction starts') + need(H1*(z-z0) > H0*(1-z0), 'Strict winning uniform rank') + need((H0-1)*h*delta < 3+4*delta, 'Reject one lower threshold exponent') + need((H1-1)*(z-z0) <= H0*(1-z0), 'Reject one lower final exponent') + return {'t': t, 'z0': z0, 'z': z, 'theta_upper': Q(9, 10), + 'H0': H0, 'H1': H1, 'N_encoding': '2^H1', + 'strict_final_gap': H1*(z-z0)-H0*(1-z0), + 'winning_word_materialized': False, + 'bound': 'Original sufficient inequality; a sharper bound is separate.'} + + +def run(source_root): + base = source_root/PREFIX + interval_path = base/'architecture/mixed_target_probe.py' + spec = importlib.util.spec_from_file_location('pr4359_moment', interval_path) + E = importlib.util.module_from_spec(spec) + spec.loader.exec_module(E) + cover = read(base/'controller/P3-NATIVE-COVER.json.gz')['cover'] + targets = {int(k): int(v) for k, v in cover['targets'].items()} + paid = {int(k): int(v) for k, v in cover['paid'].items()} + need(targets == {6: 192, 7: 56, 8: 93, 9: 1229, 25: 448, 57: 224}, + 'Exact source productive inventory') + need(paid == {1: 17623, 2: 5065, 3: 1738, 4: 714, 5: 254}, + 'Exact source paid inventory') + signed = Counter(targets) + signed.subtract(paid) + need(sum(k*v for k, v in signed.items()) == 224, 'Rank-one surplus') + bracket = {'lower': E.moment(signed, TESTED), 'upper': E.moment(signed, ROOT_UPPER)} + need(bracket['lower'][0] > 0 and bracket['upper'][1] < 0, + 'Strict mixed test and upper root bound') + + original = read(base/'controller/OUTER-PARAMETERS.json')['outer'] + old = ledger({'kappa': Q('0.0023'), 'complex_uniform_saving': Q('0.002304'), + 'b': Q('0.002303'), 'a': Q('0.0023025'), 'q': Q('0.002302'), + 'bit_saving': Q('0.0027'), 'epsilon': Q('0.99999'), + 'beta': Q('0.99997'), 'r0': Q(1, 10**6), + 'stop': Q(1, 10**8), 'layout': Q(1, 10**6)}) + for group in ('margins', 'strict_checks'): + frozen = {key: Q(value['rational']) for key, value in original[group].items()} + need(old[group] == frozen, 'Exact reproduction of every old '+group) + p = family(KAPPA, TESTED) + result = ledger(p) + need(all(v > 0 for v in result['strict_checks'].values()), 'All 54 new outer predicates') + need(all(v > 0 for v in result['functional_checks'].values()), 'Additional functional predicates') + need(min(result['margins'].values()) == result['margins']['main_transform'], + 'Main transform remains limiting') + need(result['parameters']['cap_xi'] == Q(29, 32)+(1-p['d'])*p['q'], + 'Cofinal cap simplification') + controls = {} + for label, updates in [('closed_epsilon_gap', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': Q('0.002306')}), + ('BIT_below_effective', {'bit_saving': OLD_BASELINE}), + ('no_complex_slack', {'complex_uniform_saving': p['b']})]: + tested = ledger(dict(p, **updates)) + failures = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failures, 'Mutation rejected: '+label) + controls[label] = failures + need(E.moment(signed, Q('0.004'))[1] < 0, 'Unsupported mixed target is rejected') + inputs = [interval_path, base/'controller/P3-NATIVE-COVER.json.gz', + base/'controller/OUTER-PARAMETERS.json'] + return encode({'schema': 'pr4359-cofinal-outer-refill/1', + 'status': 'PASS_EXACT_CONDITIONAL_ENDPOINT_REFILL', + 'kappa': KAPPA, 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'unchanged_paid': paid, 'unchanged_targets': targets, + 'mixed_test_saving': TESTED, 'mixed_test_margin': E.show(bracket['lower']), + 'root_upper_test': ROOT_UPPER, 'root_upper_margin': E.show(bracket['upper']), + 'old_ledger_crosscheck': {'matched_savings': len(old['margins']), + 'matched_checks': len(old['strict_checks'])}, + 'outer': result, 'limiting_margin': min(result['margins'].values())-KAPPA, + 'compiler': compiler_rank(E, targets, paid, TESTED, p['complex_uniform_saving']), + 'negative_controls': controls, + 'source_sha256': {str(p.relative_to(source_root)): sha256(p.read_bytes()).hexdigest() + for p in inputs}, + 'scope': 'Conditional arithmetic and specified finite rank. The PR4359 native, compiler, cover, precision, fixed-tape and outer hypotheses remain premises; no full theorem or practical word is certified.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=HERE/'source') + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = run(args.source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'limiting_margin', 'compiler')}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py new file mode 100644 index 0000000000..7ab20e1487 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/check_research_commit.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +"""Compare package working bytes with a commit before publishing hash receipts. + +This is a byte-transport preflight, not a research verifier or CI-equivalence +claim. Prepared for ywz65 with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import hashlib +import json +import os +import re +import subprocess +from contextlib import closing +from pathlib import Path + +from research_package import ( + canonical_relative_path, + git, + git_blobs, + git_source_env, + relative_file, + require, + source_pin, +) + +ROOT = Path(__file__).resolve().parents[1] +MAX_SOURCE_METADATA_BYTES = 16 * 1024 * 1024 +MAX_SOURCE_ROWS = 100000 +MAX_SOURCE_COMMITS = 256 + + +def history_git(root, *args): + env = git_source_env() + env['GIT_GRAFT_FILE'] = os.devnull + env.pop('GIT_SHALLOW_FILE', None) + return subprocess.run(['git', '--no-replace-objects', *args], cwd=root, env=env, + capture_output=True, check=False, timeout=30) + + +def publication_sources(root, package, commit): + """Read bounded, immutable metadata without local replacements or grafts.""" + spec = commit + ':' + package + '/SOURCES.json' + size = history_git(root, 'cat-file', '-s', spec) + require(size.returncode == 0 and size.stdout.strip().isdigit(), 'missing publication SOURCES.json') + require(int(size.stdout) <= MAX_SOURCE_METADATA_BYTES, 'source metadata byte limit exceeded') + payload = history_git(root, 'cat-file', 'blob', spec) + require(payload.returncode == 0 and len(payload.stdout) == int(size.stdout), + 'incomplete publication SOURCES.json') + return json.loads(payload.stdout) + + +def source_history(root, package, commit): + """Check committed pins against raw publication ancestry, not local refs. + + This is declared history availability, not full SOURCES.json validation + or discovery of imports, archive references or runtime dependencies. + """ + sources = publication_sources(root, package, commit) + require(isinstance(sources, dict), 'SOURCES.json must be an object') + base = sources.get('base_commit') + require(isinstance(base, str) and re.fullmatch(r'[0-9a-f]{40,64}', base), + 'SOURCES.json base_commit must be an exact commit ID') + rows = sources.get('files') + require(isinstance(rows, list), 'SOURCES.json files must be a list') + require(len(rows) <= MAX_SOURCE_ROWS, 'source row limit exceeded') + commits = {base} + for row in rows: + require(isinstance(row, dict) and isinstance(row.get('path'), str), + 'SOURCES.json files rows need a string path') + canonical_relative_path(row['path']) + commits.add(source_pin(row, base).split(':', 1)[0]) + require(len(commits) <= MAX_SOURCE_COMMITS, 'source commit limit exceeded') + shallow = history_git(root, 'rev-parse', '--is-shallow-repository') + require(shallow.returncode == 0, 'cannot inspect Git history') + require(shallow.stdout.strip() == b'false', 'source-history check requires full Git history') + for pin in sorted(commits): + resolved = history_git(root, 'rev-parse', '--verify', '--end-of-options', pin + '^{commit}') + require(resolved.returncode == 0 and resolved.stdout.strip() == pin.encode('ascii'), + 'unavailable source commit: ' + pin) + ancestor = history_git(root, 'merge-base', '--is-ancestor', pin, commit) + require(ancestor.returncode in (0, 1), + 'Git ancestry check failed: ' + ancestor.stderr.decode('utf-8', errors='replace').strip()) + require(ancestor.returncode == 0, + 'source pin is not an ancestor of publication ' + commit + ': ' + pin + + '; a separate cached branch/object is not publication history') + return sorted(commits) + + +def check(root, package, ref='HEAD', check_source_history=False): + require(re.fullmatch(r'research/[a-z0-9][a-z0-9-]*', package), 'package must be research/') + manifest = json.loads(relative_file(root, package+'/VERIFY.json').read_text(encoding='utf-8')) + require(isinstance(manifest, dict), 'VERIFY.json must be an object') + inputs = manifest.get('inputs') + require(isinstance(inputs, list), 'declare input paths in VERIFY.json') + for name in inputs: + canonical_relative_path(name) + commit = git(root, 'rev-parse', '--verify', '--end-of-options', ref+'^{commit}').decode('ascii').strip() + # Literal pathspecs keep wildcard filenames from selecting other files. + records = git(root, '--literal-pathspecs', 'ls-tree', '-r', '-z', '--full-tree', + commit, '--', package, *inputs).split(b'\0') + entries = {} + for record in records: + if not record: + continue + header, raw_name = record.split(b'\t', 1) + mode, kind, obj = header.split() + name = raw_name.decode('utf-8') + require(mode in (b'100644', b'100755') and kind == b'blob', + 'commit contains a non-regular file: '+name) + entries[name] = obj.decode('ascii') + # New nonignored local checkers must not disappear from the publication. + local = git(root, '--literal-pathspecs', 'ls-files', '-c', '-o', '--exclude-standard', + '-z', '--', package).decode('utf-8').split('\0') + expected = {name for name in local if name} | set(inputs) + require(set(entries) == expected, 'working/commit file inventory differs: '+ + ', '.join(sorted(set(entries) ^ expected))) + names = sorted(entries) + require(names, 'empty package inventory') + with closing(git_blobs(root, [entries[name] for name in names])) as blobs: + # Advance the blob iterator once past its last yield, so its final + # Git exit-status check runs before reporting success. + for (_, committed), name in zip(blobs, names): + working = relative_file(root, name).read_bytes() + require(working == committed, + 'working/commit bytes differ: '+name+' (working SHA256 '+ + hashlib.sha256(working).hexdigest()+', commit SHA256 '+ + hashlib.sha256(committed).hexdigest()+')') + result = {'commit':commit, 'files':len(names), 'package':package} + if check_source_history: + result['source_history_commits'] = source_history(root, package, commit) + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--package', required=True) + parser.add_argument('--ref', default='HEAD', help='commit to publish; default HEAD') + parser.add_argument('--check-source-history', action='store_true', + help='also require declared SOURCES.json pin commits in publication ancestry; full history only') + args = parser.parse_args() + try: + result = check(ROOT, args.package, args.ref, args.check_source_history) + except (OSError, ValueError, TypeError, subprocess.SubprocessError) as exc: + parser.exit(1, str(exc)+'\n') + print('PASS_RESEARCH_COMMIT_BYTES '+json.dumps(result)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py new file mode 100644 index 0000000000..ef9b52c392 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-5387-v1/snapshot/scripts/research_package.py @@ -0,0 +1,1022 @@ +#!/usr/bin/env python3 +"""Validate and replay explicitly registered research packages, never every verify.py. + +Douglas Colkitt, with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import errno +from contextlib import closing, contextmanager +from itertools import chain +import hashlib +import importlib.metadata +import json +import os +from pathlib import Path, PurePosixPath +import re +import signal +import stat +import subprocess +import sys +import tempfile +import threading + +ROOT = Path(__file__).resolve().parents[1] +GIT_BLOB_RESPONSE_TIMEOUT = 90 + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def canonical_relative_path(name): + # Git's changed paths use one repository-relative POSIX spelling. Accepting + # aliases here would let a declared input evade the planner's exact match. + require(isinstance(name, str), "canonical relative path must be a string") + path = PurePosixPath(name) + require(bool(path.parts) and not path.is_absolute() and ".." not in path.parts + and "\\" not in name and path.as_posix() == name, + "use a canonical repository-relative POSIX path: " + name) + return path + + +def symlink_free_relative_path(root, name): + """Reject symlink components without requiring a deleted input to exist. + + Git reports changes under the target's path, not a symlink alias declared + by its consumer. Inspect existing components below the repository root; + the checkout must remain stable during planning, validation and replay. + """ + parts = canonical_relative_path(name).parts + current = root + for part in parts: + current = current / part + try: + mode = current.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + break + require(not stat.S_ISLNK(mode), "symlink in repository-relative path: " + name) + return root / name + + +def relative_file(root, name): + result = symlink_free_relative_path(root, name) + require(result.resolve().is_relative_to(root.resolve()) and result.is_file(), + "missing or external file: " + name) + return result + + +# Adapted from the package-local policy in +# research/t74-2530-source-partner-audit/audit_common.py (Apache-2.0). +# Keep repository configuration and linked-worktree .git discovery intact; +# inherited shell overrides must not choose a different repository or index. +_GIT_REDIRECT_VARS = frozenset(( + "GIT_DIR", "GIT_WORK_TREE", "GIT_INDEX_FILE", "GIT_OBJECT_DIRECTORY", + "GIT_ALTERNATE_OBJECT_DIRECTORIES", "GIT_NAMESPACE", "GIT_CEILING_DIRECTORIES", + "GIT_COMMON_DIR", "GIT_CONFIG_PARAMETERS", "GIT_CONFIG_COUNT", +)) +_GIT_CONFIG_PREFIXES = ("GIT_CONFIG_KEY_", "GIT_CONFIG_VALUE_") + + +def git_source_env(): + """Use cwd's repository and stored objects, without changing the parent. + + Git can ignore cwd when inherited selection variables point elsewhere. + Config-injection variables can also redirect worktree/index operations. + This policy is only for Git metadata/source subprocesses, not verifiers. + """ + env = {name: value for name, value in os.environ.items() + if name not in _GIT_REDIRECT_VARS and not name.startswith(_GIT_CONFIG_PREFIXES)} + # Replacement refs can report an original ID while returning other bytes. + env["GIT_NO_REPLACE_OBJECTS"] = "1" + return env + + +def git(root, *args): + return subprocess.run(["git", *args], cwd=root, env=git_source_env(), + capture_output=True, check=True).stdout + + +def tracked_input_paths(root): + """Use HEAD spelling, never case folding, filesystem resolution or the index. + + Staged/untracked files are not replay inputs until committed. NUL framing + preserves Git filenames containing whitespace, including CR and LF. + """ + raw = subprocess.run( + ["git", "ls-tree", "-r", "--name-only", "-z", "HEAD"], cwd=root, env=git_source_env(), + capture_output=True, check=True, timeout=30).stdout + return frozenset(name.decode("utf-8") for name in raw.split(b"\0") if name) + + +def require_tracked_input(name, paths): + canonical_relative_path(name) + require(name in paths, "use an exact Git-tracked input path from HEAD: " + name) + + +def git_source_rows(root, base, names): + """Read one pinned object at a time through one Git process; no persistent cache. + + Each request is consumed before the next is sent. This avoids pipe deadlocks + and retains the old one-blob memory bound, even for large source archives. + Newline paths and non-blob objects retain the legacy Git-show semantics. + The caller must close this generator if source validation fails mid-stream. + """ + with subprocess.Popen(["git", "cat-file", "--batch"], cwd=root, env=git_source_env(), + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) as process: + try: + for name in names: + expression = base + ":" + name + if "\n" in expression or "\r" in expression: + yield git(root, "rev-parse", expression).decode().strip(), git(root, "show", expression) + continue + process.stdin.write(expression.encode("utf-8") + b"\n") + process.stdin.flush() + header = process.stdout.readline().rstrip(b"\n").split(b" ") + require(len(header) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", header[0]) + and header[2].isdigit(), "missing or invalid Git source: " + name) + size = int(header[2]) + payload = process.stdout.read(size) + require(len(payload) == size and process.stdout.read(1) == b"\n", + "truncated Git source: " + name) + if header[1] != b"blob": + payload = git(root, "show", expression) + yield header[0].decode("ascii"), payload + process.stdin.close() + code = process.wait(timeout=90) + require(code == 0, "Git source reader failed: " + process.stderr.read().decode("utf-8", errors="replace")) + finally: + if not process.stdin.closed: + process.stdin.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +class _UnsupportedNulBatch(Exception): + """Git rejected the initial NUL-mode request before yielding any source.""" + + +def _closed_stdin_error(error): + # Windows can report EINVAL instead of EPIPE when a child closes stdin. + # This classifies the pipe error only; the retry still requires exit 129. + return (isinstance(error, BrokenPipeError) + or (os.name == "nt" and error.errno == errno.EINVAL)) + + +def _stop_git_blob_process(process): + """Stop this reader's owned POSIX group even after its leader exits.""" + try: + if os.name == "posix": + # Reap an exited leader first: signaling a group containing only + # its unreaped zombie can report EPERM on macOS. A surviving + # descendant keeps the group alive after the leader is reaped. + process.poll() + os.killpg(process.pid, signal.SIGKILL) + else: + process.kill() + except ProcessLookupError: + pass + + +@contextmanager +def _git_blob_response_deadline(stop): + """Bound one response, excluding time spent by its consumer. + + On POSIX the reader owns a session: ordinary descendants retaining a pipe + are stopped with the leader. Escaped sessions and separate git() calls are + outside this contract; non-POSIX retains the direct-child deadline. + """ + expired = threading.Event() + + def terminate(): + expired.set() + stop() + + timer = threading.Timer(GIT_BLOB_RESPONSE_TIMEOUT, terminate) + timer.start() + try: + yield + finally: + timer.cancel() + timer.join() + if expired.is_set(): + raise subprocess.TimeoutExpired("git cat-file blob response", GIT_BLOB_RESPONSE_TIMEOUT) + + +def _git_blob_batch(root, specs, nul): + argv = ["git", "cat-file", "--batch"] + (["-z"] if nul else []) + # Usage diagnostics from the unsupported-option probe are expected. Avoid + # a second pipe that could block while we consume the framed stdout reply. + with subprocess.Popen(argv, cwd=root, env=git_source_env(), stdin=subprocess.PIPE, + stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, + start_new_session=(os.name == "posix")) as process: + stopped = False + + def stop(): + nonlocal stopped + if not stopped: + _stop_git_blob_process(process) + stopped = True + + try: + for index, spec in enumerate(specs): + require("\0" not in spec, "invalid Git object request") + request = spec + if not nul and ("\n" in spec or "\r" in spec): + # Resolve one literal argument, never split a path into requests. + request = git(root, "rev-parse", "--verify", "--end-of-options", spec).decode("ascii").strip() + require(re.fullmatch(r"[0-9a-f]{40,64}", request), "invalid Git object ID") + with _git_blob_response_deadline(stop): + try: + process.stdin.write(request.encode("utf-8") + (b"\0" if nul else b"\n")) + process.stdin.flush() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + header = b"" + else: + header = process.stdout.readline() + if nul and index == 0 and not header and process.wait(timeout=90) == 129: + raise _UnsupportedNulBatch(spec) + fields = header.rstrip(b"\n").split(b" ") + require(len(fields) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", fields[0]) + and fields[1] == b"blob" and fields[2].isdigit(), + "missing or non-blob Git source: " + spec) + size = int(fields[2]) + pinned = process.stdout.read(size) + require(len(pinned) == size and process.stdout.read(1) == b"\n", + "incomplete Git blob response: " + spec) + yield fields[0].decode("ascii"), pinned + process.stdin.close() + require(process.wait(timeout=90) == 0, "Git source reader failed") + finally: + # Terminate ordinary descendants before closing buffered pipes. This + # also covers successful leader exit and an early generator close. + if os.name == "posix": + stop() + # Option rejection can close stdin before our first write/flush. + try: + process.stdin.close() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + process.stdout.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +def git_blobs(root, specs): + """Stream exact blobs, retaining the one-process NUL protocol on newer Git. + + Git without -z rejects it with usage status 129. Retry only before any + response, replaying the consumed first request through the line protocol. + The fallback resolves CR/LF paths to object IDs before requesting content. + The caller must close this iterator if validation stops before exhaustion. + """ + specs = iter(specs) + sentinel = object() + first = next(specs, sentinel) + if first is sentinel: + return + with closing(_git_blob_batch(root, chain((first,), specs), nul=True)) as rows: + try: + yield from rows + except _UnsupportedNulBatch as exc: + with closing(_git_blob_batch(root, chain((exc.args[0],), specs), nul=False)) as legacy: + yield from legacy + + +def meaningful(value): + return isinstance(value, str) and bool(value.strip()) and not re.search(r"\bTODO\b", value, re.I) + + +def brief(value): + text = json.dumps(value, ensure_ascii=True, sort_keys=True) + return text if len(text) <= 120 else text[:117] + "..." + + +def require_key(mapping, key, where, shape=None): + """Name the missing key and its expected shape instead of a bare KeyError.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing" + + ("; expected " + shape if shape else "")) + return mapping[key] + + +def require_text(mapping, key, where, shape="a non-empty string without TODO"): + """Name the key and distinguish missing, wrong-shaped and weak values.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing; expected " + shape) + value = mapping[key] + require(isinstance(value, str) and meaningful(value), + where + "." + key + " must be " + shape + "; found " + type(value).__name__ + ": " + brief(value)) + + +def card_differences(own, pinned): + """Name every key by which a TASK.json original_card differs from its pin.""" + if not isinstance(own, dict): + return "TASK.json original_card is " + type(own).__name__ + ", expected a JSON object" + details = [] + missing = [key for key in pinned if key not in own] + extra = [key for key in own if key not in pinned] + if missing: + details.append("missing keys: " + ", ".join(missing)) + if extra: + details.append("unexpected keys: " + ", ".join(extra)) + for key in (key for key in pinned if key in own and own[key] != pinned[key]): + details.append(key + " differs (TASK.json: " + brief(own[key]) + "; pinned: " + brief(pinned[key]) + ")") + return "; ".join(details) or "cards compare unequal without a key difference" + + +def source_pin(row, base): + """Resolve one SOURCES.json row to its exact Git object expression. + + Rows without an explicit pin keep the historical base_commit: form. + A file vendored from a pull-request head is pinned exactly with + head:<40-hex sha>:, so its bytes resolve at that commit, not at the + package base. An explicit but unparseable pin fails closed. + """ + name = row["path"] + pin = row.get("pin") + if pin is None: + return base + ":" + name + if pin == "base_commit:" + name: + return base + ":" + name + # Git filenames can contain LF; it is part of the exact path, not a delimiter. + match = re.fullmatch(r"head:([0-9a-f]{40}):(.+)", pin, re.DOTALL) if isinstance(pin, str) else None + if match is not None and match.group(2) == name: + return match.group(1) + ":" + name + raise ValueError("SOURCES.json pin for " + name + " is not a supported pin form: " + brief(pin) + + "; accepted pin forms are base_commit: and head:<40-hex sha>:") + + +def validate(root, package, check_pins=True): + parts = PurePosixPath(package).parts + require(len(parts) == 2 and parts[0] == "research" and re.fullmatch(r"[a-z0-9][a-z0-9-]*", parts[1]), + "package must be research/") + data = {} + for name in ("TASK.json", "SOURCES.json", "VERIFY.json"): + data[name] = json.loads(relative_file(root, package + "/" + name).read_text(encoding="utf-8")) + version = require_key(data[name], "schema_version", name) + require(version == 1, name + ".schema_version must be 1; found " + brief(version)) + task, sources, manifest = (data[n] for n in ("TASK.json", "SOURCES.json", "VERIFY.json")) + scope_status = require_key(task, "scope_status", "TASK.json", "unchanged, refined or changed") + require(scope_status in ("unchanged", "refined", "changed"), + "TASK.json.scope_status must be unchanged, refined or changed; found " + brief(scope_status)) + for field in ("actual_scope", "bottleneck_link", "stop_rule", "evidence", "author", "ai_assistance"): + require_text(task, field, "TASK.json") + if scope_status == "unchanged": + question = require_key(require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object"), + "question", "TASK.json.original_card") + require(task["actual_scope"] == question, + "different wording/scope requires refined or changed plus a reason" + + " (TASK.json.actual_scope " + brief(task["actual_scope"]) + + " differs from TASK.json.original_card.question " + brief(question) + ")") + else: + require_text(task, "scope_change_reason", "TASK.json", + "a non-empty string without TODO explaining the scope refinement/change") + outcome = require_key(task, "outcome", "TASK.json", + "partial, completed, blocked or negative-result") + require(outcome in ("partial", "completed", "blocked", "negative-result"), + "TASK.json.outcome must be partial, completed, blocked or negative-result; found " + brief(outcome)) + questions = task.get("open_questions") + require(isinstance(questions, list), + "TASK.json.open_questions must be a list; found " + type(questions).__name__ + ": " + brief(questions)) + if not questions: + require_text(task, "no_open_questions_reason", "TASK.json", + "a non-empty string without TODO explaining an empty next-question list") + for position, question in enumerate(questions): + for field in ("question", "why_it_matters", "first_step", "blocked_by"): + require_text(question, field, "TASK.json.open_questions[" + str(position) + "]") + readme = relative_file(root, package + "/README.md").read_text(encoding="utf-8") + require("## Open next questions" in readme, "README.md needs an \"## Open next questions\" section") + status = require_key(manifest, "status", "VERIFY.json") + require(status == "ready", + "VERIFY.json.status must be \"ready\"; complete the draft before requesting replay; found " + brief(status)) + python = require_key(manifest, "python", "VERIFY.json") + require(python == "3.12", + "VERIFY.json.python must be \"3.12\" (generic replay currently uses Python 3.12); found " + brief(python)) + requirements = manifest.get("requirements", []) + require(isinstance(requirements, list), + "VERIFY.json.requirements must be a list of exact \"name==version\" pins; found " + + type(requirements).__name__ + ": " + brief(requirements)) + require(len(requirements) == len(set(requirements)), "VERIFY.json.requirements must not repeat a pin") + for item in requirements: + require(isinstance(item, str) + and re.fullmatch(r"(?:numpy|sympy|scipy)==[0-9]+(?:\.[0-9]+){1,2}", item), + "generic CI supports exact numpy/sympy/scipy pins; use a dedicated workflow for other environments" + + "; offending entry: " + brief(item)) + names = [item.split("==")[0] for item in requirements] + require(len(names) == len(set(names)), "declare only one version per dependency") + # Validation already treats an omitted list as empty; execution must receive + # that same default without rewriting the contributor's manifest on disk. + manifest["requirements"] = requirements + commands = manifest.get("commands") + require(isinstance(commands, list) and 1 <= len(commands) <= 8, + "VERIFY.json.commands must be a list of 1..8 explicit verification commands; found " + + type(commands).__name__ + ": " + brief(commands)) + total = 0 + for position, command in enumerate(commands): + path = "VERIFY.json.commands[" + str(position) + "]" + require(isinstance(command, dict), + path + " must be a JSON object; found " + type(command).__name__ + ": " + brief(command)) + argv = command.get("argv") + require(isinstance(argv, list) and len(argv) >= 2 and all(isinstance(a, str) for a in argv), + path + ".argv must be a list of at least 2 strings; found " + brief(argv)) + require(argv[0] == "{python}", path + ".argv must explicitly use {python}; no implicit shell") + require_text(command, "checks", path, "a non-empty string without TODO describing command coverage") + seconds = command.get("timeout_seconds") + require(type(seconds) is int, + path + ".timeout_seconds must be an integer number of seconds; found " + + type(seconds).__name__ + ": " + brief(seconds)) + require(1 <= seconds <= 600, + path + ".timeout_seconds " + str(seconds) + + (" exceeds the 600 s per-command cap" if seconds > 600 + else " is below the 1 s per-command minimum")) + total += seconds + require(total <= 1200, "declared replay budget " + str(total) + + " s (sum of timeout_seconds) exceeds the 1200 s total cap" + + "; use a dedicated job for larger checks") + inputs = manifest.get("inputs") + require(isinstance(inputs, list), + "VERIFY.json.inputs must be a list of canonical repository-relative paths; found " + + type(inputs).__name__ + ": " + brief(inputs)) + tracked = tracked_input_paths(root) + for name in inputs: + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + relative_file(root, name) + files = require_key(sources, "files", "SOURCES.json") + require(files, "SOURCES.json.files is empty; declare the source inventory") + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + require(isinstance(base, str) and re.fullmatch(r"[0-9a-f]{40,64}", base), + "SOURCES.json.base_commit must be a 40-64 hex string pinning an exact base commit; found " + brief(base)) + task_base = require_key(task, "base_commit", "TASK.json", + "a 40-64 hex string equal to SOURCES.json.base_commit") + require(task_base == base, "TASK.json.base_commit " + brief(task_base) + + " must equal SOURCES.json.base_commit " + brief(base)) + for row in files: + require(isinstance(row, dict) and isinstance(row.get("path"), str), + "SOURCES.json.files rows must be JSON objects with a string path; offending row: " + brief(row)) + require(row.get("usage") in ("input", "provenance"), + "SOURCES.json.files row " + row["path"] + " must declare usage \"input\" or \"provenance\"; found " + + brief(row.get("usage"))) + undeclared = sorted({r["path"] for r in sources["files"] if r["usage"] == "input"} - set(inputs)) + require(not undeclared, + "every SOURCES.json files row with usage \"input\" must also be declared in VERIFY.json inputs" + + " (they drive CI invalidation); undeclared: " + ", ".join(undeclared)) + if check_pins: + catalog_name = "docs/research/agent-task-catalog.json" + require(catalog_name in {r["path"] for r in sources["files"]}, + "SOURCES.json.files must pin the originating task catalogue " + catalog_name + + " (a provenance row pinned at base_commit)") + names = [r["path"] for r in sources["files"]] + for name in names: + p = PurePosixPath(name) + require(not p.is_absolute() and ".." not in p.parts, "invalid source path") + specs = [source_pin(row, sources["base_commit"]) for row in sources["files"]] + require(all(spec == sources["base_commit"] + ":" + catalog_name + for name, spec in zip(names, specs) if name == catalog_name), + "originating task catalogue must be pinned at base_commit") + with closing(git_blobs(root, specs)) as objects: + for index, (obj, pinned) in enumerate(objects): + row = sources["files"][index] + name = row["path"] + require(obj == row["git_blob"], "source blob provenance mismatch: " + name) + require(hashlib.sha256(pinned).hexdigest() == row["sha256"], "source SHA256 provenance mismatch: " + name) + if row["usage"] == "input": + require(pinned == relative_file(root, name).read_bytes(), "working source drift: " + name) + if name == catalog_name: + catalog = json.loads(pinned) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task["task_id"]] + require(len(cards) == 1, + "TASK.json task_id " + brief(task["task_id"]) + " matches " + str(len(cards)) + + " cards in pinned " + catalog_name + " at base_commit " + sources["base_commit"] + + "; need exactly one") + original_card = require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object (copy --print-card output verbatim)") + if original_card != cards[0]: + raise ValueError("original card in TASK.json must equal the pinned catalogue card object exactly; " + "copy it verbatim from " + catalog_name + " at base_commit " + sources["base_commit"] + + ": " + card_differences(original_card, cards[0])) + return task, manifest + + +def catalogue_card(root, package, task_id): + """The exact original_card object a hand-authored TASK.json must copy. + + Reads the catalogue blob pinned at the package base commit, never the + working tree, because validate() compares original_card against that pin. + """ + sources = json.loads(relative_file(root, package + "/SOURCES.json").read_text(encoding="utf-8")) + name = "docs/research/agent-task-catalog.json" + rows = require_key(sources, "files", "SOURCES.json") + row = next((r for r in rows if isinstance(r, dict) and r.get("path") == name), None) + require(row is not None, "SOURCES.json.files must pin the originating task catalogue " + name) + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + spec = source_pin(row, base) + require(spec == base + ":" + name, "originating task catalogue must be pinned at base_commit") + catalog = json.loads(git(root, "show", spec)) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task_id] + require(len(cards) == 1, + "task_id " + brief(task_id) + " matches " + str(len(cards)) + + " cards in pinned " + name + " at base_commit " + base + "; need exactly one") + return cards[0] + + +_WINDOWS_GATE = r""" +import ctypes +from ctypes import wintypes +import json +import subprocess +import sys +api = ctypes.WinDLL('kernel32', use_last_error=True) +api.OpenEventW.argtypes = [wintypes.DWORD, wintypes.BOOL, wintypes.LPCWSTR] +api.OpenEventW.restype = wintypes.HANDLE +api.WaitForSingleObject.argtypes = [wintypes.HANDLE, wintypes.DWORD] +api.WaitForSingleObject.restype = wintypes.DWORD +api.CloseHandle.argtypes = [wintypes.HANDLE] +api.CloseHandle.restype = wintypes.BOOL +event = api.OpenEventW(0x00100000, False, sys.argv[1]) +if not event: + raise ctypes.WinError(ctypes.get_last_error()) +try: + if api.WaitForSingleObject(event, 30000) != 0: + raise RuntimeError('replay ownership gate was not released') +finally: + api.CloseHandle(event) +# No verification command or descendant starts until the parent owns this job. +sys.exit(subprocess.call(json.loads(sys.argv[2]))) +""" + +def run_windows_command(argv, cwd, timeout, env): + """Own ordinary verification descendants even after their leader exits. + + The gated launcher joins a kill-on-close Job Object before it may spawn + the requested command. A late taskkill cannot recover an exited leader's + tree. Job handles are not inherited and breakaway is not enabled. + """ + import ctypes + from ctypes import wintypes + import time + import uuid + + class BasicLimits(ctypes.Structure): + _fields_ = [("ProcessTime", ctypes.c_int64), ("JobTime", ctypes.c_int64), + ("Flags", wintypes.DWORD), ("MinWorkingSet", ctypes.c_size_t), + ("MaxWorkingSet", ctypes.c_size_t), ("ActiveProcessLimit", wintypes.DWORD), + ("Affinity", ctypes.c_size_t), ("Priority", wintypes.DWORD), + ("Scheduling", wintypes.DWORD)] + + class IOCounts(ctypes.Structure): + _fields_ = [(name, ctypes.c_uint64) for name in + ("ReadOps", "WriteOps", "OtherOps", "ReadBytes", "WriteBytes", "OtherBytes")] + + class ExtendedLimits(ctypes.Structure): + _fields_ = [("Basic", BasicLimits), ("IO", IOCounts), + ("ProcessMemory", ctypes.c_size_t), ("JobMemory", ctypes.c_size_t), + ("PeakProcessMemory", ctypes.c_size_t), ("PeakJobMemory", ctypes.c_size_t)] + + class Accounting(ctypes.Structure): + _fields_ = [(name, ctypes.c_int64) for name in + ("UserTime", "KernelTime", "PeriodUserTime", "PeriodKernelTime")] + [ + (name, wintypes.DWORD) for name in + ("PageFaults", "TotalProcesses", "ActiveProcesses", "TerminatedProcesses")] + + api = ctypes.WinDLL("kernel32", use_last_error=True) + + def native(name, result, *arguments): + fn = getattr(api, name) + fn.restype, fn.argtypes = result, arguments + return fn + + handle, dword, boolean = wintypes.HANDLE, wintypes.DWORD, wintypes.BOOL + create_job = native("CreateJobObjectW", handle, ctypes.c_void_p, wintypes.LPCWSTR) + set_info = native("SetInformationJobObject", boolean, handle, ctypes.c_int, ctypes.c_void_p, dword) + assign = native("AssignProcessToJobObject", boolean, handle, handle) + terminate = native("TerminateJobObject", boolean, handle, wintypes.UINT) + query = native("QueryInformationJobObject", boolean, handle, ctypes.c_int, + ctypes.c_void_p, dword, ctypes.c_void_p) + create_event = native("CreateEventW", handle, ctypes.c_void_p, boolean, boolean, wintypes.LPCWSTR) + set_event = native("SetEvent", boolean, handle) + close = native("CloseHandle", boolean, handle) + + def checked(ok): + if not ok: + raise ctypes.WinError(ctypes.get_last_error()) + return ok + + job = checked(create_job(None, None)) + event, process, assigned = None, None, False + try: + limits = ExtendedLimits() + limits.Basic.Flags = 0x2000 # JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE + checked(set_info(job, 9, ctypes.byref(limits), ctypes.sizeof(limits))) + name = "Local\\research-replay-" + uuid.uuid4().hex + event = checked(create_event(None, True, False, name)) + # A name collision must not attach to an already-signaled event. + if ctypes.get_last_error() == 183: + raise ValueError("replay ownership gate name already exists") + process = subprocess.Popen( + # The gate itself must not run sitecustomize/PYTHONPATH startup + # code before ownership. The requested command retains env/argv. + # Windows accepts Unicode argv directly. ASCII JSON escaping can + # expand an otherwise valid command past its UTF-16 launch limit. + [sys.executable, "-I", "-S", "-c", _WINDOWS_GATE, name, + json.dumps(argv, ensure_ascii=False)], + cwd=cwd, env=env, start_new_session=True) + checked(assign(job, int(process._handle))) + assigned = True + checked(set_event(event)) + try: + return process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + finally: + try: + if process is not None: + if assigned: + checked(terminate(job, 1)) + # Termination is asynchronous. Require the job to report + # no active processes before releasing its ownership handle. + deadline = time.monotonic() + 10 + while True: + state = Accounting() + checked(query(job, 1, ctypes.byref(state), ctypes.sizeof(state), None)) + if not state.ActiveProcesses: + break + if time.monotonic() >= deadline: + raise ValueError("verification process cleanup timed out") + time.sleep(0.01) + elif process.poll() is None: + # Assignment failed before the gate opened: no command child + # exists, so only this known gated launcher needs stopping. + process.kill() + process.wait(timeout=10) + finally: + try: + if event: + checked(close(event)) + finally: + checked(close(job)) + +def run_command(argv, cwd, timeout): + # Assertion checks must not disappear because of the caller's environment. + # Keep explicit manifest options (including deliberate -O controls) intact. + # PYTHONPATH precedes the standard library on a child's sys.path, so a stray + # same-named module could end a verifier with exit code 0 before any check. + env = os.environ.copy() + env.pop("PYTHONOPTIMIZE", None) + # Ambient inspection can turn a verifier exception into a successful REPL + # exit at terminal EOF. Keep explicit -i and the caller's stdin unchanged. + env.pop("PYTHONINSPECT", None) + env.pop("PYTHONPATH", None) + if os.name == "nt": + code = run_windows_command(argv, cwd, timeout, env) + require(code == 0, f"verification command exited {code}") + return + previous_handler = None + terminating = False + waiting = False + process = None + + def terminate(signum, frame): + nonlocal terminating + if not terminating: + terminating = True + # Only interrupt the protected wait. Launch/assignment and cleanup + # defer delivery; repeated signals cannot interrupt group cleanup. + if waiting: + raise SystemExit(128 + signum) + + # Own a group for POSIX cleanup of this command and its descendants. + try: + if (threading.current_thread() is threading.main_thread() + and signal.getsignal(signal.SIGTERM) == signal.SIG_DFL): + previous_handler = signal.SIG_DFL + signal.signal(signal.SIGTERM, terminate) + if terminating: + raise SystemExit(143) + process = subprocess.Popen(argv, cwd=cwd, env=env, start_new_session=True) + try: + try: + waiting = True + if terminating: + raise SystemExit(143) + code = process.wait(timeout=timeout) + finally: + waiting = False + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + require(code == 0, f"verification command exited {code}") + finally: + try: + if process is not None: + if hasattr(os, "killpg"): + # The leader may have exited while descendants hold its group. + try: + os.killpg(process.pid, signal.SIGKILL) + except ProcessLookupError: + pass + elif process.poll() is None: + subprocess.run(["taskkill", "/F", "/T", "/PID", str(process.pid)], capture_output=True) + process.wait() + finally: + if previous_handler is not None: + signal.signal(signal.SIGTERM, previous_handler) + if terminating: + raise SystemExit(143) + + +def isolated_python_argv(argv, cache_directory): + """Place our cache option after interpreter flags, before the entry point. + + -B prevents writes, not reads of existing .pyc files. A fresh namespace + keeps preexisting source-adjacent and externally configured caches out of + this registered interpreter. It is not inherited by child interpreters. + """ + require(argv and argv[0] == sys.executable, "cache isolation requires the registered Python interpreter") + index = 1 + options = [argv[0]] + while index < len(argv): + option = argv[index] + if option in ("-", "--") or not option.startswith("-"): + break + if option == "--check-hash-based-pycs": + require(index + 1 < len(argv), "missing Python hash-cache option argument") + options.extend(argv[index:index + 2]) + index += 2 + continue + if option.startswith("--"): + options.append(option) + index += 1 + continue + # Python permits combined short flags, attached -c/-m payloads, and + # attached or separate -W/-X arguments. Stop scanning an option once + # its argument begins: letters inside that argument are not flags. + entry = False + consumed = 1 + replace_cache = False + for offset, flag in enumerate(option[1:], start=1): + if flag in "cm": + entry = True + break + if flag in "WX": + if offset == len(option) - 1: + require(index + 1 < len(argv), "missing Python interpreter option argument") + consumed = 2 + value = argv[index + 1] if consumed == 2 else option[offset + 1:] + if flag == "X" and value.split("=", 1)[0] == "pycache_prefix": + replace_cache = True + if offset > 1: + options.append(option[:offset]) + break + if entry: + break + if not replace_cache: + options.extend(argv[index:index + consumed]) + index += consumed + # CPython's effective prefix can use the first duplicate -X value even + # when sys._xoptions shows the last. Remove only earlier cache-prefix + # settings; script arguments remain untouched, even when spelled -X. + return [*options, "-X", "pycache_prefix=" + str(cache_directory), *argv[index:]] + + +def run_python_replay(argv, cwd, timeout): + with tempfile.TemporaryDirectory(prefix="research-replay-pycache-") as cache: + run_command(isolated_python_argv(argv, cache), cwd, timeout) + + +def run_package(root, package, install=False): + task, manifest = validate(root, package) + require(sys.version_info[:2] == (3, 12), "run replay with Python 3.12 (metadata check is version-independent)") + if install and manifest["requirements"]: + run_command([sys.executable, "-m", "pip", "install", "--disable-pip-version-check", *manifest["requirements"]], root, 300) + for requirement in manifest["requirements"]: + name, version = requirement.split("==") + require(importlib.metadata.version(name) == version, "dependency version mismatch: " + requirement) + # Coverage labels are UTF-8 metadata but a redirected Windows stdout may + # use cp1252. Escape unrepresentable display characters instead of aborting + # before replay. This changes only our stream, not child encoding or env. + if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(errors="backslashreplace") + for command in manifest["commands"]: + argv = [sys.executable if item == "{python}" else item.replace("{package}", package) for item in command["argv"]] + print("CHECK " + command["checks"], flush=True) + run_python_replay(argv, root, command["timeout_seconds"]) + print("PASS_REGISTERED_RESEARCH_PACKAGE " + package + " outcome=" + task["outcome"]) + + +def planning_manifests(root, tracked): + """Include deliberate sparse omissions without disguising deletions or drift. + + The fallback follows the chooser's PR3102 contract: one stage-zero regular + skip-worktree index entry must match the exact HEAD mode and blob. This is + declaration discovery only, not permission to replay absent package code. + """ + committed = {name for name in tracked + if name.startswith("research/") and name.count("/") == 2 + and name.endswith("/VERIFY.json")} + # Explicit scandir retains error detection; only an absent directory is OK. + try: + with os.scandir(root / "research") as entries: + local = {Path(entry.path) / "VERIFY.json" for entry in entries} + except FileNotFoundError: + local = set() + present, missing = {}, set() + for path in sorted(local | {root / name for name in committed}): + name = path.relative_to(root).as_posix() + symlink_free_relative_path(root, name) + try: + mode = path.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + if name in committed: + missing.add(name) + continue + require(stat.S_ISREG(mode), "non-regular replay manifest: " + name) + present[name] = path + fallback = {} + if missing: + indexed, objects = {}, {} + for record in git(root, "ls-files", "-t", "--stage", "-z", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + indexed.setdefault(name, []).append(header.split()) + for record in git(root, "ls-tree", "-r", "-z", "HEAD", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + objects[name] = header.split() + for name in sorted(missing): + metadata = objects.get(name, []) + require(len(metadata) == 3 and metadata[0] in (b"100644", b"100755") + and metadata[1] == b"blob" + and indexed.get(name) == [[b"S", metadata[0], metadata[2], b"0"]], + "missing replay manifest is not an unchanged sparse HEAD input: " + name + + "; materialize it or commit its intended deletion") + # A regular file occupying the package directory is not an omission. + require(not (root / name).parent.exists() or (root / name).parent.is_dir(), + "non-directory replay package: " + name) + names = sorted(missing) + with closing(git_blobs(root, [objects[n][2].decode("ascii") for n in names])) as rows: + for (oid, raw), name in zip(rows, names): + require(oid.encode("ascii") == objects[name][2], "sparse manifest blob mismatch: " + name) + fallback[name] = raw + # Preserve Path's component ordering: package "a" precedes "a-extra". + for name in sorted(present.keys() | fallback.keys(), key=lambda name: PurePosixPath(name).parts): + yield root / name, fallback[name] if name in fallback else present[name].read_bytes(), name in fallback + + +def plan_details(root, changed): + """One selection pass with exact causes; no replay or acceptance decision.""" + changed = set(changed) + # A removed input is absent from HEAD, including an old case-only rename + # spelling on case-insensitive filesystems. Git's exact changed paths remain + # eligible so its consumer is selected, rather than rejected or skipped. + head_tracked = tracked_input_paths(root) + tracked = head_tracked | changed + replay_changed = sorted(changed.intersection({ + "scripts/research_package.py", ".github/workflows/research-packages.yml", + ".github/workflows/research-package-batch.yml"})) + # Group literal Git paths once. Keep removed paths and exact spellings. + changed_packages = {} + for name in sorted(changed): + parts = name.split("/", 2) + if len(parts) == 3 and parts[0] == "research": + changed_packages.setdefault("/".join(parts[:2]), []).append(name) + packages = [] + sparse_count = 0 + for path, raw, sparse in planning_manifests(root, head_tracked): + sparse_count += sparse + package = path.parent.relative_to(root).as_posix() + manifest = json.loads(raw.decode("utf-8")) + # Parse only for selection; validate fully in the isolated replay job. + inputs = manifest.get("inputs", []) + require(isinstance(inputs, list), "declare input paths for CI invalidation") + for name in inputs: + # Do not require existence: a deleted input must still trigger replay. + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + causes = { + "declared_inputs": sorted(changed.intersection(inputs)), + "package_files": changed_packages.get(package, []), + "shared_controls": replay_changed, + } + if any(causes.values()): + packages.append({"package": package, "causes": causes, + "manifest_sha256": hashlib.sha256(raw).hexdigest()}) + if sparse_count: + print(f"Planning includes {sparse_count} unchanged sparse manifests from HEAD; " + "materialize packages and inputs before replay.", file=sys.stderr) + return packages + + +def plan(root, changed): + return [row["package"] for row in plan_details(root, changed)] + + +def write_plan_explanation(path, base, head, changed, details): + """Publish a complete sidecar before stdout/GitHub matrix publication.""" + matched = {name for row in details for names in row["causes"].values() for name in names} + report = { + "schema_version": 1, "base": base, "head": head, + "mode": "all-tracked" if base is None else "commit-diff", + "scope": "Selection from working or authenticated sparse HEAD manifests, not replay or mathematical acceptance. " + "Manifest hashes bind the declarations read; checkout must remain stable.", + "changed_paths": sorted(set(changed) - {""}), "selected": details, + "unmatched_paths": sorted(set(changed) - matched - {""}), + } + fd, temporary = tempfile.mkstemp(prefix=".replay-plan-", dir=path.parent) + try: + with os.fdopen(fd, "w", encoding="utf-8") as stream: + json.dump(report, stream, indent=2) + stream.write("\n") + os.replace(temporary, path) + finally: + Path(temporary).unlink(missing_ok=True) + + +def replay_matrix(packages, batch_size=None): + """Retain the flat CLI format, or group complete coverage into bounded matrices.""" + if batch_size is None: + return {"include": [{"package": p} for p in packages]} + require(type(batch_size) is int and 1 <= batch_size <= 256, + "matrix batch size must be 1..256") + batches = [packages[i:i + batch_size] for i in range(0, len(packages), batch_size)] + require(len(batches) <= 256, + "more than 256 matrix batches required; no packages were truncated") + return {"include": [{"packages": batch} for batch in batches]} + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--package") + ap.add_argument("--check-only", action="store_true") + ap.add_argument("--print-card", metavar="TASK_ID", + help="print the exact pinned catalogue card object to copy into TASK.json original_card") + ap.add_argument("--install-deps", action="store_true", help="explicit opt-in to install manifest's allowed pinned dependencies") + ap.add_argument("--changed-since", help="plan affected opt-in packages relative to this Git commit") + ap.add_argument("--github-output", type=Path) + ap.add_argument("--explain-plan", type=Path, + help="write exact replay-selection causes to JSON; matrix output stays unchanged") + ap.add_argument("--matrix-batch-size", type=int, + help="group planned packages for bounded reusable-workflow matrices (1..256)") + args = ap.parse_args() + if args.explain_plan and (not args.changed_since or args.package or args.print_card): + ap.error("--explain-plan requires --changed-since without --package or --print-card") + if args.explain_plan and args.github_output and args.explain_plan.resolve() == args.github_output.resolve(): + ap.error("--explain-plan and --github-output must use different files") + try: + if args.print_card: + require(args.package, + "--print-card needs --package research/ to resolve its pinned catalogue") + sys.stdout.write(json.dumps(catalogue_card(ROOT, args.package, args.print_card), indent=2) + "\n") + elif args.changed_since: + if set(args.changed_since) == {"0"}: + base = None + changed = git(ROOT, "ls-files", "-z").decode().split("\0") + else: + base = git(ROOT, "rev-parse", "--verify", args.changed_since + "^{commit}").decode().strip() + # A rename must invalidate both the removed input and its new path. + changed = git(ROOT, "diff", "--no-renames", "--name-only", "-z", base, "HEAD").decode().split("\0") + details = plan_details(ROOT, changed) + packages = [row["package"] for row in details] + matrix = json.dumps(replay_matrix(packages, args.matrix_batch_size)) + if args.explain_plan: + head = git(ROOT, "rev-parse", "--verify", "HEAD^{commit}").decode().strip() + write_plan_explanation(args.explain_plan, base, head, changed, details) + print(matrix) + if args.github_output: + with args.github_output.open("a", encoding="utf-8") as out: + out.write(f"matrix={matrix}\ncount={len(packages)}\n") + elif args.package: + if args.check_only: + validate(ROOT, args.package) + print("PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check)") + else: + run_package(ROOT, args.package, args.install_deps) + else: + ap.error("use --package, --print-card or --changed-since") + except (OSError, ValueError, KeyError, TypeError, subprocess.SubprocessError, importlib.metadata.PackageNotFoundError) as exc: + ap.exit(1, str(exc) + "\n") + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json new file mode 100644 index 0000000000..21cd78f6f7 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1-MERKLE-PROVENANCE.json @@ -0,0 +1,696 @@ +{ + "schema": "raw-git-merkle-source/v1", + "capsule_version": "capsule-v1", + "capsule_manifest_sha256": "ae6a1b933c386feabc9bab3300163df41e94bd3ddeeff973955695d33d5b11c8", + "candidate_head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "commit_and_tree_objects": { + "1ec1119972c9aefe42525172d07b332fcff81cb4": { + "kind": "commit", + "bytes": 317, + "base64": "dHJlZSBiZmI0MjAwNDVkMmJjMDRkZDAyNmI1MDIwYWVhODRkNTQ3ODczZWY0CnBhcmVudCA3YzQ3MjU2MzQ3NGU2MDE4NWU2Y2ExMDFhMTc2MjIxMzNkMDQ3ZTU2CmF1dGhvciBEb3VnbGFzIFIuIENvbGtpdHQgPGRvdWdsYXMuY29sa2l0dEBnbWFpbC5jb20+IDE3OTI3ODY3NjIgLTA0MDAKY29tbWl0dGVyIERvdWdsYXMgUi4gQ29sa2l0dCA8ZG91Z2xhcy5jb2xraXR0QGdtYWlsLmNvbT4gMTc5Mjc4Njc2MiAtMDQwMAoKQWRtaXQgY29uZGl0aW9uYWwgUFI0NjEwIGZyb250aWVyIHRocm91Z2ggaW5kZXBlbmRlbnQgUFI1MjQxIGF1ZGl0IFtza2lwIGNpXQo=" + }, + "bfb420045d2bc04dd026b5020aea84d547873ef4": { + "kind": "tree", + "bytes": 969, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAP9s+hjrGHqk/wQ4sDx2urOjeOUZNDAwMDAgLmdpdGh1YgDFVqeGTx2rA2PiOhpE+GgliOwfdjEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IEFHRU5UUy5tZACupVc9G2XO99ngjO1G2GnnXagUWzEwMDY0NCBDSVRBVElPTi5jZmYA2A9rhmDWyqqCyxlPwi0IF9ZC0EMxMDA2NDQgQ09OVFJJQlVUSU5HLm1kAP5U8j8ZsIKp+N89qbLiBffiMKzzMTAwNjQ0IENPTlRSSUJVVE9SUy5tZACeT8VVOPITLO3KyJNjiS8KH1BQZzEwMDY0NCBMSUNFTlNFACYe656fiytLDRGTZt2pnG/X01xkMTAwNjQ0IE1ha2VmaWxlAHFwhBqtabk6reiSRWDgTtfie5VWMTAwNjQ0IE5PVElDRQBZ2ODPMQLhW9EdtDCDg2VTHi1/GDEwMDY0NCBQQVRDSElORy5tZACgLiMCVrlZJBa4jA8zLfbxxMZNUTEwMDY0NCBSRUFETUUubWQAl/fqkXvPmStgBsb/phXI7gBgDU4xMDA2NDQgU09VUkNFUy5qc29uANOR/BBmaeIoXYZgAIp9XYrM+rb/NDAwMDAgYXJ0aWZhY3RzAH1xehYTIN883i0WIrYNqiDacVN/MTAwNjQ0IGF1dG9yZXNlYXJjaC5tZAAv6Ep7MLHibmDODsR3WJTrGDHF1jQwMDAwIGNlcnRpZmljYXRlcwCSvSgaJ0GRJC8YNUT166skt/YRJzQwMDAwIGRvY3MAJYqqh27LUwxMFzyOPvk8z4fIFnM0MDAwMCBmb3JtYWwAcRgvjgdslCM1X93qv0UbDK3oxa40MDAwMCBtdWx0aXRhcGUtb3JpZ2luLXJldHVybgDsWA2gJBrTevnqTkHd3N3Fhx6zhDQwMDAwIG5vdGVzACJq93deUetstz9oSViWj3cuFOZjNDAwMDAgcGF0Y2hlcwCUv/pZg/3pj+XV4/WMSMPsYbKkTzQwMDAwIHJlZmVyZW5jZXMA5N7hHbn8OUTOd9ezLdHDrSLRGsA0MDAwMCByZXNlYXJjaADCEdTrB3MIZb/9aaNahaBkKswzPTQwMDAwIHNjcmlwdHMAaBri6Iyu9jVhvuQLwaaRbLozXws0MDAwMCB0ZXN0cwAz/HuAfenor2M+8cRFovHB9YBqBDQwMDAwIHVwc3RyZWFtAORNOWIbWOKzUfkQe5+hcNao1P4c" + }, + "92bd281a274191242f183544f5ebab24b7f61127": { + "kind": "tree", + "bytes": 6799, + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLWF1ZGl0Lmpzb24AiydRMEIw8avqwBIXGqD7iDY/SGoxMDA2NDQgYWZmaW5lLXZlY3Rvci1zY3JlZW5zLmpzb24AKxPPHe7wSsUB3f6CFfqQZYvqRMUxMDA2NDQgYmF0Y2hlZC1uZXR3b3JrLmpzb24AS5BgNjlpyUthtneavOnYDM+v9A8xMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lmpzb24ALIsiGteTXUnSR5/UR2LPgpkGbRkxMDA2NDQgYmxvY2stY2FycnktYXVkaXQuanNvbgC62qdp/ZgL967C4Mk6BL7Ti8mtEDEwMDY0NCBibG9jay1jb3JlLmpzb24ADW4XeeQ3RNU847Y8JwrA8XzcWzAxMDA2NDQgYmxvY2stbGFiZWwtYXVkaXQuanNvbgAwXzC//2EEVWRyMqU+BwH8eonU9TEwMDY0NCBibG9jay1sYWJlbC10YXJnZXQuanNvbgAVuWCbZNc4mfBCMrdhGTZ9wazw9jEwMDY0NCBjYW5jZWxsYXRpb24tYXVkaXQuanNvbgAsrKFT5A+pX3N8U4J+M1n/I0dqnjQwMDAwIGNoZWNrcG9pbnRzAPX9xd19XpIiNFmdm74P2PxhHDwoMTAwNjQ0IGNvZGVkLWNhcnJ5LWF1ZGl0Lmpzb24A/46BbCsTpZb7S85f+SsfJNUDYRgxMDA2NDQgY29tcGFjdC1jb250cm9sLWF1ZGl0Lmpzb24ATJu8MPiifg6W13Ya96ei8X0P2/gxMDA2NDQgY29tcGFjdC1jb250cm9sLWxheWVyLmpzb24AoIfke4vot/4fIeoupgsfU+C4d9gxMDA2NDQgY29tcGxleC1jb21wcmVzc2lvbi5qc29uAJfEvpVxtexs1BQfrkNhvDRxnlptMTAwNjQ0IGNvbXBsZXgtbmV0d29yay5qc29uAGKmCRiHo4lFNcHQWeGwxSfVVut2MTAwNjQ0IGNvbnRyb2xsZWQtYml0LXJhbmstbW9tZW50Lmpzb24ABS5P7/WWQW3HIQf0BhVn+x+H8xcxMDA2NDQgY29waWVkLWNlbnRlcnMtYml0LWF4ZXMuanNvbgC/s6IX7hvV3s2M8BULjtVXPDA7cjEwMDY0NCBjb3BpZWQtY2VudGVycy1jb21wbGV4LWlucHV0Lmpzb24ANodX0bSGeniTHk/mcayWW8BH1OoxMDA2NDQgY29waWVkLWNlbnRlcnMtY29ybmVyLTI1LTIzLmpzb24AQh41p8Blq/Woext2taGhhHIgiMcxMDA2NDQgY29waWVkLWNlbnRlcnMtaW5wdXQuanNvbgCBe56bPGv+0fQZyXBOHQKgm5HAnjEwMDY0NCBjb3BpZWQtY2VudGVycy1uZXR3b3JrLmpzb24AILu2gGzgYR5IFRKJTR/XPZfClw8xMDA2NDQgY29yZS1saW1pdHMuanNvbgAbq6XnUSh0N67VSGFdRrT4LMn/HDEwMDY0NCBjdWJlLWNvcmUtZmFtaWx5Lmpzb24ALnjf/NOBloNBFyYBx8haZRU4hj4xMDA2NDQgY3ljbGljLXRvcG9sb2d5LWF1ZGl0Lmpzb24AonM7PHSYUr3wqF3GdG/1lsKYGEUxMDA2NDQgZGFnLW5ldHdvcmsuanNvbgA/nOPBhK9pnMy0OKzdW0fmRYIA4DEwMDY0NCBkaXNqb2ludC10ZW5zb3ItY29tcHJlc3Npb24uanNvbgA2sAVvmezK9VJnMBJAS4c57xeESTEwMDY0NCBkeWFkaWMtY2VudHJhbC1mYWN0b3IuanNvbgB1ZWsYHcOoDJ9WX7QXlRUPoju12TEwMDY0NCBlYXJseS1zaGFyaW5nLWF1ZGl0Lmpzb24ANEpFgoRRkFg6NfIiywKW5Pofw3gxMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtYml0LWF4ZXMuanNvbgDzdRDkw+6+sPkL154sPd8pQDYYJTEwMDY0NCBlbmRwb2ludC1nYXVnZS1jb21wbGV4LWlucHV0Lmpzb24Ao51wCIrUVlKNUvcebkuAch7j1S8xMDA2NDQgZW5kcG9pbnQtZ2F1Z2UtaW5wdXQuanNvbgCXEF5pfgMnvlgpDAsQkDTtkXSWuTEwMDY0NCBlbmRwb2ludC1nYXVnZS1uZXR3b3JrLmpzb24AOaui/Yiv7Y1bX/jMBoob5QJrF6sxMDA2NDQgZmFuby1jb21wbGV0aW9uLWF1ZGl0Lmpzb24AMu4gNG4y2Y9vwpTYd3Qi+5xlvGgxMDA2NDQgZmFuby1wZXJtdXRhdGlvbi1hdWRpdC5qc29uAOJc1dzGXLS7Qmpo/P7MrCxUYilWMTAwNjQ0IGZhc3QtZ2F1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phyNx1kxMDA2NDQgcm91dGluZy10dW5lZC5qc29uAPisrcwM6iSLxL4BbNVvo9oQI7eqMTAwNjQ0IHNjcmF0Y2gtcG9vbGluZy1hdWRpdC5qc29uAFfjI3JMY5g394kCgM89/iNCnBADMTAwNjQ0IHNlbGVjdGVkLXJlc3VsdC5qc29uALKIrkQDL9hN1VZCQ0IoNsvNKYNeMTAwNjQ0IHNoYXJlZC1jb3JlLmpzb24AZab9XBk/2jJXoreqX3+/c+k4LTIxMDA2NDQgc2hhcmVkLXBvaW50LW5ldHdvcmsuanNvbgD0rLPfiVgIx6FCyDzUx9T6q9Bo6DEwMDY0NCBzaG9ydC1ndWFyZC1hdWRpdC5qc29uAJ7xWdDnZA98zgwLWxLG0AECWVPVMTAwNjQ0IHNpZ25lZC1zcGFyc2UtY29yZS5qc29uALFKc8szRNBWapFSOnEH199H7xB9MTAwNjQ0IHNpbmdsZS1pbnRlcnNlY3Rpb24uanNvbgD1/Wu/Vn0Lb4HRqFNBaO14UJo5RTEwMDY0NCBza2lwLWZyYW1lLWNvbXBpbGVyLmpzb24AIaghLV3T6oWm1o1arvMZHmWFjggxMDA2NDQgc2tpcC1mcmFtZS1rYXBwYS5qc29uANv9+3msay0xZx2QkaNrsTheZWRPMTAwNjQ0IHNraXAtZnJhbWUtbWVjaGFuaXNtLXJldmlldy5qc29uAEmytblbdvteiV5TVzIOHJbjj2zKMTAwNjQ0IHNraXAtZnJhbWUtcHJvZmlsZXMtMjMuanNvbgD5w5Kkdbcl7zLnCwqehK8Q+elfITEwMDY0NCBza2lwLWZyYW1lLXByb2ZpbGVzLTI1Lmpzb24Ad21w5IeHVveysY5/DE5QJlZOYacxMDA2NDQgc2tpcC1mcmFtZS1yZXBvc2l0b3J5LXZhbGlkYXRpb24uanNvbgC2vZFhHR7Hum+oSKsyqOEw91cOoTEwMDY0NCBza2lwLWZyYW1lLXJlcHJvZHVjdGlvbi5qc29uANYxNWRjTzVQHJ4K59Vbf1IbLS/EMTAwNjQ0IHNraXAtZnJhbWUtdHJhbnNpdGlvbnMtMjMuanNvbgAUChLb9bUU7EcVbthKrEJ5QKL4NTEwMDY0NCBza2lwLWZyYW1lLXRyYW5zaXRpb25zLTI1Lmpzb24AHyM/lj1x8AnCGOaUcfhEbRaOt38xMDA2NDQgc2tpcC1mcmFtZS12YWxpZGF0aW9uLmpzb24ATY9oVcg6a7nMbHlkmV2kqI/0/14xMDA2NDQgc2tpcC1mcmFtZS13b3JkLTIzLmpzb24uZ3oAbVmnJd5BNFC/bB6IuBjfEVZABjcxMDA2NDQgc2tpcC1mcmFtZS13b3JkLTI1Lmpzb24uZ3oA6AIiU4AIsIQFNs4M172nZwIX244xMDA2NDQgc21hbGwtYmxvY2std2l0bmVzcy5qc29uAGNRBAsLQHDl+ay2zy71WEkjIQj4MTAwNjQ0IHNwYXJzZS1mdXNpb24tYXVkaXQuanNvbgBYTqjVa7w8bBKGf5VRtCV2T75lPTEwMDY0NCBzcGxpdC1jZW50ZXJzLWF1ZGl0Lmpzb24Am7ETDWpWhDibLkOwuk9PelR8D0IxMDA2NDQgc3RhZ2UtcGFpci1hdWRpdC5qc29uAFe7YgswA/t5URpHWxBFeYmLiXUUMTAwNjQ0IHN0YWdlLXJldXNlLmpzb24AhDl1jaFFsTPLe2ytzPNTXJKkTKgxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWJpdC1heGlzLmpzb24AWCSJHen3zQ/zunofxj2eDiRetCwxMDA2NDQgc3RvcHBlZC1wcm9kdWN0LWNvbXBsZXgtaW5wdXQuanNvbgB7HZnFGGmrF29MuepJfLqVTr3gtDEwMDY0NCBzdG9wcGVkLXByb2R1Y3QtaW5wdXQuanNvbgDwqRCklQqtxDWi9Pg5e8WfQOR+nTEwMDY0NCBzdG9wcGVkLXByb2R1Y3QtbmV0d29yay5qc29uAJmKin6iY/DGXHZVf1oKDic01rurMTAwNjQ0IHN0cm9uZ2VyLXJhbmstc2NyZWVucy5qc29uABz3imWFOpRMzBUrzymCHZ86yxfWMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1iaXQtYXhlcy5qc29uAA8tKm0wP7dTNwQq6fYwSAeKce+YMTAwNjQ0IHN0cnVjdHVyZWQtYnVsay1jb21wbGV4LWlucHV0Lmpzb24AYeS0dJct2Bn58ngEcjXvs9KWXLcxMDA2NDQgc3RydWN0dXJlZC1idWxrLWlucHV0Lmpzb24A783vFXAsunCysgTX1RQeLRS8sb0xMDA2NDQgc3RydWN0dXJlZC1idWxrLW5ldHdvcmsuanNvbgAn7Iau6rbmqL/LGCgWSHCBKEVecDEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstcmFua29uZS1leGFjdG5lc3MuanNvbgBpAV5R7OAnn/P3o+cx6H929nPwgzEwMDY0NCBzdHJ1Y3R1cmVkLWJ1bGstcmFua29uZS1wcm9maWxlcy5qc29uADnVZr+BdVEi+bdsIyUFr9nJkRidMTAwNjQ0IHN1YnNldC1jb3JlLWZhbWlseS5qc29uAI8LCXv87kmJCQQ9vgaAo6za9ipUMTAwNjQ0IHRlcm5hcnktc2lkZS5qc29uAAzKtfffU5MFJMD8gB3XydnC93EJMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLWJpdC1pbnB1dC5qc29uABlWrg4Gvjb+9YU5Z1/67uLp8mhUMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLWNvbXBsZXgtaW5wdXQuanNvbgDRuJvLcZmTZfJLa1KQ4URIGzaEBDEwMDY0NCB0aHJlZS1zdGFnZS1jb3Zlci1pbnB1dC5qc29uAEJ3yO4sBJ6vTWkc83Uys8VgfUj4MTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLW5ldHdvcmsuanNvbgBfza90IDouCZ0M37l+i5EsUhUbhw==" + }, + "258aaa876ecb530c4c173c8e3ef93ccf87c81673": { + "kind": "tree", + "bytes": 639, + "base64": "MTAwNjQ0IGFubm91bmNlbWVudC5tZABGtKByMzYo3MexCGHo4qffOG4zbDEwMDY0NCBhdWRpdC5tZABwwRtQpKMRPLy3fZn0Gt9OQXg7GTEwMDY0NCBjaS12ZXJpZmljYXRpb24ubWQASUt8odQcf5jOvccK1anaEFzz/z0xMDA2NDQgbm9uYWRqYWNlbnQtYXhpcy1hdWRpdC5tZAAGFSWr/P5uapTn5wT2Ibyhjrz3JzEwMDY0NCBwYWNrZWQtbW92ZW1lbnQtYXVkaXQubWQAUqC84LokBGs/3slCrc8ZmOnQ72UxMDA2NDQgcGFpcmVkLWN1YmUubWQA8Qwzmy3/lBk2Jnyv0sfHqtfaoksxMDA2NDQgcGFydGlhbC1nYXVnZS5tZADdXGcKUSjIWTytOVu9fi4DzirFYzEwMDY0NCBwcmUtY29tbXVuaXR5LXJlc2VhcmNoLXJlcHJvZHVjaWJpbGl0eS5tZAA4JSq0dv7t9QEJ90XPMwoZACm5djEwMDY0NCByZWxlYXNlLW5vdGVzLm1kANwgpt32GF8cnqY5d26XNM1K9wrDNDAwMDAgcmVsZWFzZXMA8l0N9tnlnBYCyn1Gifoax3yIMcMxMDA2NDQgcmVwcm9kdWNpYmlsaXR5Lm1kAM5iCVSobAtmiIWadCFEH8l6PZJZNDAwMDAgcmVzZWFyY2gA6ccLmSfW6SM2M+TogQj4MefFxdkxMDA2NDQgc3RvcHBlZC1wcm9kdWN0Lm1kAFvBy8iOTo5T9C2XGObFugo1mIonMTAwNjQ0IHRocmVlLXN0YWdlLWNvdmVyLm1kADhVTh+zaZ5KOniuCoH4NLom3HPt" + }, + "e9c70b9927d6e9233633e4e88108f831e7c5c5d9": { + "kind": "tree", + "bytes": 14144, + "base64": "MTAwNjQ0IGFkZGl0aXZlLWxhYmVsLW9ic3RydWN0aW9uLm1kAIsV3wCOxOo6W9ay2Br24jQJAsRAMTAwNjQ0IGFmZmluZS12ZWN0b3Itc2NyZWVucy5tZAAT9FRHi1VECMtV/bMdUUFitcSyQTEwMDY0NCBhZ2VudC1wcm9jZWR1cmUubWQAkpTFQL8MuGVpEOCBmwdM/WbG7d0xMDA2NDQgYWdlbnQtdGFzay1jYXRhbG9nLmpzb24A8SbdLi2tK2aeddHQ0L0FxgByVgIxMDA2NDQgYXNzZW1ibHktY2VpbGluZy5tZACNCVw4TnxhlJfE35PXHobspTQZeDEwMDY0NCBhc3NlbWJseS1kb21haW4tYXVkaXQuanNvbgCEebdhsnbrawjm311+Oul1FednizEwMDY0NCBhc3NlbWJseS1kb21haW4tYXVkaXQubWQAMioWhOkh9npfOPIAhzE7T+gwSdExMDA2NDQgYXNzZW1ibHktZG9tYWluLXJlY2VpcHQtY2hlY2subWQA4Ig3jdxcbBIB7saaSBlhE6f65rAxMDA2NDQgYmF0Y2hlZC1yZXZpZXcubWQA4s/QFOJBDAeL7iElBwW3vNRZLWIxMDA2NDQgYml0LWNvbXByZXNzaW9uLWF1ZGl0Lm1kAGRMZYfkNuNXfhIdqye/uBem6SJJMTAwNjQ0IGJsb2NrLWNhcnJ5LWF1ZGl0Lm1kAPGCQJaMuNAxStaqOn9A358VXltIMTAwNjQ0IGJsb2NrLWNvcmUubWQA7lUxccJfozduizbqUn3hZG4uxqMxMDA2NDQgYmxvY2stbGFiZWwtZmVhc2liaWxpdHkubWQA5UUzo1A3wqjIlhlu8gqOzEytvT4xMDA2NDQgYm90dGxlbmVjay1icmllZi5tZACkHkBgoTW0Nn1+wyKCMhcPoJJ4hjEwMDY0NCBieXRlY29kZS1yZXBsYXktaXNvbGF0aW9uLm1kAFqAJyhVY8p8LChLVBKA6rXjEhS1MTAwNjQ0IGNhbmNlbGxhdGlvbi1hdWRpdC5tZAAHPAVySzsczZR78UC6pwprEovenDEwMDY0NCBjb2RlZC1jYXJyeS1hdWRpdC5tZAAOqGJBWlb9o5LNXJ70MeL78DkoVDEwMDY0NCBjb21tdW5pdHktYXVkaXQtYXJpdGhtZXRpYy5qc29uAHyv0Jb+ypJRN6UXF+bkaP2ieUacMTAwNjQ0IGNvbW11bml0eS1iYXRjaDEwNDctaW50ZWdyYXRpb24uanNvbgDFw6/Zib3RW9c8S5w/pHYVn6mKzjEwMDY0NCBjb21tdW5pdHktYmF0Y2gxMDQ3LXJldmlldy5tZAArnJ9YS1+bTbXKFvOULBeKd8GfETEwMDY0NCBjb21tdW5pdHktYmF0Y2gxMDk5LWludGVncmF0aW9uLmpzb24AnWDobA5JTRe+xeKO2kGydcnt5k4xMDA2NDQgY29tbXVuaXR5LWJhdGNoMTA5OS1yZXZpZXcubWQAbLbsBhoHGgai0YzU3D6aKwXSgJkxMDA2NDQgY29tbXVuaXR5LWJhdGNoOTMyLWludGVncmF0aW9uLmpzb24Aydmi6Hlu/92aHQTF9B56bwK1P5cxMDA2NDQgY29tbXVuaXR5LWJhdGNoOTMyLXJldmlldy5tZACJ0BSNmQWg8cL0ujkBYH/QFWlirDEwMDY0NCBjb21tdW5pdHktYmF0Y2g5NTItaW50ZWdyYXRpb24uanNvbgCrUieIkQNl/FaEtfE6+R4V1uYOojEwMDY0NCBjb21tdW5pdHktYmF0Y2g5NTItcmV2aWV3Lm1kAFEs6fGLMgB76nFFLrXz64XE1XetMTAwNjQ0IGNvbW11bml0eS1iYXRjaDk3MC1jaXJjdWl0cy1yZXZpZXcubWQAIsA8A/XpWRlAxCKylZymSDhrHTgxMDA2NDQgY29tbXVuaXR5LWJhdGNoOTcwLWludGVncmF0aW9uLmpzb24AugZp2bjgN4ooSxqZa1uL5hrb9lYxMDA2NDQgY29tbXVuaXR5LWJhdGNoOTcwLWludGVyZmFjZXMtcmV2aWV3Lm1kAKrWJx43s+yFiF/a69MVauqUXxR7MTAwNjQ0IGNvbW11bml0eS1iYXRjaDk3MC1yZXZpZXcubWQATpU9/MgLwjRElGSMJtB6YjJmEWMxMDA2NDQgY29tbXVuaXR5LWNpcmN1aXRzNjgxLXJldmlldy5tZAB7+Qjx3jVYsAsSxm2/JUZL9PAzHTEwMDY0NCBjb21tdW5pdHktY29sZDYxNy1pbnRlZ3JhdGlvbi5qc29uAMppOjWAg20Zgf2QaKKmVoU/ZLOOMTAwNjQ0IGNvbW11bml0eS1jb2xkNjE3LXJldmlldy5tZADKHn1Plx24RBKbXBu9NDc6ccPmczEwMDY0NCBjb21tdW5pdHktZWZmaWNpZW50MTAwLXJldmlldy5tZABBQCovXXa9Sa+8AyNskRimL9o7SzEwMDY0NCBjb21tdW5pdHktZWZmaWNpZW50MTAwMC1yZXZpZXcubWQA/JcESHzPX78EcpUBF3QcIZ/pgVExMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDExMDAtcmV2aWV3Lm1kACM4P+3G+5LJ/T1PjcX2YOR4H43jMTAwNjQ0IGNvbW11bml0eS1lZmZpY2llbnQxMjAwLXJldmlldy5tZACwC47CG9id1c2kyiCP5tB1l4CEuzEwMDY0NCBjb21tdW5pdHktZWZmaWNpZW50MTMwMC1yZXZpZXcubWQAHu+SyH9gsEjffIV4xJWv6xjUKOoxMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDE0MDAtcmV2aWV3Lm1kAGD+frg8RS8LzfQW3l/OTHtzT3IiMTAwNjQ0IGNvbW11bml0eS1lZmZpY2llbnQxNTAwLXJldmlldy5tZACDW3iNBiuq55xCZKjDGdOgX0ygHzEwMDY0NCBjb21tdW5pdHktZWZmaWNpZW50MTYwMC1yZXZpZXcubWQArJy9szecFRRbff0aa4wPckrod8ExMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDE3MDAtcmV2aWV3Lm1kAE/WWh57+dJhyJixmIbCAk6iLhsbMTAwNjQ0IGNvbW11bml0eS1lZmZpY2llbnQxODAwLXJldmlldy5tZAC8ej0W/a8bzqXIYGcU8bKBp5yXgzEwMDY0NCBjb21tdW5pdHktZWZmaWNpZW50MTkwMC1yZXZpZXcubWQA1xWTtpQooDgkkCwzIoMVPfghbM0xMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDIwMC1yZXZpZXcubWQAQSfFT/SCNkweIgNKciBjQq56V68xMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDMwMC1yZXZpZXcubWQAP04xZzxGo8V9N4DcjazlQlEcyTAxMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDQwMC1yZXZpZXcubWQAs599A5ZDf2aToflAS3Pu9hCmq/sxMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDUwMC1yZXZpZXcubWQAOi+h4NDQBdz+moRYYXhEgC/OxP4xMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDYwMC1yZXZpZXcubWQA78wZq/3ez+m4WoP6zRdB976wmB8xMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDcwMC1yZXZpZXcubWQA66xZl6LwARnwZNWJEILrHqMuIhExMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDgwMC1yZXZpZXcubWQA1yUCpZyo3Pjbt+Hs/+ewhg2MgxAxMDA2NDQgY29tbXVuaXR5LWVmZmljaWVudDkwMC1yZXZpZXcubWQAy1TVTaiuJkOzLPc4M4PzDKZwfloxMDA2NDQgY29tbXVuaXR5LWZhbWlseTUzMy1pbnRlZ3JhdGlvbi5qc29uAI56xKNOSc7Ku5aTfcybmL2fyp1FMTAwNjQ0IGNvbW11bml0eS1mYW1pbHk1MzMtcmV2aWV3Lm1kAOohKGH6xPLn1PeKkFicwDpMyXIMMTAwNjQ0IGNvbW11bml0eS1mYW1pbHk1ODgtaW50ZWdyYXRpb24uanNvbgAg/xBFiYOO5SWorC5tQPgY8BtKATEwMDY0NCBjb21tdW5pdHktZmFtaWx5NTg4LXJldmlldy5tZAAMbtgDoq5D/S/qCovLmbbiH037/TEwMDY0NCBjb21tdW5pdHktZmluYWwtYXVkaXQubWQALeREKp6AW2qJ1CskN/3JLC/UzmsxMDA2NDQgY29tbXVuaXR5LWZvbGxvd3VwLWFyaXRobWV0aWMuanNvbgBVkZ9cvvlUndi8ZW7eIwp69g1E2DEwMDY0NCBjb21tdW5pdHktZm9sbG93dXAtaW50ZWdyYXRpb24ubWQAkQg1Gf5wU9eiCfW3lUgEZDzp3dUxMDA2NDQgY29tbXVuaXR5LWZvbGxvd3VwLXJldmlldy5tZACASKE4OeLRSBrDmtkfHv8On4cwyzEwMDY0NCBjb21tdW5pdHktZm9sbG93dXAtdmFsaWRhdGlvbi5qc29uAIXO924QUi+NjVyhSb74O6pWskBlMTAwNjQ0IGNvbW11bml0eS1mb3JtYWwtMjAyNjEwMTItaW50ZWdyYXRpb24uanNvbgDTkvorOak3IVlz1dGBznVwJn1SATEwMDY0NCBjb21tdW5pdHktZm9ybWFsLTIwMjYxMDEyLXJldmlldy5tZACj9Ktbb/Sa/zqXO3NL72RHVLAWcDEwMDY0NCBjb21tdW5pdHktZnJvbnRpZXI3NDEtaW50ZWdyYXRpb24uanNvbgCunUK4rAjlVAdhLG41BYhadi4HjzEwMDY0NCBjb21tdW5pdHktZnJvbnRpZXI3NDEtcmV2aWV3Lm1kAB5fi0fxobRidi4aRc0b1Wcgw8haMTAwNjQ0IGNvbW11bml0eS1mcm9udGllcjc5OS1pbnRlZ3JhdGlvbi5qc29uACpumsAGbgpa5LMqH3FOkUQqSI8kMTAwNjQ0IGNvbW11bml0eS1mcm9udGllcjc5OS1yZXZpZXcubWQAeizQpkGZ4Kr5NFE3esvtPox65rcxMDA2NDQgY29tbXVuaXR5LWZyb250aWVyODkwLWludGVncmF0aW9uLmpzb24AaqEVrc5Jix63gxrtiGgQHJywaPwxMDA2NDQgY29tbXVuaXR5LWZyb250aWVyODkwLXJldmlldy5tZABrZUYXJLqZo2MzyzqPRDz19kjKZzEwMDY0NCBjb21tdW5pdHktaGlzdG9yaWNhbC1maXZlLXJldmlldy5tZABZTqqGNLN6U8i2Wqo/2zLw1OzlejEwMDY0NCBjb21tdW5pdHktaHlwZXJwbGFuZTU5OS1pbnRlZ3JhdGlvbi5qc29uANg4O6jSC6EeP+X+nv198cKACr7mMTAwNjQ0IGNvbW11bml0eS1oeXBlcnBsYW5lNTk5LXJldmlldy5tZADMJZMqk6oWxX99AlVBS6/hbrcapTEwMDY0NCBjb21tdW5pdHktaW50ZWdyYXRpb24tdmFsaWRhdGlvbi5qc29uAED9Vod7EvXuqzeEMfitGHbsq3QNMTAwNjQ0IGNvbW11bml0eS1pbnRlZ3JhdGlvbi5tZAA/jLy877SWhSb4SbUkQYrsnwQwrDEwMDY0NCBjb21tdW5pdHktam9pbnQ0NDcwLWNvbnRyaWJ1dG9ycy5tZAB4W91cYRHVFwAyjRvfG84fGe+6FDEwMDY0NCBjb21tdW5pdHktazQ5Mi1pbnRlZ3JhdGlvbi5qc29uAFo8GLVKQzqtldccvFUiTiEghZONMTAwNjQ0IGNvbW11bml0eS1rNDkyLXJldmlldy5tZAAR780Hriudk9NVxq2vdz3KcNvOkTEwMDY0NCBjb21tdW5pdHktbmF0aXZlNDYxMC1jb250cmlidXRvcnMubWQAl36rUIwYPv1fclYX4w7XzNGaH/IxMDA2NDQgY29tbXVuaXR5LXBhaXItYXJpdGhtZXRpYy5qc29uANuIuOXgadfwRR7r2c40Z6fl0AxvMTAwNjQ0IGNvbW11bml0eS1waWxvdDIwLXJldmlldy5tZADBE/x2uh777nHnsOAUdl2Q9tzsSzEwMDY0NCBjb21tdW5pdHktcHIyMTAtaW50ZWdyYXRpb24uanNvbgDfFf1MU/eSiBdEA6BpV0mXVwzk2DEwMDY0NCBjb21tdW5pdHktcHIyMTAtcmV2aWV3Lm1kAOzWs7ObGw6I/CVdH69cjB1dT+jFMTAwNjQ0IGNvbW11bml0eS1wcjI3OS1hbm5vdW5jZW1lbnQubWQA+R5hgkpEDebIBAj2yzT41diQ+jkxMDA2NDQgY29tbXVuaXR5LXByMjc5LWludGVncmF0aW9uLmpzb24A7Nbs2Alkq09xXBnRgO3DGW9hZeIxMDA2NDQgY29tbXVuaXR5LXByMjc5LXJldmlldy5tZAC+wTO5RFVtn95dKvlwG+fcm9SKGzEwMDY0NCBjb21tdW5pdHktcHI1MzEtaW50ZWdyYXRpb24uanNvbgB6TT225N5F7EeET8rnFP7iyRRuwjEwMDY0NCBjb21tdW5pdHktcHI1MzEtcmV2aWV3Lm1kAI/HDopCyk37eaxCZaudq4Joqxf3MTAwNjQ0IGNvbW11bml0eS1wcm9kdWN0aXZlNDM1OS1jb250cmlidXRvcnMubWQAd0OWQjSafXTkCU/v097eMaJlY+UxMDA2NDQgY29tbXVuaXR5LXByb2R1Y3RpdmU0MzU5LXR3aXR0ZXIubWQAzO8xJeNlDT0k6NDXep5XXBT9WdExMDA2NDQgY29tbXVuaXR5LXJlY29uY2lsaWF0aW9uLWZvdXJ0aDEwMC1yZXZpZXcubWQAW71loiXxahvFIY/lYI4viuPKHwkxMDA2NDQgY29tbXVuaXR5LXJlY29uY2lsaWF0aW9uLW5leHQxMDAtcmV2aWV3Lm1kAGI9T6xcQ8oQ8KikvTtuV+QpzAy0MTAwNjQ0IGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi10aGlyZDEwMC1yZXZpZXcubWQA7mZIqH55CpQBL+wiE/OQdjDHHOkxMDA2NDQgY29tbXVuaXR5LXJlY29uY2lsaWF0aW9uMTAwLXJldmlldy5tZAA77G/AgN7eo3OG/5nHIcfoMtcNZjEwMDY0NCBjb21tdW5pdHktcmVjb25jaWxpYXRpb245Mi1yZXZpZXcubWQA9Y5m5pRVwmm03dQGMyFHKG0+EeoxMDA2NDQgY29tbXVuaXR5LXJvdW5kMi1hcml0aG1ldGljLmpzb24AY3qgGZ8WfMbIMZz8cydbCAGnQMkxMDA2NDQgY29tbXVuaXR5LXJvdW5kMi1yZXZpZXcubWQAIvQBVFWnWn9jTklhXuOPxOFOeJUxMDA2NDQgY29tbXVuaXR5LXJvdW5kMi10d2l0dGVyLm1kAI7Hf9VDcYq5qqyZxTJhQBEcPjhuMTAwNjQ0IGNvbW11bml0eS1yb3VuZDItdmFsaWRhdGlvbi5qc29uAE6sMMN98Ql8qMe8fjBFC0QuhlBRMTAwNjQ0IGNvbW11bml0eS1yb3VuZDMtbGVhbi1hdWRpdC5qc29uAPzz87Nl3lAHSKFHY6FVpe+froQtMTAwNjQ0IGNvbW11bml0eS1yb3VuZDMtcmV2aWV3Lm1kAAiIN4tR+MmrpeJVY9pymzniLjL/MTAwNjQ0IGNvbW11bml0eS1yb3VuZDMtdmFsaWRhdGlvbi5qc29uANyfI/sAMqZSN2rC4KvcCLOUlXAPMTAwNjQ0IGNvbW11bml0eS1yb3VuZDQtcmV2aWV3Lm1kAEPl/n8x84bMPJHMceurj1fpNzIyMTAwNjQ0IGNvbW11bml0eS1yb3VuZDQtdmFsaWRhdGlvbi5qc29uAGYy407eSvkRwoV6IhFeyWgA7niaMTAwNjQ0IGNvbW11bml0eS1yb3VuZDUtcXVldWUuanNvbgCP5jtDB+z8V7YDA+nh57KWKpUIzTEwMDY0NCBjb21tdW5pdHktcm91bmQ1LXJldmlldy5tZAAA9v8dNiBpzZ4msPh+Qkm7nmm6YjEwMDY0NCBjb21tdW5pdHktcm91bmQ1LXZhbGlkYXRpb24uanNvbgBJyTIVefr5G5Gq+xkLcGOQLB7NbDEwMDY0NCBjb21tdW5pdHktcm91bmQ2LWludGVncmF0aW9uLXZhbGlkYXRpb24uanNvbgByUvUDHkP5GoMVEPKWcZOPqnOuFTEwMDY0NCBjb21tdW5pdHktcm91bmQ2LWludGVncmF0aW9uLm1kAECFapHWknTNbmhQLX6g6jsiCA7KMTAwNjQ0IGNvbW11bml0eS1yb3VuZDYtcmV2aWV3Lm1kALXdSOjfvrUx7h2lsTq5oDoAsWZfMTAwNjQ0IGNvbW11bml0eS1yb3VuZDYtdmFsaWRhdGlvbi5qc29uAL+Lt7RPZp8MfgiWrSRRplak/P4FMTAwNjQ0IGNvbW11bml0eS1yb3VuZDctbW9ybmluZy5tZAAoRs2Erzxj8XBQIMUfAot4IRZs/TEwMDY0NCBjb21tdW5pdHktcm91bmQ3LXJldmlldy5tZAAe1P0sAqg8HqlhJ3XDUDq3c2yA9jEwMDY0NCBjb21tdW5pdHktcm91bmQ3LXZhbGlkYXRpb24uanNvbgAjirgKEGtGi8YJZX5QM5hGIbq0xzEwMDY0NCBjb21tdW5pdHktcm91bmQ4LWludGVncmF0aW9uLmpzb24AN8esvbRG2r4OBPDGTfRC6g70U4wxMDA2NDQgY29tbXVuaXR5LXJvdW5kOC1yZXZpZXcubWQAKhd1vRhN+0pKQRNzn40J0RUA3HMxMDA2NDQgY29tbXVuaXR5LXRyYW5zZmVyLXJldmlldy5tZABxXkEVQ0AnEtm+aH/TyV/4y/TnbzEwMDY0NCBjb21wYWN0LWNvbnRyb2wtYXVkaXQubWQABew+YDGPDYE1Tx0lmv+iwbp4tmAxMDA2NDQgY29tcGFjdC1jb250cm9sLXJldmlldy5tZAD2GnRlq5co/6MUSREczxDr7f7HCTEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLXJldmlldy5tZAAnIdU5Tk1TP5adudwXYODbM5MBfzEwMDY0NCBjb21wbGV4LWNvbXByZXNzaW9uLm1kAFHdbhopYIQTJNRTC44/nMEpiekIMTAwNjQ0IGNvbXBsZXgtZGVjb2Rlci1zY29wZS1tYXAubWQAcnqOC9idpH5IQrAmSMk0ZvQv8n8xMDA2NDQgY29uc3RydWN0aW9uLXByb2ZpbGVzLmpzb24APZaDh1WTLKm9eFGxTzmGZ/u7U7AxMDA2NDQgY29udHJpYnV0aW9uLXJldmlldy5tZABtZTc3/riULgyq1Y5GxLvegSUM1DEwMDY0NCBjb250cmlidXRpb24tc25hcHNob3QuanNvbgALUWPHtP0DPTUDfOlgT5Dm3dZTnjEwMDY0NCBjb250cmlidXRvci1hbm5vdW5jZW1lbnRzLm1kAP3eHLc8NLQp4pZYWVPFBNXg5iosMTAwNjQ0IGNvbnRyaWJ1dG9yLXNvY2lhbC1zb3VyY2VzLmpzb24AbQ7fITN+Jp/GaEkcdTiFac4EMEExMDA2NDQgY29vcmRpbmF0aW9uLm1kAJbbWb4xgYGTnR4CtU67pia5l9eHMTAwNjQ0IGNvcmUtbGltaXRzLm1kAAW64FK1wq9YdmrlwkGhXg1OYozDMTAwNjQ0IGNyb3NzLXBvaW50LXNoYXJpbmcubWQALZf2qY6DYczO3qkr8JZtJH4VE3YxMDA2NDQgY3ViZS1jb3JlLWZhbWlseS5tZAD5WqGvUaBgJhtuK3LGXX7Ltz7/ejEwMDY0NCBjdXJyZW50LXByaW9yaXRpZXMubWQAtOzpemDcw6M7BNg+nxCT5gMmrEoxMDA2NDQgY3VycmVudC1zdGF0dXMubWQA/y5wCdWkLe7Mnsnvukc6wXDbaicxMDA2NDQgY3ljbGljLXRvcG9sb2d5LWF1ZGl0Lm1kACNEEPGSLrTgwUSDamR4F+98jojAMTAwNjQ0IGRpc2pvaW50LXRlbnNvci1jb21wcmVzc2lvbi5tZABcb49S955MVvR9XpzSbVVJ8Ctg/DEwMDY0NCBkeWFkaWMtY2VudHJhbC1mYWN0b3IubWQAAzU38B0/zthRX6yeLBC3BI01HfMxMDA2NDQgZWFybHktc2hhcmluZy1hbmQtY2VudGVycy5tZACUVmH5lUFVrPh92dbbykfRhQm73TEwMDY0NCBmYW5vLWNvbXBsZXRpb24tYXVkaXQubWQAgg8HDFWhV0tbcUdTFJUGJDTskVcxMDA2NDQgZmFuby1wZXJtdXRhdGlvbi1hdWRpdC5tZADIDMYeEKBqC1YR5OBwVvkyVQ5MUTEwMDY0NCBmaXZlLXNvdXJjZS1jb25uZWN0b3Itc2NvcGUtbWFwLmpzb24ADuub0EyOzspOLixJ7wmwxh5NuxYxMDA2NDQgZml2ZS1zb3VyY2UtY29ubmVjdG9yLXNjb3BlLW1hcC5tZADEtWJQ4161LweYf36Wx9uhj6x10TEwMDY0NCBmcm9udGllci1yZXBsYXktY292ZXJhZ2UubWQAx8gvZk6igZlR143gGZ6VbQjYSygxMDA2NDQgZnJvbnRpZXI3NDEtY29uY3VycmVudC1yZXBsYXkubWQAqLHhCk1DbR1XBqFrWWYRhcULcmgxMDA2NDQgZnVzZWQtYmxvY2stYXVkaXQubWQApgIMJyg1oA1EGqcRstxWZALeqrAxMDA2NDQgZ2F0aGVyLXNjaGVkdWxlLWF1ZGl0Lm1kAAkq8nKMhDgMUtzNydXteO//CUijMTAwNjQ0IGdlbmVyYWwtbmV0d29yay1ndWFyZC5tZAA656WDMINVU11PMttBKvTXUBkCNDEwMDY0NCBnaXQtYmxvYi1kZXNjZW5kYW50LW93bmVyc2hpcC5tZAAgYy92DZLL+NVhnAxl2FZqcpCYrjEwMDY0NCBnaXQtYmxvYi1yZXNwb25zZS1kZWFkbGluZXMubWQA4G0rxNdGKUltOI1xRkFWM5S2mJkxMDA2NDQgZ2l0LXJlcG9zaXRvcnktcm9vdC1iaW5kaW5nLm1kADYL6250GzXFyphRzNvGYpoJkZRaMTAwNjQ0IGluY2lkZW5jZS1uZXR3b3JrLm1kAOjTRwTMUaF6jVHIc6ZGQD9nFCojMTAwNjQ0IGlucGxhY2Utc2lkZS5tZACgu1fKzSfXwpIfYGD1m0KusTVTETEwMDY0NCBpc29sYXRlZC10ZXN0LWNhbmNlbGxhdGlvbi5tZABXXEut1/LJDGDMlANK2L4Tg7WENDEwMDY0NCBpc29sYXRlZC10ZXN0LWNvbXBsZXRpb24ubWQAcNMf77wa90LtNydgjUGg/LplMgMxMDA2NDQgaXNvbGF0ZWQtdGVzdC1leGl0LWNsZWFudXAubWQAB1wij+POCtkEjyJeTeEHM9FUFWIxMDA2NDQgaXNvbGF0ZWQtdGVzdC1wb3NpeC1waXBlcy5tZAB2y09n4lTxL47y+NLysLaEHUcEnjEwMDY0NCBpc29sYXRlZC10ZXN0LXdpbmRvd3MtZXhpdC5tZACQx3P48hNdGEMA+L71zCBf29or4DEwMDY0NCBpc29sYXRlZC10ZXN0LXdvcmtlci13aWR0aC0yMDI2LTEwLTE3Lm1kAEWg4FTUZBiEVp2bDrdKOfhq+7PNMTAwNjQ0IGlzb2xhdGVkLXdvcmtlci1jYXB0dXJlLWZpbmFsaXphdGlvbi5tZABJAlcwpB+exn5fyhO955xa4/N1/DEwMDY0NCBpc29sYXRlZC13b3JrZXItZmFpbGZhc3QubWQAaxq/vcy1gq0DUxqbGEgTYCISfEkxMDA2NDQgam9pbnQtZnJhbWUtYXVkaXQubWQApbANFsPoHSNZgcVyAJM593yPH1sxMDA2NDQgam9pbnQtcmV0dXJuLWF1ZGl0Lm1kAJH6DAWTNqDgNWtMHGP+OAG2mCMzMTAwNjQ0IGxheWVyLXByZXBhcmF0aW9uLm1kAD1BbjYa0Ft+I/5Ztyg+lx6e87uwMTAwNjQ0IG1peGVkLXBvaW50LWF1ZGl0Lm1kADH3Erj3jO6KBbjLSQyMl5x5Jl7iMTAwNjQ0IG5ldHdvcmstc2NyZWVucy5tZAC8aYcPfPowdS7omHGQVdtqi2kD9zEwMDY0NCBuZXR3b3JrLXNlYXJjaC1sb2cubWQA2p/D3XAEV9w9O4iyizeomfdy4wYxMDA2NDQgbmV4dC1zdGVwcy5tZAB/u4Y5k1oZb5hdHEGHN5j8zCr/oDEwMDY0NCBvdmVybGFwLXRhc2stcmVmZXJlbmNlLW1hdGNoaW5nLm1kAMi/p3yL0XAJRrVG9z0dT86picnqMTAwNjQ0IG92ZXJuaWdodC0yNS1wcm9ncmVzcy5tZABPQGJi/FZKFsnjYGlqqAX7I2LknTEwMDY0NCBwMTA0LWhlbHBlci1saWZldGltZS1zY29wZS1tYXAubWQA2H1IUYraIp4gGRiVOX9xnqFHsCIxMDA2NDQgcDEwNC1saXZlLXN1cHBvcnQtbWFwLm1kAA0iZEm7L46URmBhgfAyTh/CIdJjMTAwNjQ0IHAxMDQtcHJlY2lzaW9uLWNvbnRyYWN0LW1hcC5tZABLf4clrvO2NlEhvPOJh5Yb3qa+5TEwMDY0NCBwMTA0LXNpZGUtY29ycmVjdGlvbi1zY29wZS1tYXAubWQALurM62svmcO9yB9+qBCsweC+6kgxMDA2NDQgcGFja2FnZS1leHBvcnQubWQAFn54tFiFbz8cOo8AB/rSZaRMgpgxMDA2NDQgcGFpci1yYW5rZWQtc2NyZWVuLmpzb24ANCCGHNclMHowsYrAsKz0flT1k3oxMDA2NDQgcGFpcmVkLW5ldHdvcmsubWQAXi+yhfaDrPIZMLcEVVAsZdinyA0xMDA2NDQgcGFpcmVkLXBsYW5lLWNvbnRyYWN0LW1hcC5tZAAPdyyPhhjvg39oTnaWAXXZvcZWzjEwMDY0NCBwYXJpdHktc2lkZS5tZACzbEBIILPpwPKL5kuk6iqOkkcEszEwMDY0NCBwYXJ0aWFsLXN3YXAtcmV0YWluZWQtdG90YWwtZml4Lm1kAEEA82GiSVDPyKnbrRDX9ajZ9X9+MTAwNjQ0IHBvc2l0aXZlLXNpZGUtY29yZS5tZACuFohOzT2DZKp9aMSHVrCHLzBgDTEwMDY0NCBwb3NpeC1zaWd0ZXJtLWNsZWFudXAubWQAp3tqVxbne+9kxMe+CxBFvbehZIUxMDA2NDQgcHItYmF0Y2gtcmV2aWV3LXBvbGljeS5tZABDp/GORPokPC41uSaJRlEortAuIzEwMDY0NCBwci1pbnRha2UtY2hlY2twb2ludC5qc29uAE/3XSNRb8LOVFCxBFn1B2pYSb//MTAwNjQ0IHByLWludGFrZS1kZWNpc2lvbnMuanNvbgCHo1sPvUKdrfrIbkQK3A1eP3CvrzQwMDAwIHByLWludGFrZS1ldmlkZW5jZQAC/butKT5nSz4jAO6Js37U3GI/bzEwMDY0NCBwci1pbnRha2Utc3RhdGUuanNvbgA+2r4YtktRovH6l2a87l6knaxicDEwMDY0NCBwci1pbnRha2UubWQA5BLU5Jq+0WWyjF3L5EeuA39RwAMxMDA2NDQgcHItbGVkZ2VyLmpzb24A4i7GJXLZDKod7EzjkyEExJVtufMxMDA2NDQgcHItbGVkZ2VyLm1kAOnW+HXzqnJq5+JXADWCpVoOe0paMTAwNjQ0IHByLXF1ZXVlLTIwMjYxMDExLmpzb24APrdbwRN32apMUOyg0Sm0dXjxoBwxMDA2NDQgcHItcXVldWUtbmV4dC1hY3Rpb25zLm1kAOLHbj6LYBt9emD15HZG52XeVlYnMTAwNjQ0IHByLXJldmlldy1xdWV1ZS0yMDI2MTAxMi5qc29uAEAgRf+vBBtFNx8l5ntK1Lr2dzCaMTAwNjQ0IHByMTA0OC1jb3JyZWN0aW9uLW1hcC5qc29uADRJZWPOb418Uoxg52OW0WimAFxCMTAwNjQ0IHByMTA0OC1jb3JyZWN0aW9uLW1hcC5tZAACG7xuZW8ngcwUqf6Sh83BcqmvqDEwMDY0NCBwcjQxMDAtYXVkaXQtY292ZXJhZ2UtbWFwLm1kAIvPh4BCwV+fRWUmZJmQWLOMlEAwMTAwNjQ0IHByZS1jb21tdW5pdHktcmVzZWFyY2gtaGlzdG9yeS5tZABVo+54fjUS0bU9G3Oh3p5WiDgYOzEwMDY0NCBwcmUtY29tbXVuaXR5LXJlc2VhcmNoLXN0YXR1cy5tZACe3edJ1KXRuJGkN7aAMmVM4IVURTEwMDY0NCBwcmVzZXJ2ZWQtbG9jYWwtaGlzdG9yeS0yMDI2MTAwOS5qc29uAL5ryr7Ng+/31g92c3PmftBRFhgbMTAwNjQ0IHByZXNlcnZlZC1sb2NhbC1oaXN0b3J5LTIwMjYxMDA5Lm1kAF/aDRyO7v8zxqljp1EnSxsg4MyeMTAwNjQ0IHByZXNlcnZlZC1yZXNlYXJjaC1tYW5pZmVzdC5qc29uAJn+meiRZKfn8JZu9KoGHAHFQIEFMTAwNjQ0IHByZXNlcnZlZC1yZXNlYXJjaC12YWxpZGF0aW9uLmpzb24AHiOiFYAbzO5IiDvjCxJx9Uz00asxMDA2NDQgcHJlc2VydmVkLXJlc2VhcmNoLm1kAOSNrwBuZS3A05E7un3kxh49jSufMTAwNjQ0IHByaW1lLXN1YnNldC1saW1pdHMubWQAWGE1o8J1LmJbuv5CDRTNdigrWmAxMDA2NDQgcXExNi1jb250cm9sbGVyLXNjb3BlLW1hcC5tZAA4iuLoInf1OgMutVX/tT/zh/F8KTEwMDY0NCBxcTE2LW51bWVyaWNhbC1jb250cmFjdC1tYXAubWQApSzGsEQV32g9dvhyMNHQtKrSxf8xMDA2NDQgcXVhZHJhdGljLWFmZmluZS12ZWN0b3JzLm1kAHXiNEPwTcpPtuRpoXToVIH6nNLIMTAwNjQ0IHF1aWNrLTY3LXNjcmVlbi5tZADqcMT5LddF99uoqWTvPbGQoYcVpjEwMDY0NCByYW5rLXByb2R1Y3QtY29yZS5tZACbaDhkIz15tNnZgqSL3v0aG8h10DEwMDY0NCByZXBsYXktY29uc29sZS1wb3J0YWJpbGl0eS5tZADudBYJPMRc41uqBOEXWK5z5HSF8DEwMDY0NCByZXBsYXktaW5zcGVjdC1mYWxzZS1hY2NlcHRhbmNlLm1kAIL0AvApFXeWsfSvtgb9PPoB9XUvMTAwNjQ0IHJlcGxheS1wYXRoLWluZGV4LWJlbmNobWFyay5qc29uAPkzJgesmFK/2mPG/eVyuUFkzbD0MTAwNjQ0IHJlcGxheS1wYXRoLWluZGV4Lm1kAARqW34q97YOfOGMV0Z7qZgYj1ofMTAwNjQ0IHJlcGxheS1wbGFubmVyLWludmVudG9yeS5tZAAxMBM6PBPJfhLmQHuFsOIYJQ6tUjEwMDY0NCByZXNlYXJjaC1hcmNoaXZlLWludGFrZS5tZABaHnplZ7cPzwIY9dD+kSGcC9jGjDEwMDY0NCByZXNlYXJjaC1mYW1pbHktc3RhdHVzLm1kAHQ6Gvy8RscV0gNQN3l+L4GzLlilMTAwNjQ0IHJlc2VhcmNoLWdsb3NzYXJ5Lm1kAO2cx0zjCYNwAlVBamrr/rqUKIkAMTAwNjQ0IHJlc2VhcmNoLW5vdGVzLTIwMjYxMDExLmpzb24Az+pqasVLfDjdnQo1tgim3fp8qGoxMDA2NDQgcmVzZWFyY2gtbm90ZXMtMjAyNjEwMTEubWQALDd1yh0S0v+JB12IJ3xo83fKJQsxMDA2NDQgcmVzZWFyY2gtcGFja2FnZS1ndWlkZS5tZAC3PElUUamt+y6g80Dse53bffsAUjEwMDY0NCByZXNlYXJjaC1wcmlvcml0eS1sb2cubWQALkubBRBqhXvDYFW8hL2bG5RznEwxMDA2NDQgcmVzZWFyY2gtc2NhZmZvbGQtYmF0Y2hpbmcubWQAEq9yKw1puNBGdMoiZxXifGET/zAxMDA2NDQgcmVzdWx0LWhpc3RvcnkubWQAWPjzMU7jQC4ELRIsajRXD5vSzFIxMDA2NDQgc2NyaXB0LXJ1bm5lci1jYW5jZWxsYXRpb24ubWQAXztsDWhziSSTnMOeJGQq3pIh9eMxMDA2NDQgc2NyaXB0LXJ1bm5lci1leGl0LWNsZWFudXAubWQAcF7qF0JwxapwBRttyFIzEl0kxsQxMDA2NDQgc2VsZWN0ZWQtYmFzZWxpbmUubWQAeGVegG91wKctIsP2y1S+906H18UxMDA2NDQgc2VsZWN0ZWQtYml0LWNhbGxlci1zdG9yYWdlLW1hcC5tZACmKQUzQdmYVMwb8ebKmlHLv6nDFjEwMDY0NCBzZWxlY3RlZC1iaXQtcGh5c2lj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" + }, + "c211d4eb07730865bffd69a35a85a0642acc333d": { + "kind": "tree", + "bytes": 219618, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzALWAbDWMZij/xmJq7eL+KTUz9etuNDAwMDAgYTE4NTgtc3VjY2Vzc29yLWZyYW1lLWNsaW1icwCyCU3OzP9ZiH4ggM/oA2ZbgXkpzDQwMDAwIGEyLWU2LW5pbmUtbm9ybWFsLWZsb29yAFbZFMExnEYwotY2pRpOq4nmQIUwNDAwMDAgYTItZmFtaWx5LWItbG9jdXMAkQPIVTYOkRIM7NJocgGBHUvMvfE0MDAwMCBhMi1mYW1pbHktZGVjb2Rlci1mbG9vcnMA5XIkT0GOgasw8RnFyGpuobucQrg0MDAwMCBhMy1kNS1kZWNvZGVyLWZsb29yAFMgrw0/hFUn5yrdBAbMZafsGiheNDAwMDAgYTQtY29tbXV0YXRvci1mb3VyLXJvbGUtc2VlZC1kY2JmABy029eKEi/O7aJ4GoFaFz3HQoVyNDAwMDAgYTQtZGlydHktd29ya3NwYWNlLW1pbmltdW0AVkbvs3iivre54O4Azdbjgr8683I0MDAwMCBhNC1zZXZlbi1jYWxsLXJhZGljYWwtcmFuawA7bLDAl1wDRn4E3eA22RZJ+TsHbjQwMDAwIGE1LWFmZmluZS1hZGRyZXNzLW1pbmltdW0AX6EdvFrJUbLOYTyWH6Tdv9CKVsU0MDAwMCBhNS1jb25qdWdhdGUtNWN5Y2xlLXNlZWRkMzE2ZjgALek3S7lAAKVvrvfKnco0+2IUlC00MDAwMCBhNS1jb25qdWdhdGUtYW55LXJlZ2lzdGVycwCBn/vjTUcUySTiDibz3Gd966nwuzQwMDAwIGE1LWVpZ2h0LWJpdC1jYXJyaWVyAEnJminxDGhuAe4/uOo9LUP3K+uwNDAwMDAgYTctYTEtZGVjb2Rlci1mbG9vcgAfppI2PYoS4VjYr22hMdcXM7soRTQwMDAwIGE3LWExLW5vbmxpbmVhci1jb3B5LWZsb29yAH63doHjL7Y7V9ZMp/xhSeR/Bsg3NDAwMDAgYTctYTEtcHVuY3R1cmUtb3B0aW11bQBT7n+Sc4YCwPgtIF18aunJqEJFoTQwMDAwIGE4LW9uZS1wYWlyLWZyYW1lLWZsb29yALiTy/BiXrpe/tWl2P0JVDjaDOVPNDAwMDAgYTgtcDExMi1kZWNvZGVyLXNjcmVlbgBxo9FPGEIBdGVRR5ua2C319Drh2jQwMDAwIGE4LXAxMTItZmFuby1mcmFtZS1mbG9vcgDbmp+Du2bcyxfB+A0rkYzaV/2tATQwMDAwIGE4LXNpbXBsZXgtZGVjb2Rlci1mbG9vcgA86MNYi6cCb8nIsAGq8zLxNhiJJTQwMDAwIGFiZWxpYW4tY2F5bGV5LW1ldHJpYy1zY29wZQBJOnlqJegCQigOhdjGD+oK69YOhTQwMDAwIGFjdHVhbC1ib2R5LWZpdC1jdXRvZmYAb2vgRAYCRXfakP4+xi/uKy2sGN80MDAwMCBhY3R1YWwtY2VudHJlMC1zb3VyY2UtYXVkaXQAq59jcycU5QU9gOPz4XiygYzgzaA0MDAwMCBhY3R1YWwtcXVlcnktaW5mb3JtYXRpb24tYm91bmRzANGh1le+IvXJ9/Wo+MG/i5SgWU67NDAwMDAgYWRhcHRpdmUtY2FuY2VsbGF0aW9uLWF1ZGl0AI68ThkF3LEAvxYiSV8aFtVEO07zNDAwMDAgYWRhcHRpdmUtY2hyb25vbG9naWNhbC1iYXRjaGluZwAuUpbObB4P/DJDjyC1bFcIZ+cDFjQwMDAwIGFkYXB0aXZlLWdhdGUtZXhpc3RlbmNlACxf1PHV1E6rwcB8zsXSMTerOUDLNDAwMDAgYWRhcHRpdmUtZ3JpZC1pbmplY3Rpdml0eS1hdWRpdAC91TP0uhrdPcSR+knaeHkQ5u0wLzQwMDAwIGFkYXB0aXZlLWtlcm5lbC1kZW1vdGlvbgDkzX+sakDsBp0+YXdbTk7Wkns3HzQwMDAwIGFkYXB0aXZlLXRhaWwtZW50cm9weQA3kFqZvAbagODPpSIpPSYpGwmURDQwMDAwIGFkYXB0aXZlLXdpdG5lc3MtcmV0dW5lAIYFBomfSkOy/a7j6JFmcn2t4YAbNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3Rvci12YWxpZGF0aW9uADguSsvLIiKZTZXVqsMlbnSU9nfmNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3RvcgAoyIqVTDbOGDbCIAOpEocmLevoHTQwMDAwIGFkZHJlc3Mtb3BlcmF0b3ItY29tcG9zaXRpb24AyoCWjavDPdVg9fSEiBivMKz0bNc0MDAwMCBhZG1pc3Npb24tY29uc3RhbnQtZGVyaXZhdGlvbgC2NEhY2qnXB9E/YBtStOuwhDxgYjQwMDAwIGFmZmluZS1ib3gtaW52ZXJzZS1wcmVjaXNpb24AwtkhQinHRcNyF/Uk5JxmQUFpIgg0MDAwMCBhZmZpbmUtY2VudHJlLWFjY2VzcwCNJazWReZPXvTyhvcvF17Jr4roUTQwMDAwIGFmZmluZS1sYXR0aWNlLWludmVyc2UtcHJlY2lzaW9uAEGGDqK+/SuMrOG+akHD0HrnzYwZNDAwMDAgYWZmaW5lLW1peGVkLWZvdXItdGFyZ2V0cy1zZWVkNTYzOACdfSIwOA+KbV5SbwHFetdc+SUQvTQwMDAwIGFnZW50LTA3LXZlcmlmZW5nLXNlZWQ4OACNhWSWG4g7b86j3+sA1WqYZ69paTQwMDAwIGFnZ3JlZ2F0ZS1wYWRkaW5nLXRhcGVzAIoCrrKAlTQWCOojZnQtgnkBR9jHNDAwMDAgYWxsLWZpZWxkLWlkZW50aXR5LXNjaHVyAOFD69+v5oqYVQDJS6myjrMmw+7yNDAwMDAgYWxsLWZpZWxkLXMzLXNob3J0ZXN0LXJpZ2lkaXR5AAviu9Lbul9+8Uj5Zm7TuLE/sUdYNDAwMDAgYWx0ZXJuYXRpbmctc2hlYXItZXhjaGFuZ2UAXHTHfD1dFTRNbH37hns6xM2uJXo0MDAwMCBhbHRlcm5hdGlvbi1sZW1tYQBhVClbVZS8p39U+bSjHNo+Hb7R3DQwMDAwIGFudGljaXBhdG9yeS1kaXJ0eS1ib3Jyb3dpbmcAIPIukJH/3xm72Pe4ic1NOqMeINs0MDAwMCBhbnRpY2lwYXRvcnktbGVuZGVyLWNsZWFudXAAYz3j8krJrTTC5u4whrkvwzDKT3E0MDAwMCBhbnRpZmFuby1zdWJzcGFjZS1hdWRpdABsdMicdF0LLu7FuGW5PsUIIuCv0zQwMDAwIGFudGlmYW5vLXRpZWQtbWluLWNvc3QxMi1zZWVkMjJhZTFmOTUANu144SGuTx+iziDUcepm66PYofc0MDAwMCBhbnRpcG9kYWwtc3Bpbm9yLWxwLW9wdGltdW0APHYbrDU6gFwlU//c/1ty2NqQUbw0MDAwMCBhcGhhc2UtcmVzaWR1ZS1jb21wb3NpdGlvbgATBo2ehtaQmukQl9QxHtSF2hAOzjQwMDAwIGFyYml0cmFyeS1waXZvdC1zY2h1ci1taW5pbXVtAPwR/JMcQNCXFDhW3kXgUsPJ9olvNDAwMDAgYXJjaGl0ZWN0dXJlLW5pbmUAeMxu7YdI4fTqnCI5FZXauDtVHBE0MDAwMCBhcmNoaXZlLTI5NzktcmVjZWlwdABoRovpa1+sZx82r5X9cikaJPzP7zQwMDAwIGFyY2hpdmUtMjk4MC0yOTgxLXJlY2VpcHQADEKXHgVcwFRiSLgWC31hW3GGkSk0MDAwMCBhc3RyYS11bHRyYS1ob3N0aW5nLTIwMjYxMDEzAKnJHENyaQmlvQrxlmlY8NqQxb4cNDAwMDAgYXN5bW1ldHJpYy1oeXBlcmN1YmUtZGVjb2RlcgD2a7WMQ/6B8V/4I/DRuCS1MFi6+zQwMDAwIGFzeW5jLWludmVudG9yeS1yZWNvbmNpbGlhdGlvbgAOK9ZbHK5n3D5RQ3X4Bo+XjtcYhzQwMDAwIGF0bGFzLWZyb250aWVyLWFwcGxpY2F0aW9ucwAio6ZHqU/mmFcgBFztYzx7wUJ4LjQwMDAwIGF0b21pYy10cmlvLWNvbm5lY3RvcgCr2b/ZZjhUZPcbsj0HhmfxVsKDUTQwMDAwIGF1ZGl0LWFsbGNvbGQtZmFzdC1jb3B5ANg40Jdu4Ze5lo84J1QtgNNKb8iONDAwMDAgYXVkaXQtZnJvbnRpZXI4OTAtZW5kcG9pbnQtc2VlZDczAEzG1gyrAub/jP22jPwaRzKhehjUNDAwMDAgYXVkaXQtaGVscGVyLWVuZHBvaW50LWluZGljZXMAAwbXRnwh+6iLg4n2i+hPsTNYLFQ0MDAwMCBhdWRpdC1rYXBwYS1mbG9vci1zZWVkNjcAQLSCn+w6t0HvKVjTdGxTqpNvG0c0MDAwMCBhdWRpdC1sb2NhbC1jdXQtY2VudHJlLWd1YXJkAH4zDWpjbEj1ISJMG67ElFfsaSX9NDAwMDAgYXV4aWxpYXJ5LXNwYW4tc2l4LWN5Y2xpYy1saW5lAK2g2KtJFs4vjBx8vuFLsv5ItpTpNDAwMDAgYXV4aWxpYXJ5LXNwYW4tc2l4LWZsYWcAv0HlBGsfvWFaeUDnN1Jrf4bZTCE0MDAwMCBhdmVyYWdlZC1jeWNsb3RvbWljLWhlaWdodC12YWxpZGF0aW9uAB3NfmFm/W4a4+/wdlpepW4xuEtWNDAwMDAgYXZlcmFnZWQtY3ljbG90b21pYy1oZWlnaHQAWEsWK4bxqTvA5stom3JJ4kmoFVY0MDAwMCBheGlzLXB1bmN0dXJlZC1yb290LWNvZGUtZmxvb3IA08hIxfIy0bAc6eWQsFZO23L+Vjo0MDAwMCBiMi1tYXMtZWRnZS1mb3JtLXNlZWQzNjA5MjQ5ZACdPTV5aHYiNXnTRkjorz+RO0pm3TQwMDAwIGIyLXRyaXBhcnRpdGUtZWRnZS1jb3VudGVyZXhhbXBsZQAyRimHDulym8AI9yWbhY90E0RVUjQwMDAwIGJhbGFuY2VkLWN5Y2xpYy1saWZ0ABeeOZYS0CQ6k3k3PX8UoD1MuWzENDAwMDAgYmFsYW5jZWQtZGVzY3JpcHRvci10cmF2ZWwA+bhR85l13rk3wmO2HhEa/YfKMMU0MDAwMCBiYWxhbmNlZC1mYW5vLXBlcmZvcm1hbmNlAH4Taphf3ZT7sMuwDb28m6w5524ONDAwMDAgYmFsYW5jZWQtZ2F1c3NpYW4tZW52ZWxvcGUAMbyogo0SWL4dYH4LmlJQVsjWeP00MDAwMCBiYWxhbmNlZC1udWxsaXR5LWJhbmtzLTE2MwCeiiKYdwxuZ9ftN7b0Ghkgy9H41DQwMDAwIGJhc2lzLWdhcC1taW5pbXVtAOiWPC/6bs7t9tIhqRKB+HflbJReNDAwMDAgYmF0Y2gtd2lkdGgtcmVjb3VudACYPN2+6NXWieC2+x5K5dZ87Bth1TQwMDAwIGJhdGNoZWQtbW9tZW50LXRocmVzaG9sZADet04Iy/sNTubX7pm/22G5CtMabTQwMDAwIGJhdGNoZWQtc3BhY2VkLWxpZnRpbmcAZiSnySUiLmcceiqsrUEgQsnJYLI0MDAwMCBiYy1kZW5zZS1yb290LWNvZGUtZmxvb3IAz7x2anFBhN8kROYg8PwDxCzijjs0MDAwMCBiaWRpcmVjdGlvbmFsLWNvbm5lY3RvcgBxsODgXcu+N6RwiqC5q5BOmPstYDQwMDAwIGJpZGlyZWN0aW9uYWwtZml2ZS1zb3VyY2UtY29ubmVjdG9yAHnTEV7TyUOi7Sxb2lYhs5IZdo/INDAwMDAgYmlkaXJlY3Rpb25hbC1mb3VyLXNoZWFyLXJpZ2lkaXR5AI0eMmivtQGZx6swF5mEM/rGYtaSNDAwMDAgYmlkaXJlY3Rpb25hbC1yb290LW9ic3RydWN0aW9uLXNlZWQ1MABmSkRHkiqm/0YwcT3w50L6qbAGuTQwMDAwIGJpZnJhbWUtZGVjb2Rlci1sYWRkZXIAA6+lkVgdCLXvXNKFFISw2pNNMZo0MDAwMCBiaW5hcnktYWRkLWNvc3QtYXVkaXQA9TNd/ij4fW3YUk0olVR6JUfRnVY0MDAwMCBiaW5hcnktYWZmaW5lLXJlZ2lzdGVyLWJvdW5kAF5uNjSELFC8ZZD4WnBsHFUXPr0gNDAwMDAgYmluYXJ5LWNoYXJhY3Rlci1yZW1haW5kZXItZ2FwAOaIOKCTKqZZC3w19/fasU6j8TfXNDAwMDAgYmluYXJ5LWNvbm5lY3Rvci13YWxrAKXVyKwfk7pnry6HI8Pvcl9k1m0BNDAwMDAgYmluYXJ5LWRpZ2l0LWNvc3QtYXVkaXQAY3PdiEE3q9FK1JH2VE8/n3O8NUI0MDAwMCBiaW5hcnktZWxlbWVudGFyeS1pbnRlcmNoYW5nZQByulBeAzpmwZPTomxx5Wdigl9ZwjQwMDAwIGJpbmFyeS1nbDItd2lkdGgtb25lLW1pbmltYQA2AiqGMj65xR8ub+JvccrKL3urGjQwMDAwIGJpbmFyeS1wcm9qZWN0b3Itc2hhcnBuZXNzANcT9gStduEcaeJmjsQ5P7H1gLotNDAwMDAgYmluYXJ5LXJlc2lkdWFsLWV4aGF1c3RpdmUAyw4XvcctooQBqsF0s6Ti1/TdNoE0MDAwMCBiaW5hcnktc2NodXItbWluaW1hbC1kaW1lbnNpb24AE8Ne49XuEGj7ej2Uz2/sSppT4340MDAwMCBiaW5hcnktc3BlY3RhdG9yLWNvbXBsZXRpb24A8HjUAypY4tWPEUNrJNmGVENRrS00MDAwMCBiaW5hcnktc3RyZWFtLWZhaXRoZnVsbmVzcwCus701KcAuPEu3C2jyxGe+AEzc9jQwMDAwIGJpbmFyeS10aHJlc2hvbGQtZml2ZS1oZWFkZXJzACxKC6rToc2/1x2WNivjl0+d5FkfNDAwMDAgYmlwYXJ0aXRlLXF1ZXJ5LWNhcGFjaXR5AEDEmKoryCms9/htwUjNpgu+CU/7NDAwMDAgYml0LWFkZHJlc3MtdHdpc3QtcmVnaXN0ZXItZmxvb3IABKzdzhbDFLwsnWACqQ5AuQWjU/40MDAwMCBiaXQtYWRkcmVzcy10d2lzdC1zZWNvbmQtb3JkZXIAizrHRNFVXVNhDKeXD5BkwQHkkfw0MDAwMCBiaXQtYWZmaW5lLWdlbmVyYXRvci1zaGFyaW5nAO5l7mx/CxGvsFOFF7MFg703C5HiNDAwMDAgYml0LWFmZmluZS1taXhlZC10YXJnZXQtdHJpcGxlLXNlZWQ4MThkYmYAn49d4jFV1OOC93QqMD4Naa5JJSQ0MDAwMCBiaXQtYm91bmRhcnktcGVyc2lzdGVuY2UA4L6ISXYymUCLGzh7suyqZegqtWA0MDAwMCBiaXQtYzQtcm9vdC1saWZ0LXNlZWRjYTQ2YmMARVdFMpW3Mj8XtiaeCMEnoUhy7W00MDAwMCBiaXQtY2Fycmllci1vd25lci1hZG1pc3Npb24Ag1xBwE8ws15XARdLzI0g1pMQp+w0MDAwMCBiaXQtY2xlYW4tYW5jaWxsYS1yZWdpc3RlcnMAzURaoGEQ7N+IvVDkSjznoTLQAco0MDAwMCBiaXQtY2xlYW4tZXh0cmEtcmVnaXN0ZXIA6sYnpUPS0DpYoZnNP9mVeLKw1Pc0MDAwMCBiaXQtY2xlYW4td29ya3NwYWNlLWNvbXByZXNzaW9uAOt8wjujyiJoI4o+zRYUPvjEeF9xNDAwMDAgYml0LWNsZWFudXAtZnJhbWUtb2JzdHJ1Y3Rpb24As+cjvtEbvEmuXwSRR6gqlVqgF7Y0MDAwMCBiaXQtY29tcGFjdC1jYXJyaWVyLXJldGlyZW1lbnQAcdLJVVMRO1TZ6/zm/qFeWNCwwpw0MDAwMCBiaXQtY29tcGFjdC1wcm9kdWN0aXZlLWNvbnRyb2xsZXIAGXW1zAfMtN1snNpSkCua72dtj3U0MDAwMCBiaXQtY29tcGxldGVkLWJhY2tlbmQtYXBpAIb1kADN7ePirHFfmobVEutVKIDbNDAwMDAgYml0LWNvbXByZXNzaW9uLXByb3ZlbmFuY2UANni1lySQpJjMz+QdB+M7m4WP3GU0MDAwMCBiaXQtY29weS1saXZlLXN0YWJpbGl6ZXIAvZVmai2fvGOOcl2ac8JZYEpkbA00MDAwMCBiaXQtY29weS1wYXRoAGYPjjwQiPPTEKrd7NFzh+zGbr5qNDAwMDAgYml0LWNvcHktc3VwcG9ydC1hdWRpdABuZcwlrN973au5RLOkNfQI6jrKEDQwMDAwIGJpdC1jeWNsaWMtcm9vdC1iYXJyaWVyAG+eQQpmfaTClcTm1fEH6iBSTincNDAwMDAgYml0LWQxNi1jZW50cmFsLXBhaXItc2VlZDFmOGIAy8w+wNKOEdfiMr3nnmUcVGYj6sg0MDAwMCBiaXQtZGVsYXllZC1jYXJyaWVyLXJldGlyZW1lbnQA/46VpbvYss2dtYhC6F6qONRIJd00MDAwMCBiaXQtZGVsZXRpb24tbGFkZGVyAHKx7D+X+9vEqb6yX1ClBdudC/zTNDAwMDAgYml0LWRldGVybWluaXN0aWMtYmFkLWhlYWRlcnMAwgKaszjqwRSfcBljGKvKLCT8XsI0MDAwMCBiaXQtZGljeWNsaWMtZGlhZ29uYWwtc2VlZDYyMGNhAEqYsYJON2O0GaF1u7TcewW9QscGNDAwMDAgYml0LWRpaGVkcmFsLWNvbW11dGF0b3IAM+uI2JIb0NJLZWxGsd0liddk/xY0MDAwMCBiaXQtZGlydHktYXV4aWxpYXJ5LXJlZ2lzdGVycwDOXlq5I0+IjN2jz9/yCzk06rEOnDQwMDAwIGJpdC1keWFkaWMtdGVybmFyeS1jYXRhbHlzdAAQLmRbLe0xwZMMHqaijTwacj6QNzQwMDAwIGJpdC1lYXJseS1yZXRpcmVtZW50LWN1dAAILNZE+4dWJhE+53t0BNb5pYpi+zQwMDAwIGJpdC1lbGltLTE0NABwz6XM0oQXjCqoQvLCU82/CifRAjQwMDAwIGJpdC1lbmRwb2ludC1mcmFtZS10eXBlcwBOWug7YwCbOpe2Fp/Q/JZUiPWzrTQwMDAwIGJpdC1lbmRwb2ludC1sZXZlci1idWRnZXRzAIPZiJgKBkdCxwaCjITsvHd1IcHtNDAwMDAgYml0LWV4dGVuc2lvbi1vbmUtcmVsYXRpb24tc2VlZDE3ADRywNLbExRuAfYdjmvjzYy2NpnJNDAwMDAgYml0LWZhaXRoZnVsLWZpbml0ZS1hZGRyZXNzAH8RFsYM1ti3kovuYLtKE+75XYbYNDAwMDAgYml0LWZhbWlseS1wcm9qZWN0b3ItYWxnZWJyYS1zZWVkMTAAbpiIrlLqyQARJda1xTWeA/A2CiI0MDAwMCBiaXQtZmlmdGgtZnJhbWUtZGV0ZXJtaW5hbnQtb2JzdHJ1Y3Rpb24AXjsouQvj6jgKEjoIsrgRhF6tFF40MDAwMCBiaXQtZmlmdGgtcmF0aW9uYWwtZnJhbWUtc2l4LWNhbGwtc2VlZDBkOTg4OGE2AE421YOHjWQShg74sXcKimiDqLjHNDAwMDAgYml0LWZpbml0ZS1vcmRpbmFyeS1ib290c3RyYXAAD+eZ0dliOJ+81Z8DeSBzBcBqNxQ0MDAwMCBiaXQtZml2ZS1yYW5rNC10ZXJtaW5hbHMAelpY54Fg0aJWewSUKZOMTmDke3I0MDAwMCBiaXQtZml4ZWQtY29udHJvbGxlci1yZXBhaXJzAM+ELwACZe+3oPD9eMyBYokKifcrNDAwMDAgYml0LWZpeGVkLXBsYW5lLWV4cG9zdXJlALrJs6kLwkX96DIF7BOLbK4KQoJxNDAwMDAgYml0LWZvdXItcmVnaXN0ZXItcmF0aW9uYWwtZnJhbWUtZmxvb3Itc2VlZDM1NzNlMTJlAB8d/Ck54g48MmnkvKeDBU/eNYTkNDAwMDAgYml0LWZvdXItcm9sZS10d28tcGF0dGVybnMA9AzV4yvcNBdM912e2tZMJOC+BUc0MDAwMCBiaXQtZnJhbWUtY2xvc3VyZS1iYXNpcwA/qY58lUenP5/uBzznHQT4ZoowITQwMDAwIGJpdC1mcmVlLWNvbXBsZXgtc3VwcGxpZXIA7tgwDCNrDnc13Z7ZWwLuRbQOlbI0MDAwMCBiaXQtZnVsbC1ib3JlbC0yYWRpYy1mbG9vcgC7F44H9bWVQDR2BOLRVeQ2NUkB1TQwMDAwIGJpdC1nZW5lcmF0ZWQtbGF0dGljZS1wYXJpdHktY3V0cwBodyJgVrmCuVLxW8BVrT8w6fMjuzQwMDAwIGJpdC1nbDMtbWl4ZWQtdGFyZ2V0cy1sZW5ndGgxMADr9vBytN3wHe1FmFRZJp+4YkNMOjQwMDAwIGJpdC1nbDMtbWl4ZWQtdGFyZ2V0cy1zZWVkMTgAtHdASMWAas1oyP5CyLx72+5l1hg0MDAwMCBiaXQtaDgtcmVjZWl2ZXItY2Vuc3VzAF6WTSreGtGVTraeXQzSbMPg30rNNDAwMDAgYml0LWhlbHBlcjQ3MC1uYXRpdmUAJlH++tAtXKibB9iYXh45fFx8pfM0MDAwMCBiaXQtaGVscGVyNDcwLXdpbmRvdy1wbGFjZW1lbnQtc2VlZDE0ANQ1PcH6hqO58ff2KnbE3Ezx36CvNDAwMDAgYml0LWhvc3RlZC1kaWdlc3QtZmFzdHBhdGgAFuAQU43yUfxVDyJsL7yC8jWNBQY0MDAwMCBiaXQtaWRlbnRpY2FsLXRocmVlLXRhcmdldHMtZGlydHkAItExYC5dNQOV9Ih/gKASdDjyMwU0MDAwMCBiaXQtaW5wbGFjZS1yZXRpcmVtZW50LXNlZWQxMQCRoWO6UAkYcQIxydSs42XJl+BMaDQwMDAwIGJpdC1qMy1wcmVjaXNpb24tc2VlZDExAEB+sHqe56GxFSJEmTjMdxKMPR1xNDAwMDAgYml0LWpvaW50LWRpcnR5LXBhaXIACsetN4a0k+7Njuzdr1VLF6YqzKE0MDAwMCBiaXQta2VybmVsLWVudHJhbmNlLXNlZWQxOADaceyY1dHJQV/mSi1jDR97cew+xzQwMDAwIGJpdC1sZWRnZXItZnJhbWUtcmFua3Mtc2VlZGZlYjIA10P2AC4j2NjTDTr6+kPkfqtK+kk0MDAwMCBiaXQtbGl2ZS1jb3B5LW9wZXJhdG9yLWludGVydHdpbmVyAHvaaG+z8hC1TF1jP6nR1DFX1B3cNDAwMDAgYml0LWxvdy1jYXJyeS1sb3dlcmluZwBFGoWlQa8UBc6CX53Feewb+xXGPzQwMDAwIGJpdC1taXhlZC10YXJnZXQtcmVnaXN0ZXItY29tcHJlc3Npb24AbiY0lR8W4/AwI/OtRxsxKxlhyAI0MDAwMCBiaXQtbWl4ZWQtdHJhbnNwb3NpdGlvbi10cmlwbGUAcJ9/N51aqXmWQGENBz4L2A0HZR80MDAwMCBiaXQtbWl4ZWQtd2lkdGgtcHJvamVjdG9ycwBzjs5t88nHiBJJ7frUkVMpsOcMRDQwMDAwIGJpdC1vZGQtY2hhcmFjdGVyLXNjcmVlbgANbZagak1jHYXmeAIi8ZAEdINMJTQwMDAwIGJpdC1vZGQtZGVub21pbmF0b3ItcmVnaXN0ZXItZmxvb3Itc2VlZDE2Yzk0NgDtAqd4+RK5pR/eG5YTzzlIF9liuDQwMDAwIGJpdC1vbmUtcmVsYXRpb24tYW55LXJlZ2lzdGVycwAj/Dcb3fwhYk3bwI9XlGvZE0PzrTQwMDAwIGJpdC1vbmUtcmVsYXRpb24tc2VlZDA0AIsNQFijySfBlsdJLAkyBt+M99xuNDAwMDAgYml0LW9ydGhvZ29uYWwtcGFpci1kZWNvZGVycwAW2PO3R6aXsF2J5SaHKFIE528TAzQwMDAwIGJpdC1wMTExLXI0MzctZ2w0NjQtNDcwLTIwMjYxMDE4AGzck0Mz27QiMdc8B5ECKMSf+ZZRNDAwMDAgYml0LXBhaWQtb3duZXItYmluZGluZwARgnnAtSTTUprYtfKZ+JOHJEGOkjQwMDAwIGJpdC1wYWlyZWQtYm91bmRhcnktZ2F0ZQBCsXeXHQdItP+wCAO6EPzuqJufFzQwMDAwIGJpdC1wYWlyZWQtaGVscGVyLWJvdW5kYXJpZXMA+b8CKftDwF2xc0IG/+2FbCy9Cjw0MDAwMCBiaXQtcGFyaXR5LXVuaWZvcm0tdGFyZ2V0cwDKNtpcWz1mVUrLIR54zEhD00hEDDQwMDAwIGJpdC1wYXJ0aWFsLXdpZHRoNy1vcHRpbXVtAGz0mqRLDEP25RJnLtBEIAgsjBKiNDAwMDAgYml0LXBpdm90LXBvbGljeS1mbG9vcgC8QTek2yL5N9EVFYrLfGY6quYttTQwMDAwIGJpdC1waXZvdGVkLWZhbGxiYWNrAJVvSB51EojGsVWqQLD6hhvI8XvYNDAwMDAgYml0LXBsYW5lLWZvdXJzZXQtYm91bmQAyMs7CMo4BGhy1OQcKuoZNgfUhms0MDAwMCBiaXQtcHJlcGFyZWQtZ2VvbWV0cnktc2VlZDcAxjfLd11B1fE+A1cbP2o57qOv6U80MDAwMCBiaXQtcHJvZmlsZS1wYWlyLWF1ZGl0AA7UXNB72klwe08U2AA4NHiHQ00GNDAwMDAgYml0LXE4LXRocmVlLXJlZ2lzdGVyLXR3by1jYWxsLXNlZWQxODlhZDc0AMGE58v9Lk8Z0xUbaiyHAEAj7ezUNDAwMDAgYml0LXF1YXJ0ZXItdGVybmFyeS1jYXRhbHlzdADMv9sbZurjw45hIr2tXMTKTFdsXjQwMDAwIGJpdC1yNDM4LXNvdXJjZS1jb2RlAHYt1D1oYtGAbz9Jn4fwnxGg2fAoNDAwMDAgYml0LXI0MzgtdHJhbnNwb3J0LXJlaG9zdABCXz9wrAeWbv6UkucF44yhzYwiwzQwMDAwIGJpdC1yYXRpb25hbC1yYW5rLWN1dC1zY3JlZW4AwA/Vpdz1aviEsRMvU+lX2MQWosI0MDAwMCBiaXQtcmV0YWluZWQtdG90YWwtbWl4aW5nAFvyFcNln1QsHWPp8po2v0rEPmbzNDAwMDAgYml0LXJldGlyZW1lbnQtcHJvZmlsZS1yZWJ1aWxkALWr3ibsT+0Gknz4fMv6Geh05mnBNDAwMDAgYml0LXJldXNlLTE0NwCJJL1Kx1bHF2OdHinn/9csKq7JfDQwMDAwIGJpdC1yZXZpc2lvbjMtbGV2ZXJzLXNlZWQwMwCqdUGNcNxOSg2R+Wi1kM0h4f3QwDQwMDAwIGJpdC1yb2xlLXNoYXJpbmctYnVkZ2V0AB7LxceY4Tz8KAbF2+OkDbfWiQ4BNDAwMDAgYml0LXJvdy1hbGxvd2FuY2UA1/h3f5VgFOlrxpUCDGUoJAT+tjA0MDAwMCBiaXQtcm93LXBhZGRpbmctcGh5c2ljYWwAOdyJiBrFxTaNReaP/EsgIhFihK40MDAwMCBiaXQtcm93LXJvdXRlLWdlbmVyYXRvcgBXcpTCBrwZirS0GCjQgMYi9+f4czQwMDAwIGJpdC1zMy10d28tdGFyZ2V0LWNlbnN1cy1zZWVkMzY1MDEAKjWMRPZU66cjSqVtl7LSjaPuQ7Y0MDAwMCBiaXQtc2VsZWN0ZWQtY29weS1zZXBhcmF0aW9uALiq9c9ueBSauPiEr4ZT8fUf81WiNDAwMDAgYml0LXNlbWlkaXIyMS1vcmJpdC1zZWVkOGY4OQCfVEv2Kci9kc1v491q7+cBWBHmrzQwMDAwIGJpdC1zaGFyZWQtc291cmNlLWNvbXBlbnNhdGlvbgD0w2opU2RKGz/3whxAMz4RR8pLNTQwMDAwIGJpdC1zaGFyaW5nLWhvc3RpbmctZ2F0ZQADX+EyH5tFTpGdOMTAC0xCsgEeczQwMDAwIGJpdC1zb3VyY2Utc3Bhbi1zZWVkMDIAgQqbQi7j/SQjAtOVIvb/W662Lro0MDAwMCBiaXQtc291cmNlLXN1YnN0aXR1dGlvbi1zZWVkMTEATH6veoCfmF8YNpfJdy+DZj2YhL00MDAwMCBiaXQtc3BhbjQtYXV4aWxpYXJ5LXN0cnVjdHVyZQDcoODnHP32wdXZQwzqV2cOk+k8cDQwMDAwIGJpdC1zdGFnZS1taXhlZHdpZHRoLXBhY2tpbmcA+eQ9dxAqZTRJWlilO6hlEsB7VJ40MDAwMCBiaXQtc3RvY2stcmVjdXJyZW5jZS1hdWRpdABCqRla5UZc5JrO4pmdnKSRwLDuVzQwMDAwIGJpdC10ZXJuYXJ5LWNoYXJhY3Rlci1zZXBhcmF0aW9uAJtvtfH7ZsfFFAtupTN4dkWHulOmNDAwMDAgYml0LXRocmVlLWFjdGl2ZS1vbmUtcmV0dXJuZWQASu93zpup8vm26NwhT2a0qjwy62E0MDAwMCBiaXQtdGhyZWUtcmVnaXN0ZXItbG93ZXItYm91bmQAUzjX8YsffVtuQ/uuO0csOFbOXM40MDAwMCBiaXQtdHdpc3RlZC1mZWVkYmFjay1jb250YW1pbmF0aW9uLWxlbW1hAE8WqmUFWw0QBgpY00gBxyof8Dp7NDAwMDAgYml0LXR3aXN0ZWQtZmVlZGJhY2stZm91ci1yZWdpc3RlcnMAgoLjDY5Xb7lQmdn4OUC2SFmLAIE0MDAwMCBiaXQtdHdvLWNvcHktYmFuay1ib3VuZGFyeQC69gCIA0uo8G5IMH04KS6OIpDSYjQwMDAwIGJpdC10d28tY29weS1waHlzaWNhbABOh9BkLWQcT2Nw1kI8XBTZc1fmcjQwMDAwIGJpdC10d28tY29weS1zY2F0dGVyALot223Smu72xhCAFXyyslxwWS3CNDAwMDAgYml0LXdob2xlLXBhY2tldC1zdGFnaW5nAMc/LwMWsZrK3d51d/JCIW7DMxdkNDAwMDAgYml0LXdpZHRoLXNldmVuLWJvdW5kYXJ5ALEUdn4GRDsH9WL1L7y1bLyJuLj5NDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stM3g0AJCZSwptQ61e1pZTwcE4hKBhX84JNDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stNHg0AIBwS1eaBAtFcgKLKsMVnunMSiZCNDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stdG8tOC1yZWdpc3RlcnMA4gASyB5f02+kGGV08zOUrZySe1I0MDAwMCBiaXQtemVyby1mcmFtZS1mZWVkYmFjawDNasjhuo241l1xymey5dMmnKMxszQwMDAwIGJpdDAtYnVkZ2V0LWdhcAB+E0cf4A/7owqefWAqzeAsCgO4gzQwMDAwIGJpdDIyMzQtYm9keS1zdG9jay1hdWRpdAAZeYL98dkv6yxHN4+Pxhk+CQ0AWzQwMDAwIGJpdDIyMzQtY2FsbGVlLXN1YnN0aXR1dGlvbgAFUHzoa8vUMYaYjcM6K8Bujy1HSDQwMDAwIGJpdDIyMzQtc3RvY2stdGhyZXNob2xkAE3smBMW7dmhXOLluke/mt8lckLxNDAwMDAgYml0NTg5LWJvdW5kYXJ5LWFkYXB0aXZlLXI2NTktc2VlZDA1AGgo42fJgFaA2YcMfoxnZ+Qzpg4/NDAwMDAgYml0NTg5LWNoZWNrZWQtY3BwLWludC1zZWVkOTIAx/lGbFAIA0R5IDfrVlsMpHpuaPI0MDAwMCBiaXQ1ODktZml4ZWQtb3B0aW9uLWNyb3NzLXBhaXJzLXNlZWQxNgCmKYkwbvzWI1ToafQzGZkVIp/6ZzQwMDAwIGJpdDU4OS1mcmFtZS1vcHRpbXVtACmg2lgRt5ay/Xp3bLHjn3X7M8SBNDAwMDAgYml0NTg5LWd6aXAtcmVwbGF5AD2eU566//zyIm7sVW0WuRgUG/AXNDAwMDAgYml0NTg5LXByb2plY3Rvci1sZWRnZXIAxctA+gUBromrxmV/Cc7HxqDMKQ00MDAwMCBiaXQ1ODktcmVjaXBlLWZsb29yAHwFDkWJ9DMoE7+3Y7+QzjGHTIBnNDAwMDAgYml0NTg5LXNoYXJlZC1yZWdpc3Rlci10cmlwbGUtc2VlZDA1AFnppHTRLJnA55gu0fAJqRkVi5csNDAwMDAgYml0NTg5LXN0ZWluYmVyZy1mYW4tc2VlZDA2AIs0C4vTNKKuDXJejVPQDhW5yHdfNDAwMDAgYml0NTg5LXRyYW5zcG9ydC1yZWZyYW1lAPYo9Hx2OZTcfGbRcNvu6a6SrO2eNDAwMDAgYml0NTg5LXdpZHRoLXBhY2tpbmcAvsqACRxG+WvJXeLJCIFRvc9B2OU0MDAwMCBiaXQ1ODktd2lkdGg3LXdpbmRvd3Mtc2VlZDcyABmdyXfgjwsmAVp1o4t2JUWT7lmvNDAwMDAgYmxvY2stc2NodXItY29tbXV0YXRvcgC3N6r8/+om44mM1YdA0vZUuqoFkzQwMDAwIGJsb2NrMy1ob29rLWVycm9yLXNwZWN0cnVtADhMeSo7JOfXYRpj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YWxpdHktc2l4LWN5Y2xlcwAGVW6FXV1Igtpgu7cL7DWggx0ypjQwMDAwIGNlbnRyZS1mYW5vdXQtdHdvLXBhbmVsLXNlZWQ5NjIzMDIApovkmRbhc0JVwdekrW7A2rUdIwc0MDAwMCBjZW50cmUtZmlmdGVlbi1vd25lci1lcXVhbGl0eQAunnezrH8GKD6BnSQaNqBMUlW1aDQwMDAwIGNlbnRyZS1maXZlY2FsbC1jb3Zlci1hdWRpdAC21Z6diKGjLFWPQyLJLT/l3Srs+TQwMDAwIGNlbnRyZS1ncmFtLWRlZ3JlZTQxMACZtzeOyraVai0IfBWT4Em0I2yo9zQwMDAwIGNlbnRyZS1oaXN0b3J5LWlubm92YXRpb24AD2o2n4Bg5al12K/LehU5taYpZ8Q0MDAwMCBjZW50cmUta2VybmVsLWZlZWRiYWNrABDF6zU81hBb1VbMa0b7Q5L+qLeGNDAwMDAgY2VudHJlLW1ldHJpYy1lbmNvZGVycwBULFmgmy/fKInNNiwxoN1v1usBtzQwMDAwIGNlbnRyZS1uYXRpdmUtb2JzZXJ2YXRpb24tZGltZW5zaW9uAFcyyz+6fs3xcfErxpavP1LN/ZqiNDAwMDAgY2VudHJlLW5hdGl2ZS10ZXJtaW5hbC1mYWN0b3IAGlNg1P9/SeZArP6Wr66s5jjimyk0MDAwMCBjZW50cmUtbm9ubGluZWFyLWZyZXNoLWZsb29yAD8L7jedqIB271FwakjOn1P7BPOmNDAwMDAgY2VudHJlLW93bmVyLW9ic2VydmF0aW9uLWZsb29yABltTlYYPFXu3NaPO0fgN561+iWoNDAwMDAgY2VudHJlLXBvbHlub21pYWwtY2FjaGUtbGltaXRzANA7ze7TwhDjyhjZrTvSPyEp6JWtNDAwMDAgY2VudHJlLXByZWZpeC1mYW5vdXQtb2JzdHJ1Y3Rpb24tc2VlZDI4MDNiNwAKJXp1LpJkAwO/ynq7ZFZeA5h4TTQwMDAwIGNlbnRyZS1zZXZlbi1vd25lci1mYW5vLWluZGVwZW5kZW50AFtpqmZuxrJf4JO4j3ANCLrxDbvONDAwMDAgY2VudHJlLXNldmVuLW93bmVyLWluZm9ybWF0aW9uLWZsb29yAO7Bn/dMSdNOHjtFjr1pIokV4h6nNDAwMDAgY2VudHJlLXNoYXJlZC1rY2FsbC1jaGFyZ2VkLXNlZWQ2MTU0MTUAKMbYtGAjeoe9kZx4NiMq/9d/9hI0MDAwMCBjZW50cmUtc2hhcmVkLXJldHVybi1ndWFyZADEoIGKLLoHdITFPxq0lJUEbDUUvDQwMDAwIGNlbnRyZS1zaGFyaW5nLW1peGVkLW92ZXJoZWFkAGppBty4Fvpbs9pOpetSgmWvAECuNDAwMDAgY2VudHJlLXNoYXJpbmctb3ZlcmhlYWQtYnVkZ2V0AEtuV1Ytp+pmjTqqu5ch1eQHU/KSNDAwMDAgY2VudHJlLXNoZWFmLWZpYnJlANDftdlsxxOhtPexNnTSqp/M1IXLNDAwMDAgY2VudHJlLXRlcm1pbmFsLXNvdXJjZS1xdW90aWVudADE1f7uTBHsNL/tCN94oUnb5QQGLTQwMDAwIGNlbnRyZTAtY29tbW9uLXJhdGlvbmFsLXByb2R1Y3QtZW1iZWRkaW5nAE+htTahSoXJWHrr/VTUbVNwXzhzNDAwMDAgY2VydGlmaWVkLWdhdXNzaWFuLXJlY292ZXJ5AMnJ3qeG5p38FmlwSSowTZwQJV/HNDAwMDAgY2V4MTktZXhhY3QtcGFpcmluZwDGmwca2IBXC+FzJXF4m2Wa9s4fxjQwMDAwIGNleDE5LXByb3Bvc2l0aW9uYWwta2VybmVsAG2DAdTH5YuMWGIEUQ5yNRR5E5q8NDAwMDAgY2hhaW4tY29ubmVjdG9yLXRhYmxlcy1jaGVjawDh9PaUbFZXLTiMVp0Ucm6x3+2HJTQwMDAwIGNoYWluLXJpbmctY29tbW9uLXdvcmRzAGvuvdPe/Aq1aI8FkMwk8Nob/dL+NDAwMDAgY2hhaW4tdGFyaWZmAH+deGanZIYiM9SP2R8QCNvwRO1KNDAwMDAgY2hhcjItamV0cwDPnMGvmm0HplAZ00Rr4+MTSYqSUjQwMDAwIGNoYXIyLXRocmVzaG9sZACw/ow4syYDe19YbOP+eboC6dYrXzQwMDAwIGNoYXJnZWQtcmFuay1kb21pbmFuY2UA6pNHAokwuuwfYpSiK/DlYrwh+qw0MDAwMCBjaGVhcGVyLXJlYWRvdXQtN3Etb2JzdHJ1Y3Rpb24AiWVNkRXylD6/vKTpg9X1ZoBcdvY0MDAwMCBjaGlycC1idWRnZXQtY2xlYXJhbmNlAHBbFteOlXTA/qYHCMk22Ae3acbXNDAwMDAgY2hpcnAtZmllbGQtd2lkdGgAzl8VsQjrP2juMlA67v41UKr4wxY0MDAwMCBjaGlycC1wYWNrZWQtY29ycmVsYXRpb24tYXVkaXQAOaBqBgZqHKVZH4ya93JkSMyQrbM0MDAwMCBjaGlycC1yZXNpZHVlLXN0ZXAAh2L7L4n2pWvZJoIqpPG1FcTNZDY0MDAwMCBjaGlycC1zY2FsYXItaW52b2ljZQCfvGakrPiiYS90ZP7KuLGPVjhHPzQwMDAwIGNoaXJwLXN5bWJvbGljLXNlZWQ4MABAhG0rLX21IVqR+wVS77JfCzaHlTQwMDAwIGNocm9ub2xvZ2ljYWwtYmF0Y2gtd2lkdGgA0rsADIbYWxNdOtNzoltG5lQNuT40MDAwMCBjaHJvbm9sb2dpY2FsLXJhbmsyMy1tYWpvcml6YXRpb24AEFJi99wzddL0ODJsTQbXrtt5RlM0MDAwMCBjaHJvbm9sb2dpY2FsLXdpZHRoLWJvdW5kADOEpbRftLKnTIyWafMksN08GikINDAwMDAgY2hyb25vbG9naWNhbC13aWR0aC1ncm93dGgAlOWYoFszvX5ZixAz4GwSbCz9ygg0MDAwMCBjaXJjdWxhci1zY2h1ci1hcmMAd/vAKrvxZBaYyVFCsEZQJu2fZqs0MDAwMCBjaXJjdWxhci13aWR0aDItYXJjAAXjWD752NPuGXJhApG9ek57NrU9NDAwMDAgY2stYWxsLWR5YWRpYy1mb3Jlc3Qtc2VlZDIzAKcMLnMJQA4qWKKlCOVMqizC/Z88NDAwMDAgY2stZHlhZGljLWZvcmVzdC1zZWVkMjIAOBZNY8+pGYZArp+QCptOtMhg0XQ0MDAwMCBjay1keWFkaWMtaGVscGVyLXNoZWFycy1zZWVkMjIA2sE6SmgWhFaNBnY0Ui/0Ql/KBRY0MDAwMCBjay1keWFkaWMtcmVwbGF5LWZhc3QA+hhKJgoNv67K8cOG1HqXcYnrsOs0MDAwMCBjay1ncmlkLXN5bnRoZXNpcy1zZWVkMjQAhHCakcdgzh9+tSB+OqjoTWdbIcg0MDAwMCBjay1oZWxwZXItYnV0dGVyZmxpZXMtc2VlZDM4AHJTiyP1wTh6oXtD8fL5YF59p8iZNDAwMDAgY2stcG93ZXItZm9yZXN0LWJvdW5kAKGTR+qGXcO6LgcBWFJB25NCsJ/VNDAwMDAgY2stc2lnbi1ub3JtYWxpemF0aW9uLXNlZWQyMgC79x4o+JqvszS7pm+vy1wdECDj6jQwMDAwIGNrLXU0LWltcHJvdmVtZW50LTIwMjYxMDEzAHefcPDyBi/S6DQXS4St8R3+oDGzNDAwMDAgY2xhc3MtYy1kb21pbmFuY2UtY2FtcGFpZ24APfcoN6/lSdJb/VOeZNOLYdDpNTE0MDAwMCBjbGFzc2ljYWwtdDMtY29uZmlnLXNjcmVlbi1zZWVkM2UxMQChuJKaBF2SteVQQfgJgHD5yz7HOzQwMDAwIGNsZWFuLWNoZWNrcG9pbnQAuTMyd57z1H+x6zyOmrrSBgUn+3k0MDAwMCBjbGVhbi1jb25uZWN0b3ItcGVyLW1hc2stc2VlZGU1NGUAqZdKcWwb0dfqzFx8r0QA82DICkM0MDAwMCBjbGVhbi1zZWxlY3Rvci1lbWJlZGRpbmcAEGOuWmzusQw3KiWsTRKV371eTWc0MDAwMCBjbGVhbi1zcXVhcmUtemVyby1jb21waWxlcgCgw8J+hjOU/4eVatiY9+jzj404XDQwMDAwIGNsZWFudXAtcHJlZml4LWxlYW4A6prpArRbAHWZH3ybcoiMFM7KX3E0MDAwMCBjbGlmZm9yZC1wYXVsaS1hbmNob3IAwMuz6HU+jJxaVIFDOf7e4aegA6c0MDAwMCBjbGlmZm9yZC1yZWNpcHJvY2FsLWJhc2lzLW9ic3RydWN0aW9uADsaehWv0MmyJauhOzvAl3AVhVXaNDAwMDAgY2xpZmZvcmQtcmVsYXRpb24tb2JzdHJ1Y3Rpb25zAGl5Qkb3ruxoEgkbEWMJQln1EpGHNDAwMDAgY2xpZmZvcmQtc2hhcnAtY29ycmVjdGlvbi1yYW5rANJKVl/HVbrGUgnTBxPXeA5YdPuCNDAwMDAgY2xpZmZvcmQtc3RhdGUtcGVyZm9ybWFuY2UAHMAoN2gaCFa5wYKm2Z8LptYPvTc0MDAwMCBjbGlmZm9yZC1zdGF0ZS1yZXVzZQDG2ZW8gFwt8ITuNu3mw8x85FvWnDQwMDAwIGNsaW1iZWQtNDgAIQ56CFfJukGDURty+LPMvOXg8vY0MDAwMCBjbG9zZWQtd29yZC1yb3VuZGluZy1ndWFyZAAx0Jlb8F5f20na81N1WeJeb9jBcjQwMDAwIGNvYWxlc2Npbmctc3Vic2V0LWF1ZGl0ALwxSRTFnHnlw/m4nzwAmd6ADRVBNDAwMDAgY29kZWQtYWN0aXZlLWZlZWRiYWNrAFIVasYhA9P2TzVXKDhpdznxwYLUNDAwMDAgY29kZWQtYWN0aXZlLXF1ZXJ5LWJvdW5kAHPM2zAz7qhrRZqv5oMNZ2aYYkKlNDAwMDAgY29kZWQtY29tcGlsZXItY2xvc3VyZQCOgo+mvCQ2wQK4ZdL6E3m49N2i6DQwMDAwIGNvZGVkLWhlbHBlci1lYXJseS1lbmQ4ALim5DutHih8h/IOeTx7hQeKuuSDNDAwMDAgY29kZWQtaW52ZXJzZS1maXhlZC1ncmlkAHhghds/Tbx/cl0BTWn0vbFVXPhxNDAwMDAgY29kZWQtbmF0aXZlLWNhbGxlcgDb0LW85GpCNIHHdlXkGRWgGrs9HjQwMDAwIGNvZGVkLXBvcnQtYWRhcHRlci1jZWlsaW5nAAiB/V3fZy+x97phLV1yHWDGg9tONDAwMDAgY29kZWQtcmV2ZXJzZS1jb250cm9sbGVyAHpcl5uRHX2YZMjkHX6wjlmqXDPCNDAwMDAgY29kZWQtcmV2ZXJzZS1waHlzaWNhbC1wYWlyLWdhcAAV97UmlVk4h+4r3xKiAfBxV4AIbTQwMDAwIGNvZGVsaXZlcnktcmVwYWlyLWJpbGwAQ7iREIvvCZe3aIogcJRJNU8+vFg0MDAwMCBjb2VmZmljaWVudC13aWR0aC1ib3VuZAD/1H8NVtgX9AoYsGVcJMw/SgliAjQwMDAwIGNvaGVyZW50LWZyYW1lLWFkZGl0aXZpdHkA667CPlvDjTfNebofFnSRyrbZ3yc0MDAwMCBjb2hlcmVudC10cmFuc3ZlY3Rpb24tbmVpZ2hib3Job29kAKYHFXEiRTQ/VBpXJz3g9NJGQ7/INDAwMDAgY29obi1mYW5vdXQtb2JzdHJ1Y3Rpb24AEVlSUPMTyowyaG8TJ2PdGylMNw80MDAwMCBjb2hvcnQta2VybmVsLWVudHJhbmNlczEzMgAhWiPh2OeNkx1mOAreIRa2xQ1OIDQwMDAwIGNvbGQtaHlwZXJwbGFuZS1zZW1hbnRpYy1iaW5kaW5nAHPjeAL6zTmzdGme1oe5gnb9JM85NDAwMDAgY29sZC13cmFwcGVyLWFtcGxpdHVkZS1hdWRpdADon0tLHScsZV/S6eLXU1wNymAFMTQwMDAwIGNvbGQtd3JhcHBlci1xdWFkcmF0aWM4MQA52zBovQ/XFbwGP/XzzVCOdV1r4zQwMDAwIGNvbHVtbi1jdXQtY2hlY2sAZW95NFJhVqDmnVdJg17S2LeKs780MDAwMCBjb21iaW5lZC1jb2xkLWVuZHMtMjAyNjEwMTMAtj0+ZD4fXFitySyY4wTn1t81fpM0MDAwMCBjb21tb24tYS1icm9hZGNhc3QtcmVhZG91dC1zZWVkNGE1MgD3BqtcptUQFF1zk/95HqZ1+yIZNDQwMDAwIGNvbW1vbi1jb2RlLW1vdmluZy1zdGFnZXMA7rrMTs0nJmBr/PEmNjiBo+/tixI0MDAwMCBjb21tb24tY29yZS1mYW5pbi1zZWVkOTM1NTBmOWYAOCcHF9CI8osqmbPl5zq1cPBZF080MDAwMCBjb21tb24tY292ZWN0b3ItaGVhZGVyLWxhdwA/NT83igYsM/kGIav9alHiUab5yjQwMDAwIGNvbW1vbi1jdXQtZW5kcG9pbnQtZGVidADfDdPT+hOXIKHQ4+5nUPtyZMUxwTQwMDAwIGNvbW1vbi1mbGFnLWRpc3Bvc2FibGUtd29ya3NwYWNlAMLEI/7iSk6kzRZ4Snaj/1U3mSuJNDAwMDAgY29tbW9uLWZsYWctZnJhbWUtb2JzdHJ1Y3Rpb24AyfutmENi622ruNTk2u4iqfV9lOY0MDAwMCBjb21tdW5pdHktYmF0Y2gxMDQ3LWF1ZGl0AEWuyAJU9IrjWnLl1S2Kclg9/rdvNDAwMDAgY29tbXVuaXR5LWJhdGNoMTA5OS1hdWRpdADiPOsaj61IAX3PNdXHSe1JgYQSdzQwMDAwIGNvbW11bml0eS1iYXRjaDkzMi1hdWRpdACSIGkcQ9zbx+/uQ4GIpQQyTMOC0jQwMDAwIGNvbW11bml0eS1iYXRjaDk1Mi1hdWRpdADJaMk7wWDIcG1sMRcqMrAKGFDu/DQwMDAwIGNvbW11bml0eS1iYXRjaDk3MC1hdWRpdAAXegoARUZ/WvfXekQe5J1NTSZmJTQwMDAwIGNvbW11bml0eS1jaXJjdWl0czY4MS1hdWRpdABC/v9nBe4+l3cY314g+pzjvF7N5TQwMDAwIGNvbW11bml0eS1jb2xkNjE3LWF1ZGl0AIfHK99jsUG1Iz7j+0rlzFgm1BwONDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDEwMC1hdWRpdAB8qPTmvMkAS8nfA9pcCORZO7j5ozQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxMDAwLWF1ZGl0APVIFj3VMoFmPE06tfAeu52IGJi4NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDExMDAtYXVkaXQARlxMVwoVlh9PKnPi5uNdVRY7biQ0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTIwMC1hdWRpdADtpoegAQuMA5DqARpl/Jl5unhNpzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxMzAwLWF1ZGl0ALuHCoUw2ZvZYRsnRJ98MEzWWVNdNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDE0MDAtYXVkaXQAbVsjytOei/d4NdPuvjUkVZfhEK40MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTUwMC1hdWRpdAB4s6a6v+4chwKbHfteIag9eKeIkzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxNjAwLWF1ZGl0APd52QSPFD3uTbjp045vfxuu7QBSNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDE3MDAtYXVkaXQATGwZCyPNrWHgMXsR5NVasB9oJ8c0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTgwMC1hdWRpdAAZpir4jBWqc+IDnshVUESUvgLFVjQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxOTAwLWF1ZGl0AGtBQThkikkIaMbkMGP8rSg0Yp+4NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDIwMC1hdWRpdACD4aquQy2rf9kGWsMKcywLkvBaVDQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyMDAwLWF1ZGl0AMrOrvb/Gz348Ruit7OQ+U9UckQ/NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDIxMDAtYXVkaXQAAKEAOakTkErLwWlY0pQ3Ktpa79Q0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MjIwMC1hdWRpdABcAYOo34xAC4+n7FHOn6FQQKuJcjQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyMzAwLWF1ZGl0AIdWZqd41H7xVXYndAXPwkfDj6lgNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDI0MDAtYXVkaXQAwX2HIS7mHT96OwuApxBUyIVmItE0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MjUwMC1hdWRpdADrKEALrJKuJ8WKI9E6A8rQrw7//jQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyNjAwLWF1ZGl0AN/fPtJ2dyTUvonl4S3B/HxF/uksNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDMwMC1hdWRpdADvl9c/yx3HxG7s1PrTsCSy7TdUYzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQ0MDAtYXVkaXQAHf95j3LI941A5gvxz/0FpHS2BY80MDAwMCBjb21tdW5pdHktZWZmaWNpZW50NTAwLWF1ZGl0ACF99kwbZYglfGUFjWfDSLqSmT2kNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDYwMC1hdWRpdAAwqtNW7HLTL59eoRl/u4arC9uc+TQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQ3MDAtYXVkaXQAXb42SrSBQ7CFc1/4o8xuLTv6woo0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50ODAwLWF1ZGl0APP6GRdzCH28NPjTEIYi2P/KqM6xNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDkwMC1hdWRpdAAfXKzStwMwr7KmrsbGenJrVWYBjDQwMDAwIGNvbW11bml0eS1mYW1pbHk1MzMtYXVkaXQAXOp2hKEuVE9MGrDTvSrzbuv4edk0MDAwMCBjb21tdW5pdHktZmFtaWx5NTg4LWF1ZGl0AFd9/U0UlLBPpx4DWi75l0pKB4/UNDAwMDAgY29tbXVuaXR5LWZvcm1hbC0yMDI2MTAxMi1hdWRpdAB3RZpzNE+pQa+ZbhArw29jbfbOjTQwMDAwIGNvbW11bml0eS1mcm9udGllcjEwNDItYXVkaXQA+6vYwSUtksEhckzw6h3ml5qz4Ng0MDAwMCBjb21tdW5pdHktZnJvbnRpZXIxMDk0LWF1ZGl0ABPZVo9OLXQWzMh7r7WzaKJ6DeMjNDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzQxLWF1ZGl0ANWAw5/8fsHcDOm63CqL+XWfBEZ+NDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzk5LWF1ZGl0AD2Mm7YkjjwlKst/8Z5E8MJE7p2UNDAwMDAgY29tbXVuaXR5LWZyb250aWVyODkwLWF1ZGl0AJrBjvYiAj1aQnFsn4jHFm0t8FgdNDAwMDAgY29tbXVuaXR5LWZyb250aWVyOTQyLWF1ZGl0ADz5GrhhWGUpXdPOz+ZMLDm1uBUcNDAwMDAgY29tbXVuaXR5LWhpc3RvcmljYWwtZml2ZS1hdWRpdAB8PeI4j93mOtmkgny7+YrCjm/ObDQwMDAwIGNvbW11bml0eS1oeXBlcnBsYW5lNTk5LWF1ZGl0AFx0YadmqQSvI69eSvJqU8M1gOisNDAwMDAgY29tbXVuaXR5LWs0OTItYXVkaXQAYkZmuQMrtLpGQf3FHLit1Hh/v4M0MDAwMCBjb21tdW5pdHktbm90ZXMtMjAyNjEwMTEtYXVkaXQAWk/oxijkUx6P9PuEqfRjfhFKi3Q0MDAwMCBjb21tdW5pdHktcGlsb3QyMC1hdWRpdACW1VQWR0XJZx/9k0lfM5SGaD6DFTQwMDAwIGNvbW11bml0eS1wcjI3OS1hdWRpdABC1HCn9U/fu+SxlpOX2waKF6szqDQwMDAwIGNvbW11bml0eS1wcjUzMS1hdWRpdADkYphdjKB1kXrHQiHe1gm0ko0uJzQwMDAwIGNvbW11bml0eS1wcjY4MS1hdWRpdADu8PRII9tNz4I3yBJr7FcACdEdvzQwMDAwIGNvbW11bml0eS1wcjY5Ni1hdWRpdAC5HU95HEI8p1c0vs3TuSDmJIQRCjQwMDAwIGNvbW11bml0eS1xdWV1ZS0yMDI2MTAxMwBjLIxhNetheqn4dCufHTgzfE5LJjQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi1mb3VydGgxMDAtYXVkaXQAeyENudEcXVxb63zezLtNGnbtw7I0MDAwMCBjb21tdW5pdHktcmVjb25jaWxpYXRpb24tbmV4dDEwMC1hdWRpdACH/J6QtQT54Yo2mhwG/36ojfQV/TQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi10aGlyZDEwMC1hdWRpdAAVYrxOdBgqx9mw8V/zVoHD4Nv3cjQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbjkyLWF1ZGl0AKMEFyrxpW9RmpkQh34Z+aSgvqpvNDAwMDAgY29tbXVuaXR5LXJvdW5kOC1hdWRpdABfYZ3xmnI11GvPCVjhr5X1psSwETQwMDAwIGNvbW11bml0eS1yb3VuZDktYXVkaXQABMox17ioB8um808tu3Mqr00WV3k0MDAwMCBjb21tdXRpbmctZGlydHktcHJlY2lzaW9uABx254V8RXQ1A7S6mHXHgEMLpss6NDAwMDAgY29tbXV0aW5nLWludGVydmFsLWF1ZGl0AL8C/BWj51VuJSkyBI3Iqy9MmoZ+NDAwMDAgY29tbXV0aW5nLXdhcnAtcmV0aW1pbmcA7bP0DJW0SuQf3EJ3qfF0NhusZxg0MDAwMCBjb21wYWN0LWFncmVlbWVudC1vcmJpdC1hdWRpdACDd5mQf+KnDj4sGP4Zf8R2R4po4TQwMDAwIGNvbXBhY3QtYWdyZWVtZW50LXNldC1zZWVkMjkAN0CadutH/g2aSIDsQ3DK/HOoekw0MDAwMCBjb21wYWN0LWJvdW5kYXJ5LWNhbmNlbGxhdGlvbi1zZWVkNTEAFGuMMPPaeGml0uE+kjkQOrgJPM80MDAwMCBjb21wYWN0LWNhcnJ5LXJlcGFpci1hdWRpdAB3RF+W/cD5801+Jle3y1K085Mm8zQwMDAwIGNvbXBhY3QtZ3VhcmQtYXVkaXQtc2VlZDcxACsbRRP4VkBjMHl7mRdAMWc0jKyzNDAwMDAgY29tcGFjdC1qb2ludC1jb21waWxlcgA6YZZ5MabhzZmzHXhfgNb4WtenDTQwMDAwIGNvbXBhY3QtbGF0ZS1jYXJyeS1ndWFyZADS+H4FGuExHqIZ/gLknHuH5ISH9zQwMDAwIGNvbXBhY3QtbGF0ZS1ndWFyZC1hdWRpdC1zZWVkNzMAyK8B2U22/hSD+W9TOCd1OEz62CE0MDAwMCBjb21wYWN0LXJlcGFpci1ndWFyZGVkLXJlZmluZW1lbnQAvko1MyAwm/gjIBaZWfg43k0DMzQ0MDAwMCBjb21wYWN0LXJlcGFpci1wYXJ0aXRpb24tYXVkaXQtc2VlZDY2ALSVmSXRmdHWVXVEiZ3DyPEqrxPNNDAwMDAgY29tcGFjdC1zYXR1cmF0aW9uLWF1ZGl0LXNlZWQ2OQBIaSkprzAmIgnqtsySkjr/ECgpMDQwMDAwIGNvbXBhY3Qtc3dpdGNoLWNvbnRyYWN0AOVZIkVR4xiTPCS8V0QORnpM+UoANDAwMDAgY29tcGFjdC1zd2l0Y2gtc2hhcnAtZGVuc2l0eQBRVS1yy+9E/pfY1FjZw8bliL/sIjQwMDAwIGNvbXBhY3Qtc3dpdGNoLXNoYXJwLXR3by10YXJnZXQAxxAH69pak2VRQc6FU1CO2Jl0leI0MDAwMCBjb21wYWN0LXR3aWRkbGUtdGFwZXMAxXDB+IapsCteBWL+lHHRVxFMm9Q0MDAwMCBjb21wbGVtZW50YXJ5LWNvbnN1bWVyLWZlYXNpYmlsaXR5AKHOqvqjEGHX63JnWeZ2hMBSzidaNDAwMDAgY29tcGxlbWVudGFyeS1udWxsaXR5LWF1ZGl0NzUAoQDaHg9nFQPo2R6j07LOj5vUyEM0MDAwMCBjb21wbGV0ZS1hbGwtaGVpZ2h0LWV4aXRzAClS36FuC58NR+HeWZbYXvSCVgDTNDAwMDAgY29tcGxldGVkLXByZWZpeC1vdXRlcgAKEFpsTPHyhAVSqZZ8Dnwj1tkZtzQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1iMwDP/fF0TGtPxpDOUoT17pKZPYYQZDQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1jb25zb2xpZGF0ZWQ2MTgA/QBYDiD0bAawIr6j+IQ9RunTN4k0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtZTEA/HQQdJMLUJcZlncN3gmD4slatIs0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtZjYAMoqDFMXcbns/UZHEZfRJoQv5RY40MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtajEAuQjmWSgZ+Dhd9dxlGOyypMGCIVQ0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtanA4AGFfgDXvS740cqusevB+Ce+qZYFWNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWs0OTItcmVwYWNrZWQ2MjQA/Zu5Wdt1aDk2/isLsfhj4ZsTDUY0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5Mi1yZXBhY2tpbmctYXVkaXQAODsu7bg2jSkTUt+8KsDMArO8oIw0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5MgCPWQxXbupzKc0PbhCOox2hHmOnOTQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1rNDkyYgDC2niLSSmyvuOotNJ/hr3471QRUjQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1rNDkyYwBwHL/ow6PcXvULSbls3oiW4qQWxzQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1yMQCeOrZ24cMATAZPh006+R26fdEE5jQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1yZXBhY2tpbmctYXVkaXQArQn96mHz/WlcG/aJgDVj1MvxQmk0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQAVQIm7mmKJ2/JQ9f4c7C8uVJCrjE0MDAwMCBjb21wbGV4LTU3MS1mcmVlNGYAQr3ErH/LE5D2MnBOXFdvLLUp0vA0MDAwMCBjb21wbGV4LTU3MS1mcmVlNGZjAOfiVmE0FXpyqYUnyYKvzohO7iEYNDAwMDAgY29tcGxleC01NzEtZnJlZTRmYzgAr5j5I+qA5/w6Cdz2pgMgYFfDdQc0MDAwMCBjb21wbGV4LTU3MS1ocGU0Ni12YWxpZGF0aW9uAEhUdRMQWk2BNhmwWV//QI4kCiloNDAwMDAgY29tcGxleC01NzEtaHBlNDYACbRXOwJsJ8/fbHTmZ71ZS0HFxqg0MDAwMCBjb21wbGV4LTU3MS1ocGVtNDYAJqLvuKTRQDwvZQV5jJqC5atOmVE0MDAwMCBjb21wbGV4LTU3MS1ocGVtNDZjADsWBPDC0/WIktOZbRig6fLN8KdiNDAwMDAgY29tcGxleC01NzEtaHBlcTEAGPggLyfnaOXTFheI8V8YJ6oQJ880MDAwMCBjb21wbGV4LTU3MS1ocGVxNACvZaB5f3KpMzhS19TPxiVkLWNAUTQwMDAwIGNvbXBsZXgtNTcxLWhwZXE1AEoawsY67PYkKWSh29UKeFOxixjtNDAwMDAgY29tcGxleC01NzEtaHBlcTYAGAIN9pDOQmuUmSbcMWYpo7LVXD40MDAwMCBjb21wbGV4LTU3MS1wbGFpbjgA3zbTvB8ZVdPe5zLMALHV6azM0SA0MDAwMCBjb21wbGV4LTU3MS10aHJlZS1wcm92aWRlci1mMQDhBzUOOJ6JlwkGFzGoW0pwb6jwgDQwMDAwIGNvbXBsZXgtNTcxLXRocmVlLXByb3ZpZGVyAOpi7r3GFCLtbcxmOWrk+hi/r6GNNDAwMDAgY29tcGxleC1hbGxjb2xkLXZhbGlkYXRpb24AHeVT/CjUM/HFvM0kOGbzAwlADHI0MDAwMCBjb21wbGV4LWFsbGNvbGQAD5W1b0vMVOHAShea0heyEIGvj9M0MDAwMCBjb21wbGV4LWJsb2NrLXJhbmstb3B0aW11bQCLSIYh7B3/VBCbNgtMCrtNkoeDHTQwMDAwIGNvbXBsZXgtYmxvY2stc2NoZWR1bGUtYWRtaXNzaW9uLWF1ZGl0ANusmTvis9Q0fme9N6n32px81JImNDAwMDAgY29tcGxleC1ibG9jay10YXJnZXQtc2NyZWVuAGBChMv5W3tKwI8q+4H5vaheEWn4NDAwMDAgY29tcGxleC1ibG9jazMtZml2ZS1pbi1mb3VydGVlbgBR3uNdpU9kkUg6c0oyaVu0GlSb9DQwMDAwIGNvbXBsZXgtYm9vdHN0cmFwLWN1dG9mZi1sb2NhdGlvbgBIpT+rI3Sp8Q1fWou9zpmfEuSMpDQwMDAwIGNvbXBsZXgtY2FydGVzaWFuLWdyaWQtc2NyZWVuLXNlZWQ1MDZhZgA86IeLok9MgQeCOgBZAk0/QpmV5zQwMDAwIGNvbXBsZXgtY2VpbGluZy1kb21haW4tZ3VhcmQAGThAqn0T/QGIGsmRP9MjqQvtuAA0MDAwMCBjb21wbGV4LWNlbnRlci1xdWFydGVyAMlewivU9rCdZhjw3K4AbnWgtuTBNDAwMDAgY29tcGxleC1jaGlsZC1wYWNrZXQtdm9sdW1lAPAYthKtXqL2vWlXwj40CwtwMafkNDAwMDAgY29tcGxleC1jay1iLWZyYW1lLXNlZWQyMAACS/QgBmIsU/V98pwHVhOf4BBY4zQwMDAwIGNvbXBsZXgtY2stY2xlYW51cC1mdXNpb24A14QUctAHT8OA+JPUdgVRiNgGHKQ0MDAwMCBjb21wbGV4LWNrLWR5YWRpYy1sYWRkZXJzALJupuhPgIUj3EYP24ONjZjxb50mNDAwMDAgY29tcGxleC1jay1oZWxwZXItYmFzaXMAEj0RLWFMCKyZnkfPyScMSpJfZcU0MDAwMCBjb21wbGV4LWNrLXNjYWxpbmctZm9sZAD3e2pIbz0VnwlaOVMLNd3Kz8tA6DQwMDAwIGNvbXBsZXgtY2stdGFyZ2V0LWZvcmVzdABEsoiYT+WdGnddN2vp4Zl9icMrDDQwMDAwIGNvbXBsZXgtY2stdHdvLXNpZGVkAALGD1mSZfOok4edRyNA/Eu8bwYUNDAwMDAgY29tcGxleC1jbGVhbi1jYWNoZS1zZWVkOWRmNzg5AI5TLlqjVxKTxfq/198TkvaTsQe5NDAwMDAgY29tcGxleC1jbGVhbnVwLWNvcnJpZG9ycy1zZWVkMjgA92v50bQdsGNuZW1uhm0GfXT6ChA0MDAwMCBjb21wbGV4LWNvZGVkLWhlbHBlci1nbG9iYWwtc2NyZWVuAJPmADMRT3FqGksJNyUKULKpP49VNDAwMDAgY29tcGxleC1jb2VmZmljaWVudC1hY2N1bXVsYXRpb24AtSnV3xI959mkwvj0ajC1B8zO+9g0MDAwMCBjb21wbGV4LWNvZWZmaWNpZW50LWNvbXBvc2l0aW9uAFdLA+yPsK1rUdE6S8Zo/EzB0mPlNDAwMDAgY29tcGxleC1jb2VmZmljaWVudC1yZXNjYWxpbmcAL0e4Fyw5Rhc1M8J1j3LT1CD8uQg0MDAwMCBjb21wbGV4LWNvZWZmaWNpZW50LXJldXNlAFjni2GfQLj+l2Tz6m/jWQO7lTSdNDAwMDAgY29tcGxleC1jb2xkLW93bmVyLXJlcGFpci12YWxpZGF0aW9uAJy+GIlkb0BvgEiiyw+Krddxdc51NDAwMDAgY29tcGxleC1jb2xkLW93bmVyLXJlcGFpcgDOGEXzumQDJmV5selVMkX6uaKsxTQwMDAwIGNvbXBsZXgtY29tcGVuc2F0aW9uLWJhc2lzAKwi5gOkwauk0BvsCf0pxVvdUGtQNDAwMDAgY29tcGxleC1jb21wZW5zYXRpb24tbmV0d29yawCmtbWfdG+xSRltM8xN9/zCp9iRVTQwMDAwIGNvbXBsZXgtY292ZXItbGlmdC1hdWRpdADlStEi53ykMGDiqT0beT5FfXQBPTQwMDAwIGNvbXBsZXgtY292ZXJhZ2UtbGF3LXJlbGllZgBRsSnIAdoWR4D4BGKLfxFnVml3MjQwMDAwIGNvbXBsZXgtY3Jvc3MtYmxvY2stbG9jYWxpdHkAf6I1O5gLCw5r9kSDjDzFFqgOMyM0MDAwMCBjb21wbGV4LWRlY29kZXItZmllbGQtZXh0ZW5zaW9uLXNlZWQ0NADdeVkVphkZToI2Vy1+gAGd0aJTJDQwMDAwIGNvbXBsZXgtZGVsaXZlcnktbWFwLW9wZW4tYWxsb2NhdG9yAEC8BqdDCBoEClNujNWAYDwTP/bENDAwMDAgY29tcGxleC1kaWFnb25hbC1jaGlsZC1iYXRjaGVzLXNlZWQ5NWRhAKXlMGv7mgGTPME4+79VzI+V0vx8NDAwMDAgY29tcGxleC1kaWFnb25hbC1tYXNrLXJpZ2lkaXR5AAUagHXkfewBFzlLrnxTBHLydtEVNDAwMDAgY29tcGxleC1kaXJ0eS1vdXRwdXQtdGVtcG9yYXJ5LXN1bS1hbmNob3IA7CCcW0nP7QgsXJYlSBP3rfJJ2Jo0MDAwMCBjb21wbGV4LWRvdWJsZS1yZXBsaWNhLW93bmVycy12YWxpZGF0aW9uALoA9KZASEp6EAoUofvWEDkQpAFZNDAwMDAgY29tcGxleC1kb3VibGUtcmVwbGljYS1vd25lcnMADitsZJYaoYIVqdx+ewaKZJ5ES140MDAwMCBjb21wbGV4LWRvdWJsZWNvbGQtdmFsaWRhdGlvbgCwuAHqJcKwwnlOnTvKgtXAH+SUXzQwMDAwIGNvbXBsZXgtZG91YmxlY29sZACH3QW5TILnLpgchuXDBxPoR/vX3TQwMDAwIGNvbXBsZXgtZHlhZGljLWNvbm5lY3Rvci1zZWVkMzAAs/7UdIoOaDLdiz48J9w4UCcs+xY0MDAwMCBjb21wbGV4LWR5YWRpYy1sb3dlcmluZwB9b4PVbSMBkOq/KopZyR9mWXrh3TQwMDAwIGNvbXBsZXgtZmFjdG9yeS1idXR0ZXJmbHkASgGV/6BQMFs88or3mJRqbNnG7A40MDAwMCBjb21wbGV4LWZhY3RvcnktZnVzZWQtc2VlZDIzAEQqpHSxeuUD+DI3q2cEsVx4M+I6NDAwMDAgY29tcGxleC1mYWN0b3J5LWZ1c2lvbgDjGhcohdrfkk633SmJPuwDvUq5PTQwMDAwIGNvbXBsZXgtZmFjdG9yeS1nYXVnZTM4ACsdA8H1vYv7ySkwS9BnsRW4iwFONDAwMDAgY29tcGxleC1mYWN0b3J5LXNjYWxlLWZyb250aWVyMjcAdiiM6V102trTvYYLf5N12xJaxNw0MDAwMCBjb21wbGV4LWZhY3Rvcnk1LXJlc3ludGhlc2lzAL8Rqs00sdzjoT1uQLT40eZ/SXUnNDAwMDAgY29tcGxleC1mYW4tZXhwYW5zaW9uADnODdOxlUpDxS+QU3FoFiDWirC5NDAwMDAgY29tcGxleC1mb3VyLWJhc2UtcGFja2V0AKe6+qtN3cZYU4ja0c69efzPtjD8NDAwMDAgY29tcGxleC1mcmFtZS1kaXN0YW5jZS1zZWVkODAAdHEYpJ1V7SuiXfmw6VTVeYYxq4k0MDAwMCBjb21wbGV4LWZyYW1lLXBhaXItZGVjb2RlcnMAkur3rcc0NW7pTOIO3l0zCTclHD00MDAwMCBjb21wbGV4LWZyYW1lLXBsYW5lLXJhaWwtc2VlZGNhMDRjYwC+6EtTEc+ZQF6ohp582LY58nRm5jQwMDAwIGNvbXBsZXgtZnJhbWUtc2xvdC10cmFuc3Bvc2l0aW9ucy1zZWVkMjcAFlK/tRpi7VYcpI6s0c8FTUYzf180MDAwMCBjb21wbGV4LWdhdGhlci1jaGlsZC1zZWVkN2E2ZAA2SNt7VsonPHGUXZTbQ53aodIPXjQwMDAwIGNvbXBsZXgtZ2F1Z2UtY29tcG9zaXRpb24tc2VlZDIyAAB9qhDnIMvlYu3d7AdHYVf7LoodNDAwMDAgY29tcGxleC1nZW5lcmFsLW5vcm1hbC1ib3VuZGFyeQDyRCd3jcje4Baji5wQipSklkEo4zQwMDAwIGNvbXBsZXgtZ2xvYmFsLWRlbHRhLWNhbmNlbGxhdGlvbgDXrUKFNxI7zhtQxb0xUSTE3+jtCzQwMDAwIGNvbXBsZXgtZ3JpZC1wcmVmaXgtYXVkaXQA+M31pJ6AVwf87YLFZaMVKW05GFc0MDAwMCBjb21wbGV4LWhhbHZpbmctZGVncmVlLWludm9pY2UAC/ISmALPW0wa/ufK7zhRe+5LHOU0MDAwMCBjb21wbGV4LWhldGVyb2dlbmVvdXMtY2hpbGQtaW50ZXJmYWNlAGenpRO198HuUrl92grzNNKcpgI3NDAwMDAgY29tcGxleC1pbnNlcnQtc2xpZGVzLXNlZWQyMAC2barmPehndstaZvdQMN04V/CV4jQwMDAwIGNvbXBsZXgtam9pbnQtaW50ZWdlci1jYXAtY2VpbGluZwALM82EK/QGH7rLuOWQi3yiB2GxGjQwMDAwIGNvbXBsZXgtam9pbnQtcHJlZml4LXZhbGlkYXRpb24ADFWqyAk9cZRSuaATRnww2w/hrbE0MDAwMCBjb21wbGV4LWpvaW50LXByZWZpeAC1C2LfwYHxo5VXaWPFpc4u2LggtTQwMDAwIGNvbXBsZXgtanA4LWNsZWFudXAtZnVzaW9uAKebzk9gTJIk0qWki2KmwQrTqUiZNDAwMDAgY29tcGxleC1qcDgtZGlhZ29uYWwtZ2F1Z2UAa9uUJmEFQrYv8N6yBqRlzzChKio0MDAwMCBjb21wbGV4LWpwOC1mYW5pbgCzxcCXlLPROTVImDQ61ZFxXwiN1jQwMDAwIGNvbXBsZXgtazQ5Mi1mcmFtZS1ib3VuZAC0TGq3bMSTJbHrqK2MnZ2R3vTb7DQwMDAwIGNvbXBsZXgtazQ5Mi1vd25lci1yZXBhaXItdmFsaWRhdGlvbgAtW8yj0duBWLKMH8RR2lXWucM6FjQwMDAwIGNvbXBsZXgtazQ5Mi1vd25lci1yZXBhaXIAywzLiWcLKIvVsZWnE+eZMdCsrI80MDAwMCBjb21wbGV4LWs4LXNpbmdsZXRvbi1mcmFtZS1jYXAAFZGzpcYrOfwH0M2gd5r/xVrjn3g0MDAwMCBjb21wbGV4LWwyNTMtbDI1NC1qb2ludC10ZW1wb3JhbC1zZWVkZGUxAHUmJ11QdSB2xwBAhUA/dAXF+SyENDAwMDAgY29tcGxleC1sb2NhbC13b3JkLWNlaWxpbmcALtPbiy2KJU3fuAinCbQIQ2EN2f00MDAwMCBjb21wbGV4LW1hc2tlZC1yaWdpZGl0eS1zZWVkMjgAUPNip1iL6ReiEMcsIyUDs61iNrw0MDAwMCBjb21wbGV4LW1peGVkLTA0OC12YWxpZGF0aW9uAJu92dFhO8Bmf6/rIWD53e3BmE3INDAwMDAgY29tcGxleC1taXhlZC0wNDgANW7ZUi9/DnLql2BlpkFopLna8Js0MDAwMCBjb21wbGV4LW1peGVkLWNvbGRrZXJuZWwtdmFsaWRhdGlvbgAb1+S1vXkZZqTzQSAlhpki/iL5wTQwMDAwIGNvbXBsZXgtbWl4ZWQtY29sZGtlcm5lbABRxM+cGEmHWOlKmhek3XRyE2eRMTQwMDAwIGNvbXBsZXgtbWl4ZWQtcmFuay1kaWFnb25hbC1zZWVkODQzMwAkon5VjhVhJF7yNpltkPh5IfLcXzQwMDAwIGNvbXBsZXgtbWl4ZWQtcmFuazYtYmxvY2stc2VlZGM4ZDYA2D++AFPUPuZqQmVkI//ulv3yjlg0MDAwMCBjb21wbGV4LW1vbm9taWFsLXJ1bnMtc2VlZDI1ACS8F28VIJeKxpMgoBfFvBk8kTzINDAwMDAgY29tcGxleC1tb3ZpbmctcmVhZGVyLXNlZWQyOABr0iILp3mtHfFdSkfs23nz5NbCQzQwMDAwIGNvbXBsZXgtbXVsdGktdW5wYWlkLWNvcHktYnVkZ2V0cwAuvS+fGF9h5LmiA6NHnrxXSfIeRzQwMDAwIGNvbXBsZXgtbXVsdGljb2xkAIFs0JFTcBuoaqm3C4gUTz2zad+zNDAwMDAgY29tcGxleC1tdWx0aXNvdXJjZS1jYWNoZS1zZWVkYWI2NjZiNQBkEjpGdT4L33wfMgmjdkY9+WztkTQwMDAwIGNvbXBsZXgtbm9kZS1ub25jaGlsZC1pbnZvaWNlAL/6YQ0WUM7DxhAi0r3QAWRb42JpNDAwMDAgY29tcGxleC1vdXRwdXQtYW5jaG9yLXNoYXJlZC1wcm9kdWN0LXNlZWRjYzVhZWQAfArs5z1vGCHoTnHvEp4sXhOif1s0MDAwMCBjb21wbGV4LW93bmVyLXZpZXctcmVmaW5lbWVudAAAhek9rT+Se6ENEdzBVfPkx6iX8zQwMDAwIGNvbXBsZXgtcDEwNC1tYXNrZWQtbG9jYWwtcmlnaWRpdHkAIqMFScodaCKsZVObEh2o/qOH7iU0MDAwMCBjb21wbGV4LXA0NDAtd2luZG93LXNob2NrcwDDug+F0etEB70ZcyVmktQ6cAybZTQwMDAwIGNvbXBsZXgtcGFja2V0LWJvcnJvd2luZzIzAL9JbfEw3Ah89itdbDx4xv1F2/GtNDAwMDAgY29tcGxleC1wYWlkLW1hc3MtYnVkZ2V0AFtqHj0g7JKROVnDLscuO08tARCPNDAwMDAgY29tcGxleC1wYWlyZWQyNi1jb21wbGV0aW9uANx43dQIekEowm3t6QpW3t6Aog9uNDAwMDAgY29tcGxleC1wYXJlbnQtcmV0dXJuLXJlZmluZW1lbnQALlDCF+XvruxkLzgWNLg70UBaCaw0MDAwMCBjb21wbGV4LXBhcml0eS1mcmFtZXMtc2VlZDM1AIAgC0CPTRDG5CsQuvbtb786nNAINDAwMDAgY29tcGxleC1wb29sZWQtZnVsbC1hZG1pc3Npb24AlPiCpZPf7O8ZstavqWki1y1k2vw0MDAwMCBjb21wbGV4LXBvcnQtc2hhcnAtY29uZGl0aW9uaW5nAC+6GXZWWZO2jul6/HKcEU9yVuPVNDAwMDAgY29tcGxleC1wcjYxNS1jZWlsaW5nLXZhbGlkYXRpb24AspTn/mVVFSiiO+XxmIum3piNfyU0MDAwMCBjb21wbGV4LXByNjE1LWNlaWxpbmcAbUvaLxxkILub/JxI9PI8rr+Kd4E0MDAwMCBjb21wbGV4LXByZWZpeC1ib3VuZGVkLWR5YWRpYwDiMy7SGzDLXpsbTci0wmS7wlcuBDQwMDAwIGNvbXBsZXgtcHJlZml4LW5hdGl2ZS1wb3J0cwA39hKN4v/CzQsAFwO9tnH8FSfb1TQwMDAwIGNvbXBsZXgtcHJvbW80LWNvbGQ3Mi12YWxpZGF0aW9uAGEBqyBk8QpweQRhMiGmAL7sK7wwNDAwMDAgY29tcGxleC1wcm9tbzQtY29sZDcyAE7P9AyVzdiLq3VbYeuFqUI25y2ZNDAwMDAgY29tcGxleC1wdW5jdHVyZS1kZXB0aC1jZWlsaW5nAAvfeDRp6Qg+OBBUzHJOcqOG7dZLNDAwMDAgY29tcGxleC1xdWV1ZS1jZWlsaW5nLWNlbnN1cwDKGNGj3XWHbE+346urkCRBFWiYCzQwMDAwIGNvbXBsZXgtcXVldWUtY2VpbGluZy11bmNvdmVyZWQAxaYxGkHdb8jsbkP1Fj/5n0dTtUk0MDAwMCBjb21wbGV4LXJhbmstb25lLWJsb2NrLWJ1ZGdldAAQURi59K9ApUvpeBIJ5tn9mZt3rjQwMDAwIGNvbXBsZXgtcmFuazItbWFjcm8tZnVzaW9uLXNjcmVlbgCxEGOMBJXp5bA9SiaiwgTg+xQGGzQwMDAwIGNvbXBsZXgtcmFuazItcmV0aW1pbmctc2VlZDczNTA2AAthzwl+8jRLov450d8+Q8DPukdRNDAwMDAgY29tcGxleC1yYW5rMi10b3VjaC1kZXB0aC1zZWVkMDY3NzNmNjAAeCF0LBRQnsrMv+UWXdlyN2HBLS40MDAwMCBjb21wbGV4LXJhbmszLWFuY2hvci1zZWVkM2Y3MwAkaAiS06gImUBE3U7SCWwHs1SiLzQwMDAwIGNvbXBsZXgtcmFuazQtcmV0aW1lZC1ibG9ja3MA+XJlc5VgFVUEbjerZF1wt8aLTUc0MDAwMCBjb21wbGV4LXJhbms1LXBpdm90czgtdmFsaWRhdGlvbgC6687A2RF/RGIGQFopXWer6qZFTjQwMDAwIGNvbXBsZXgtcmFuazUtcGl2b3RzOAB629pkrxjy0qM9c99K8mGnPJCBzTQwMDAwIGNvbXBsZXgtcmFuazYtaGV0ZXJvMjEtc2VlZGZiMTkANro+JZ0F5x8cr6gV+8nEKQndTJs0MDAwMCBjb21wbGV4LXJhbms2LW9uZS1za2lwLXBoYXNlYi1zZWVkMjFmZTFlALgDJpt4Qzb0EfHIr6Y42O/hFurONDAwMDAgY29tcGxleC1yYW5rNi1waGFzZWItc2VlZGI0M2EwMTdmAFgeDFyewDZ/l6yKWgqw3EIW2whqNDAwMDAgY29tcGxleC1yYW5rNy1lbmQtcGFpcgCewj8MnxBn+nEP6PvNU1AGa9skFzQwMDAwIGNvbXBsZXgtcmFuazctb3duZXItZXhjaGFuZ2VzAOTfgqijTXiReZ75HN5JyWPRZQi6NDAwMDAgY29tcGxleC1yYW5rOC1kZWNvZGVyLXJpZ2lkaXR5AJb2K2oFkikqtlZizzKkfMsjVYYVNDAwMDAgY29tcGxleC1yYW5rOC1wMTA3LXBpdm90cwB8iis5Gh0DpN13vuHjJV5U5Yaz0DQwMDAwIGNvbXBsZXgtcmFuazgtcmF0aW8tZ2x1aW5nLWF1ZGl0ACsktvyHDl6KBDKOqX+yKcNxUtAHNDAwMDAgY29tcGxleC1yYW5rOC1yaWdpZGl0eS1leHRlbnNpb24AB6LgoM78C3mLQijzeW9DghrjKFw0MDAwMCBjb21wbGV4LXJhbms4LXJpZ2lkaXR5LXAxMDQtYWRtaXNzaWJsZQA2v2vS+9aDBcyQChLT/EFbEaDiCzQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwNQCtARmtUQ5nC4gA24aaB6LnKMm+BjQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwNgC42IkF00M2KRPNltzdmDNIgajEfzQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwOAA76VzT1IIvZsvwTRqHdR6Gvo2bJjQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwOQBVLtSLuZXpFMBoqIOSL/Lhyxyy5jQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDExMC1vZGQADO2xTtRSuIoKStqtwGW8qeedkkg0MDAwMCBjb21wbGV4LXJhbms4LXJpZ2lkaXR5LXAxMTEtcDEwNC00NABBfvopfUmZhldYxY92mgf3+1ti4jQwMDAwIGNvbXBsZXgtcmVhZC1leGNoYW5nZQBkRWa1zB4VadHwsYmNTn0vvvvjeTQwMDAwIGNvbXBsZXgtcmVjb3JkLWFtb3J0aXphdGlvbgDX+dh/rFEiyVpcPAADAFWAOhn9mTQwMDAwIGNvbXBsZXgtcmVzdG9yZWQtYm9ycm93ZWQtYm91bmRhcmllcwDGZiS9i51Yznd4bFdbKcdmM44/bTQwMDAwIGNvbXBsZXgtcmVzdG9yZWQtc291cmNlMjkAsD+VCHb67hZEJllujNeTa4bksYg0MDAwMCBjb21wbGV4LXJvb3QtYWRkcmVzcy1yZWZpbmVtZW50APRrQrae4m55Jck/wcT2qsgyAaeiNDAwMDAgY29tcGxleC1yb3V0aW5nLWxlYWYtZnVzaW9uAFqDNRK52Ku2eXOGTMyj00S8f1/JNDAwMDAgY29tcGxleC1zMy1jb252b2x1dGlvbi1zZWVkOGIxNwA2OOY6jZop393FjRqVoWKkDAi01zQwMDAwIGNvbXBsZXgtc2NyYXRjaC1mcmVlLWJvdW5kYXJpZXMA66QZgDZMGjH6S7sK/1iuKIePW8o0MDAwMCBjb21wbGV4LXNlZ21lbnQtYm91bmRhcnkAC4MSD2gBJtZWFbzxmPIS9/s8Wa80MDAwMCBjb21wbGV4LXNoYXJlZC1saW5lLXJhbmsyLXNlZWRjZWFjYTgACFPIIpW4MopNED7aOp3LYgWqLIM0MDAwMCBjb21wbGV4LXNoYXJlZC1wcm9kdWN0LXRyaXBsZS1zZWVkNWE3OAC/4OuohduHzEJVNwzUD85EADqv6jQwMDAwIGNvbXBsZXgtc2lnbmVkLWRpZ2l0AAMOz50dS2di0ZPy9rZej8raaIW0NDAwMDAgY29tcGxleC1zaWduZWQtcHJlZml4LWF1ZGl0ACeA3wZh9OXQxZKQp46gN0P6jpszNDAwMDAgY29tcGxleC1zbWFsbC1tLWxvd2VyLWJvdW5kcwCDjy8/xXDUuWH9mE6qA5wK3SM5VTQwMDAwIGNvbXBsZXgtc291cmNlLWZyYW1lLWZhbm91dC1zZWVkYzMwOQDGVMSja4fgUewXxyKfyWmBjN/ghDQwMDAwIGNvbXBsZXgtc3RhZ2UtZGlhZ29uYWwtbm9ybWFsaXphdGlvbi1zZWVkMjQAHdsWragjy8NPw8FqtmUX+m5/c+00MDAwMCBjb21wbGV4LXN0b3BwZWQtcmVjdXJzaW9uLWNvc3QAiWGzCeBjhpx49Ov1l1VMrltRv200MDAwMCBjb21wbGV4LXN3NC1mcmFtZTgtdmFsaWRhdGlvbgCHNHT//H1nF8JtirqDGqKv4UbvMDQwMDAwIGNvbXBsZXgtc3c0LWZyYW1lOABCm1+9JLxtwBxwsGxhHrzk2MGESjQwMDAwIGNvbXBsZXgtc3dhcC1ydW5zLXNlZWQzNwD27HcZ2LlJ99JSa8lKk4SkIpkzXjQwMDAwIGNvbXBsZXgtdDE2LWV2YWN1YXRpb24taW5jcmVtZW50AMDUO8kqYIkbwpSI2+6G2HAOmWiVNDAwMDAgY29tcGxleC10MTYtbmV1dHJhbC1leGNoYW5nZXMAumzZ14kj+QoW09vKm/9H9H8Z8800MDAwMCBjb21wbGV4LXQxNi1vd25lci1leGNoYW5nZXMAAtV3VWpqV5qlIllWM6bJU026u5Y0MDAwMCBjb21wbGV4LXQxNi1yYXJlLXBhdHRlcm4tZXhjaGFuZ2VzADghF5003Y/pXqwwM/ZuMpWv0FwdNDAwMDAgY29tcGxleC10MTYtdGFyZ2V0ZWQtcmVwYWNraW5nAEyeCEvJjxDg5QXY7k7J6WIoFZcHNDAwMDAgY29tcGxleC10MTYtdHdvLXN0YWdlLWN5Y2xlcwB3Qf/VvrL5FFZ8Xwko/IjtM4yvVDQwMDAwIGNvbXBsZXgtdDE2LXZhY2FuY3ktY2hhaW4AcgSesUpeyjxZ72U0qIwrOr+3O7I0MDAwMCBjb21wbGV4LXQyMS1vd25lci1ib3VuZABK/WzRPqTloybyMXzKRWslFGmhmDQwMDAwIGNvbXBsZXgtdDIxLW93bmVycy12YWxpZGF0aW9uAENEkh8PBDdsBKKNrGwOISVxfgsONDAwMDAgY29tcGxleC10MjEtb3duZXJzAFeKw24WtvWjM+9oAEur1aTmLJ2PNDAwMDAgY29tcGxleC10MzctZW5kczctb3duZXJzAN+VLT07qVT1FWsOWg+ndlZR9HG1NDAwMDAgY29tcGxleC10MzctaW5kZXBlbmRlbnQtc2VlZDM5ABmyzrOzovgXv8inKfdRkH+HRJzjNDAwMDAgY29tcGxleC10Mzctam9pbnQteDU0LW93bmVycwBZLkyY5bEAZnO0ryDLgsa+2hjTGDQwMDAwIGNvbXBsZXgtdDM3LW93bmVycwCBhJGagfHuVIl53XwI9PAJT4EQeDQwMDAwIGNvbXBsZXgtdDM3LXNldmVuLXNsb3Qtb3duZXJzAK9OjvkGygiWEK8sczAqpSVKvqICNDAwMDAgY29tcGxleC10MzctdmFsaWRhdGlvbgD9FmQlZDLLgYbjOfm+aaoHfazyTjQwMDAwIGNvbXBsZXgtdGVtcG9yYWwtZ2F1Z2UtcGFpci1zZWVkMjYA0gzDDQtwcOMVCKr4a7p47BQLSpg0MDAwMCBjb21wbGV4LXRlbXBvcmFsLXBhaXItc2VlZDI4ANQa/cYFRfAH05o7hiWGONZeB8ALNDAwMDAgY29tcGxleC10b29tMy1maXZlLXByb2R1Y3Qtc2NyZWVuAOkyR2Ul0foNJ1EnGSdebrzzk/EjNDAwMDAgY29tcGxleC10cmFjZS1qb2ludC1yZXRpbWluZwAmEIVN3MKW2SgtQctjSB+u1Y5CgDQwMDAwIGNvbXBsZXgtdHJhY2UtcmFuazUtcmVwbGF5ACPrvC58Ds9PpoUfnRL1OBhkP5wiNDAwMDAgY29tcGxleC10cmFjZS1yYW5rNQBFYIe3wSANRqD3bnPrI0p+U/l1HjQwMDAwIGNvbXBsZXgtdHdvLWltYWdlLWhvb2stcHJlZml4AA6jcnis0DVwjE2IM2qT0wQhogRdNDAwMDAgY29tcGxleC10d28tb3V0cHV0LXN1bS1hbmNob3Itc2VlZDY1Y2UxOQAXnt4FVC+T0SJ4stU7by+RIHFnNzQwMDAwIGNvbXBsZXgtdTEwLXQzNwAykEe1OzJBbFwbQcRIDpXQpDLTxzQwMDAwIGNvbXBsZXgtdW5pdC1waGFzZS1jb25uZWN0b3Itc2VlZDM5AEiw7+Nu36joOS3XfGmJu6jArSZANDAwMDAgY29tcGxleC13ZWlnaHRlZC1kaWFnb25hbC1yYW5rNTEA41KXhvSj5z9o6SFJwfsHCDa1hB00MDAwMCBjb21wbGV4LXg0LWNvbXBlbnNhdGlvbi1wYWlycwDoITaaXTBPXe2neW/lSX937fNuZTQwMDAwIGNvbXBsZXgteDQtZHlhZGljLWZvcmVzdC1zZWVkMzEAY2JrtOx15RhAFSMrBfkj8YWWHnY0MDAwMCBjb21wbGV4LXg0LWZyYW1lLWJvdW5kAJ4o23bTWSYonuhn6GKD6Da1WQsUNDAwMDAgY29tcGxleC14NC1zY2FsZWQtcGFpcnMAyNzfHdHvkjUgShj7R+xkJP6Lhuk0MDAwMCBjb21wbGV4LXg0LXRhcmdldC1mb3Jlc3QAZwRL91LDdGE4lCE5blcdvvcXFd80MDAwMCBjb21wbGV4NzQxLXBhcmFsbGVsLXJlcGxheQAJaoeHRrpTLkQWtComDTIxi+YoAzQwMDAwIGNvbXBvc2l0ZS1oZWlnaHQtYXVkaXQtc2VlZDY3AHSeCTPRxxlmn5frfrVD2XjaxuVYNDAwMDAgY29tcHJlc3Npb24tZXJyb3Itc3VtAHIRCrWHxvJJI9NYr4AIbaWgfDxHNDAwMDAgY29tcHV0YXRpb24tZnVzaW9uLW5pbmUA97rsR5Nm9x6yh7hOWV9eny+kw5Q0MDAwMCBjb25maW5lbWVudC1tdWx0aXBsaWNpdHkAePhCjdE9IwYLnRH96RGWg2Nlduc0MDAwMCBjb25uZWN0b3ItYWxsLXRhcmlmZi1vcHRpbXVtAPQhrdyYyACFxtNequp0A6E1YXckNDAwMDAgY29ubmVjdG9yLWItb2NjdXBhbmN5LXNhdAB8FzbtDj1qR2Ltv49ROmiM06QVSTQwMDAwIGNvbm5lY3Rvci1jYWxsZXItZXhoYXVzdGlvbi1hdWRpdACAu0HeM9Q60lxUBcbxysSpPZWjOjQwMDAwIGNvbm5lY3Rvci1jYXBhY2l0eS1wYXJpdHktYXVkaXQAFZ3ilJkTtxZxfv+x4HEd0eRZD2M0MDAwMCBjb25uZWN0b3ItY2hhcjQtZmxvb3ItYm91bmRzAEHRN6TvMpUqYsYJpXHDd0TicrMJNDAwMDAgY29ubmVjdG9yLWNoYXI0LWZsb29yLW9ic3RydWN0aW9ucwDd7+lpAPqgowQ0jkqe1YETG4C6njQwMDAwIGNvbm5lY3Rvci1jaGFydC1yYW5rLXJlcGFpcgDEQM00Zyk5RvfxCL0QgejBmANm8DQwMDAwIGNvbm5lY3Rvci1jb3ZlcmluZy1jb2RlABfdMvF9/m7O0xpJbnBjIVQlfvo/NDAwMDAgY29ubmVjdG9yLWRlbGl2ZXJ5LWN1dC1vcHRpbXVtAH2kasmEutWPOiMYDOcixAA0LsTVNDAwMDAgY29ubmVjdG9yLWRlcHRoLWJsb2NrcwBAILvF0LdZHoc6KWpVx1qfHVYebzQwMDAwIGNvbm5lY3Rvci1kaXJlY3QtY2FsbACD6ffG9V7SuG/6Ju6h2ICBXIhxFTQwMDAwIGNvbm5lY3Rvci1kb21haW4tY29tcGxldGVuZXNzANc1QY36pO0X1W7ZM6v/qALVzicmNDAwMDAgY29ubmVjdG9yLWZyYW1lLTczLWV4Y2x1c2lvbgBnMeKAoM+vPnAVoEYed9FOQyIwczQwMDAwIGNvbm5lY3Rvci1mcmFtZS1yaWdpZGl0eQCGsbl6BLE7zNe5yOgdI+ZO19+HWzQwMDAwIGNvbm5lY3Rvci1mcmVlLWFsZ2VicmEtc2VlZDc5AHX4FIfOgWmCnRvHgrKUAFEaWpAlNDAwMDAgY29ubmVjdG9yLW92ZXJsYXBwaW5nLXdpbmRvd3MAWKoy5ySkREQBbSJHZ1UWp4VbccI0MDAwMCBjb25uZWN0b3ItcGFpci1zb3VyY2UtcGF0aC1zZWVkMmNkYgD044vi3j+Tl7yxF1s2vk88P7OprzQwMDAwIGNvbm5lY3Rvci1wYXRoLXByb3BhZ2F0aW9uLWF1ZGl0ALXpvhTIVjyM6LBmkDqFTPy5uo3+NDAwMDAgY29ubmVjdG9yLXF1YWQtc2l4LXNlZWRkZTNmODQAUAHuRJ0CukI60fB5mb+ZcqkBK5E0MDAwMCBjb25uZWN0b3ItcmVhZC10cmFuc2Zlci10YXJpZmYAworKgX0N6G8ncMHMRCzTCGyU1R80MDAwMCBjb25uZWN0b3Itc2VhcmNoLWV4aGF1c3Rpb24tYXVkaXQAFbBOBVkbHWcZXbFHbbAmbbA9VqM0MDAwMCBjb25uZWN0b3Itc2V2ZW4tc291cmNlLWR1bwATYfMHfypCAIOoIkGjJTMNbnhXMjQwMDAwIGNvbm5lY3Rvci1zaXgtc291cmNlLWR1bwAFzOXNzHLEkYGxXF0sl8PB01pFpDQwMDAwIGNvbm5lY3Rvci10cmlvLWN5Y2xlMjUtc2VlZDFiODJkZgC16QWrg5hK7AOP7/+Z8XZKcrnf+TQwMDAwIGNvbm5lY3Rvci10cmlwbGUtcXVlcnktZmxvb3IAZeHVAcQhVDLYnTblyhohz/mq8Mk0MDAwMCBjb25uZWN0b3ItdHdvLXRyYW5zZmVyLWF1ZGl0AJV+WEUzbc7PmvDLgE+AVi4PjP2xNDAwMDAgY29udGV4dHVhbC1wcm92aWRlci1wb29saW5nAE/7w8u0uHy0Oc57oUNnFydHtzcMNDAwMDAgY29udHJvbGxlZC1ibG9jay1zaGVhcgD1GgEN9qNrL8rAqVS50DcCzA2mSDQwMDAwIGNvbnRyb2xsZXItYm9yZGVyLWludGVyZmFjZQBaLRhS6pmYjVlR90f+6xiuzlRksDQwMDAwIGNvbnRyb2xsZXItc3RhZ2UtY2VpbGluZwD9AHlfuSuB7dvaTS7risYj9Pq7DDQwMDAwIGNvbnRyb2xsZXItdGhpbm5pbmctZ2xvYmFsLWNlaWxpbmcAooePgR8vUfZyMgcR6scGIcTm9N80MDAwMCBjb252b2x1dGlvbi1zbG90LWJvdW5kAEWjxN07B9UYbj2bql/hDLGlHes+NDAwMDAgY29vcmQtcm9vdC1wMTEyLWdsb2JhbC1nYXVnZS1zZWVkNjU1NDI1AF5HZYJkvUh+nZe7i9Gz5E7mIJPbNDAwMDAgY29vcmQtcm9vdC1wMTEyLWxvY2FsLXRldHJhZC1nYXVnZS1zZWVkODIzMgAgdUzQgynpp02LKE3xlAB1XCDnkDQwMDAwIGNvb3JkaW5hdGUtY25vdC1hZGRyZXNzLXNwZWN0YXRvcgChusk19Lj/8Pihhj4Uo/YyX8IptzQwMDAwIGNvb3JkaW5hdGUtY25vdC1sYWJlbC1zYXR1cmF0aW9uADdfbDvNeqZmdT6nVFKHxTcKXmlqNDAwMDAgY29vcmRpbmF0ZS1jbm90LXJlZ2lzdGVyLWJvdW5kAPZ4j8L+2xo+zXabLzmT4RChHeNsNDAwMDAgY29vcmRpbmF0ZWQtY3Jvc3NvdmVyLXByMjAwLXYyAAv3viq3x1/AGc2LhLBXqmjGLfW6NDAwMDAgY29vcmRpbmF0ZWQtY3Jvc3NvdmVyLXByMjAwAFRgZHerTGxMto+rvSBIahgK0PouNDAwMDAgY29vcmRpbmF0ZWQtZnJhbWVzLWFuZC1lbnRyYW5jZS1iYW5rcwDYPs2kdGTXkaSeXw3wuRz5FVI3hTQwMDAwIGNvcGllZC1maXhlZC1yZXZlcnNlZABxmk57pJn99OKzO6sPBEiHHqRchDQwMDAwIGNvcGllZC1maXhlZACmNqs5s6uUQ3iKXGR1mdgc5HIRgTQwMDAwIGNvcGllZC1yZXZlcnNlZACTgQ6qxkQWtJfWi8uPV8gtpJ9CJTQwMDAwIGNvcGllZC10b3RhbC1yYW5rAGqnHRI8qAeSLhCGOW5ZdQVrOStVNDAwMDAgY29weS1mbG9vci1hcml0aG1ldGljAD0c4Yb2TLkuXMJMjgPTfU2nGJZYNDAwMDAgY29yYW5rb25lLWFsbC1maWVsZC1sYXcAZnzaq5fwy80J18NoraZK1ZmzD5s0MDAwMCBjb3JhbmtvbmUtZm91ci1jb3JyZWxhdGlvbgDFH8kTz7VYJj2GsTJ3woa9uSncpDQwMDAwIGNvcmFua29uZS1mb3VyLW5lZ2F0aXZlLWFzc29jaWF0aW9uAD/1lA0uogqBM9wFGzFSeruOGljyNDAwMDAgY29yYW5rb25lLXBhaXItY29ycmVsYXRpb24A2aFgD1ajyygiLBefDYXd5YRPz/o0MDAwMCBjb3JhbmtvbmUtcGFpci1oZWFkZXItbGF3ABmBgiNloG2/nu9q/F5DUYKq+D9HNDAwMDAgY29yYW5rb25lLXRyaXBsZS1ibG9jay1jb3JyZWxhdGlvbgCG25aDj7ZOMPD0qD2NXNjd+5eQyTQwMDAwIGNvcmFua29uZS10cmlwbGUtaGVhZGVyLWxhdwCe7LA81bvWhSbSnSZh+3RTcAmkBjQwMDAwIGNvcmFua29uZS10cmlwbGUtbmVnYXRpdmUtYXNzb2NpYXRpb24Aqu2w9WJhSok/9S9fWHzHOGyupdA0MDAwMCBjb3JlLWRvd25zZXQtcGFnZS1ncmlkLWJpbmRpbmcACwcHYHcX7jpcss1q8nB5FP3qLPw0MDAwMCBjb3JlLXJvdy1vcGVyYXRvci1saWZ0AC5BsUmHI/awP7cJVMz01xqywWhXNDAwMDAgY29yZS1zZWN0aW9uLWNhcGFjaXR5ANkUDIcfbNXrqXuFrdW2QY3JArelNDAwMDAgY29ycmVsYXRlZC11cGRhdGUtZGVsaXZlcnkAJCZC8WTVVc+Z6MVg2GvXMehEJIw0MDAwMCBjb3VudC1leHBvbmVudC1idWRnZXQAKDU9v5JamD6jsPM4QQZ6FKHkokI0MDAwMCBjb3VudGRvd24tcmlwcGxlLXN1bQCXDyGeIR6mxcsa9498jhfzpNwOijQwMDAwIGNvdW50ZXItcmV2ZXJzYWwtYXVkaXQA6aj8gqu0F7nCHLOcteW2angNJLA0MDAwMCBjb3VwbGVkLWNhcC1pbmRlcGVuZGVudAC1pEjLgsfS39gDt5edGMjklFGDkTQwMDAwIGNvdXBsZWQtY2FwNzQwLWJpbm9taWFsNDAAEjtOaV2RN/Hup7xbZOx9r5de+IU0MDAwMCBjb3VwbGVkLWNhcDc0MC1ncmlkMzUAx3Y4HP9SKthXmF+QVsYXwrdrjG40MDAwMCBjb3VwbGVkLWNhcnJpZXItY2FwNzQwAD4ke7kh9gIhd4z1KQaNJTupMwY3NDAwMDAgY291cGxlZC1jYXJyaWVyLWluZGVwZW5kZW50LWF1ZGl0AOBpMKFy/UrmuZuX3FLO04yRw3JcNDAwMDAgY291cGxlZC1jb21wYXJpc29uLWJhcnJpZXIAECcwfs4GeWIoFqZwUE3XpmKqVO40MDAwMCBjb3VwbGVkLXQyMC13aW5kb3ctYXVkaXQAjZ/4F8uKz1rJVn4pyC6AQYWKIK40MDAwMCBjb3VwbGVkLXRhaWwtc3VwcG9ydC1mbG9vcgBHVexo1RGJpZuV0lLwKew/fGK+AzQwMDAwIGNvdmFyaWFudC1yZWFkZXItbGlmdADncJcZdailc1iBUacn5m9GN3KpPTQwMDAwIGNvdmFyaWFudC10cmFuc3BvcnRlZC1zaGVhcgARtvYSL/XsYW21w8f8WXkoELRFHTQwMDAwIGNvdmVyYWdlLWxhdy1yZWxpZWYtcGFyZXRvAAdw3GN+c74NWyzmWoUus0pvcYI/NDAwMDAgY294ZXRlci1yb290LXRhcmlmZgAOahYuyrBeZS00eweqmi/1zX+wRjQwMDAwIGNyMi1iMi1hdWRpdC1zZWVkNGY0MzVhYjcA9KXJYJyMqwobCFCcpTxITc6BbhY0MDAwMCBjcml0aWNhbC1yb290LW11bHRpcGxpY2F0aW9uAI6U14Hlk8ClTSZAhG/CkuVjmJeFNDAwMDAgY3JpdGljYWwtc2xhY2stbXVsdGlwbGljYXRpb24AYbt1mdyYeGaiJI3XZDLJZRuNdkQ0MDAwMCBjcm9zcy1lbmRmcmFtZS1vYnNlcnZhYmlsaXR5AKC5wGphRLF6xSPLEgX5lSV83TOxNDAwMDAgY3Jvc3MtZmVkLWNvbm5lY3Rvci1oYW5kb2ZmALimIpqbrhYzabRcwgn4INi/R1zvNDAwMDAgY3Jvc3Mtcm91bmRpbmctY2hlY2sACmAatmvU/Aqu9IxdA7jTJXkyFpQ0MDAwMCBjcm9zcy1zaGVhci1zdGFnZS1ib3VuZAB7HwqAg6z1S4S8bd/GdO+eqwUhLTQwMDAwIGNyb3NzY2FsbC1rZXJuZWwtZGVtb3Rpb24AJGE9BNlFMX1tOno/zB5vac9K1+o0MDAwMCBjcm9zc2NhbGwtdDM3LWVudHJhbmNlcwDUebiyfzWWcpg3zh0L6aPyIQOZIjQwMDAwIGNydC1hY3R1YWwtZ2VvbWV0cnktZGVzY3JpcHRvcgB8bzFD8poX/mN5nIz1yEIxf+ZTCDQwMDAwIGNydC1hZGRyZXNzLXN0cmVhbXMA2ctGYpM2DZDUZKz1G7eG97ac1VE0MDAwMCBjcnQtYXJiaXRyYXJ5LXNvdXJjZS1yZXBhaXIAZLDIAp5rDE4L0B1uxdlZLFLy/xQ0MDAwMCBjcnQtYXJlbmEtYmF0Y2gtdGhyZXNob2xkAB/dBBcQeG/18gUf7dLEvdb1UdqfNDAwMDAgY3J0LWFyZW5hLXJvb3QtYXhpcwCPyoAjGadnxuPF5QeR0p5Ok9ZdTTQwMDAwIGNydC1iaW5hcnkta2V5LXBvcnQAF/c8O58AWMFXGUmwrBbjYQEUv/M0MDAwMCBjcnQtYmluYXJ5LXJhZGl4LWNvbnN1bWVyAPnWjhjlj5UsoMiNFRKwSsGISuyeNDAwMDAgY3J0LWNvbXBsZXRlLXJlcGFpci1jb250cm9sALRUpoeHnnuOI99aemoaJUJ9650+NDAwMDAgY3J0LWRlbnNlLWd1YXJkLXNjYW4AllPKvJk9/i4Vm81xuK8Kf84vOdw0MDAwMCBjcnQtZW5jb2RlZC1iZW5lcy1yb20tcHJvZHVjZXIA7JCYKSPcK0OEmoGk9+2beFrZszI0MDAwMCBjcnQtZXZhbHVhdG9yLWluZGVwZW5kZW50LWNoZWNrAFVv45iKwuyVWiWCZ4T/wCgRTUebNDAwMDAgY3J0LWV2YWx1YXRvci1sYXlvdXQtYmluZGluZwBqCmbCtceLj7btK4dQZEagpNkKwDQwMDAwIGNydC1mb3VyLWNvbHVtbi1yZXBhaXItaW50ZXJmYWNlADSnbyWMTKthUqlulB0KmIlL9LoLNDAwMDAgY3J0LWludGVyY2hhbmdlLXdpZHRoLXRocmVzaG9sZAA1PUC1BiQr/3yT8zEu6O6g9EsxaTQwMDAwIGNydC1qb2luZWQtaG9sZS1yZXBhaXIAz1tosbC65fD56Y4D6hNiSwIMG9E0MDAwMCBjcnQtbWFzay1yZXBhaXItYnJpZGdlAAxcH/7lacOtW3oe+dIRN5kW6ubQNDAwMDAgY3J0LW1peGVkLXdpZHRoLWNhbGxlcgDElguK5eSDH+grokWAbcQBdO+0KzQwMDAwIGNydC1vbmUtaW52ZXJzZS1jYWNoZQBaNlzpK8C3KCt+mAbevq9IqDeSGDQwMDAwIGNydC1wYWlkLWtleS1zZXJ2aWNlAHYT65KpXhqDv12BiZCB82JfvgTINDAwMDAgY3J0LXJlcGFpci1xdWVyeS1idWRnZXQA+KZVR8Sb9HorfNJYdPWvEWyMFmA0MDAwMCBjcnQtcmVzZXJ2b2lyLWVkZ2UtYWxsb3dhbmNlANuldZ8rVb2NCeT0oBDV5xZVezk9NDAwMDAgY3J0LXJlc2Vydm9pci1lbnZlbG9wZS1wcm9kdWN0AAnRf+qcvY/euzt/2KJK90xklUQ2NDAwMDAgY3J0LXJlc2Vydm9pci1pbnRlcmNoYW5nZS1iaWxsAOZl/PkTaX/mmnglUlzrG/v3UwxdNDAwMDAgY3J0LXJlc2Vydm9pci1sZW5ndGgtY29uc3RhbnQADFIqAkx9Sq234VNOHasB5XBvnTo0MDAwMCBjcnQtcmVzZXJ2b2lyLWxlbmd0aC1oeXBvdGhlc2lzAPmoLOWl9rgrh4Pb0r4Tdxo0KmNMNDAwMDAgY3J0LXJlc2Vydm9pci1wbGFjZW1lbnQANdWg6VeYXpDUvZUo1YikxxpmN6g0MDAwMCBjcnQtcmVzZXJ2b2lyLXByb2R1Y3Rpb24tcmF0aW8AK691cColBS1KHkoQKl/DXUamx/E0MDAwMCBjcnQtcmVzZXJ2b2lyLXVuaWZvcm0tY29uc3RhbnQAkm0T0562BCnRu9LiJVS495DJ2rk0MDAwMCBjcnQtdHJhbnNwb3J0ZWQta2V5LXRhcGUARp8p0UpKXFOUJtzAKw4RUb6tszY0MDAwMCBjcnQtdHdvLXRhcmdldC1zdGVuY2lsALUiYnVNwqNvqwlQauuvPtD+BQGBNDAwMDAgY3J0LXVuYXJ5LXN0ZW5jaWwtcHJvZHVjZXIASZZZw+ab/XBMoxxv3o/v4ySDRIA0MDAwMCBjcnQtdW5pZm9ybS1ldmFsdWF0b3IAK++Z2ZsmIG9H0FYHtXr2s50NgYg0MDAwMCBjcnQtdW5pZm9ybS1yb20tcXVlcnkAiOxXbFh6/mRiTBbtzHLk/y+ET6k0MDAwMCBjdWJlLXhvci1yZXBsYXkA83VurOHuIK82trumKlsrrGYFyWo0MDAwMCBjdWJlLXplcm8tbGlmdC1vYnN0cnVjdGlvbgCrOPrtzLtH5kPUbCuURWEuc8AtfDQwMDAwIGN1YmUtemVyby10aHJlZS1mYWN0b3IA0QNVShwxA3R3B7WD1jA+QAdJOBA0MDAwMCBjdWJpYy1jeWNsaWMtaW52ZXJzZS12YWxpZGF0aW9uAK0jaNkk0TIvnsQEzuFHCynDasXCNDAwMDAgY3ViaWMtY3ljbGljLWludmVyc2UARqkh1uNEggYa7rYNJdExRUWEBlw0MDAwMCBjdWJpYy1zY2FsYXItY2FsbGVyLWJvdW5kcwC1pGOoKyMmq9LZTVweflcXpj2d7jQwMDAwIGN1dDU4LWFkZHJlc3Mtc3dhcC1tZW51AOQlVPsnhV9mIl6NVSIaiNZUKbN4NDAwMDAgY3V0NTgtc2VwYXJhYmxlLXF1ZXJ5LWZsb29yAEughW2qlj47Os/0jKutg7lPt/e6NDAwMDAgY3V0b2ZmLXNlcXVlbmNlLWxvY2F0aW9uAEE8RXQHmyRvcTUzQKrSA6/cP5CwNDAwMDAgY3ljbGUtc2NodXItb3B0aW1hbC1vcmRlcgDNmmKLKxIPeylByU4e2Pq4yNGbMjQwMDAwIGN5Y2xlNDctc2hhcmVkLWZyYW1lLWNvcnJlY3Rpb24Abzi9hmVLwPVemaLUk5r8dTmYtM00MDAwMCBjeWNsaWMtNDItZGVzaWduACwOy1w4kj8rW69vtyjzYatxveOnNDAwMDAgY3ljbGljLWJhbmQtZ2FwLXNvbHZlcgAwLxtvxWgKK0wV4zmbJ0QAOE2zLzQwMDAwIGN5Y2xpYy1jaGVja3BvaW50LWNvc3QAicSrwN9Vi8u3mBTfF4pj/KiavYo0MDAwMCBjeWNsaWMtZGlydHktY29tbXV0YXRvci1hdWRpdABIOBiYVk2XUrRcqAEnKyTQqk9QajQwMDAwIGN5Y2xpYy1mb3VyaWVyLXRyYW5zZmVyLWF1ZGl0AGBj3pkrZAAJaTadqdLKadcc73xFNDAwMDAgY3ljbGljLWludmVyc2Utc3RyaWRlLWJyaWRnZQDdoWTE/7rd4lMn23Qw3STRX/lgvTQwMDAwIGN5Y2xpYy1vdXRwdXQtcmVzdG9yYXRpb24AJXXdJ6O23GgRfwGFar9NkyRbKAQ0MDAwMCBjeWNsaWMtcHJvZHVjdC1nYXAtYXVkaXQA7YFi01zUDvXML4bHeYNgQztVf8M0MDAwMCBjeWNsaWMtcm91dGluZy1wZXJmb3JtYW5jZQBCa9xoWlP0RIfUOUtNfEfs1qc1gzQwMDAwIGN5Y2xpYy1zY2FuLXNoYXJwLWJvdW5kAC8jqsbZzwQ4Xl/DbRFTE4jpRVTNNDAwMDAgY3ljbGljLXNjaHVyLWxlYW4AH5A76+Qw/n6lElNWd6z8I7TaYLc0MDAwMCBjeWNsaWMtc291cmNlLXJvb3Qtc3RvY2sAeZFBo5JXOrJUDQ25osvxydqFL980MDAwMCBjeWNsaWMtc3RyaWRlLWVmZmVjdGl2ZS1kZXB0aC12YWxpZGF0aW9uACxYauVF9Gy3EANDW6UAwrFMkhJhNDAwMDAgY3ljbGljLXN0cmlkZS1lZmZlY3RpdmUtZGVwdGgAKzPc+MSrZ0JlyeaTDELL/CYJwQg0MDAwMCBjeWNsaWMtc3RyaWRlLWluZGVwZW5kZW50AK1Htc2c9hZlrwh3NWc/cUpiF2RNNDAwMDAgY3ljbGljLXplcm8tZWxpbWluYXRpb24AXY540nghceQxIvvKvjHGDFgMlAQ0MDAwMCBkMTAtcmVmbGVjdGlvbi1zaGFyaW5nLXNlZWRhM2RlZjgAZ8F494eezSZYifanS5QWoT6PbNY0MDAwMCBkNC1vcGVuLWNhcnJpZXItaW50ZXJmYWNlcwCLGMDvDiaTGR6SejR29f5TuJL59jQwMDAwIGQ2LWF4aXMtY29uY2VudHJhdGlvbjE0AIWEBsnKB/+eYXlGWTGOhEfU2jT2NDAwMDAgZDYtcHVuY3R1cmVkLWNhcGFjaXR5MTgACkCtJK3BhTynv2s+asmcZP4lK4Q0MDAwMCBkOC1pbnZlcnNlLXBhaXItdGhpcmQtcm9sZS1zZWVkZGYxZTY3AEySL5jln/MwHb/mYdhCNRKJRsVHNDAwMDAgZDgtbWl4ZWQtdGFyZ2V0LXNlZWRhOTdjOGUA++f3hJn8N+s0/rGpX4YdvodwgkM0MDAwMCBkOC1yb3RhdGlvbi1wYWlyLXNlZWRmZjU2OAC0qDPCuLNpm85xC7TXYzvoQ2hLgzQwMDAwIGQ4LXRoaXJkLXJlZ2lzdGVyLXNlZWQ4OWRlAMjgJVC6FFZgJCN4pfF7YQPZyMu3NDAwMDAgZGF0YS1jb3JuZXItcGVyZm9ybWFuY2UAe6tjhltLg+M97KcgbvN6u6Mmb7M0MDAwMCBkYXRhLWNvcm5lci1wcm9kdWN0aW9uAOadLtrAED9eBfGzH4Igizk+3VuhNDAwMDAgZGVjb2Rlci1jZXJ0aWZpY2F0ZS1jZWlsaW5ncwAxU9XVDJKbDCKcHMuSkY2CmLBoFDQwMDAwIGRlY29kZXItZXhjZXNzLXJhbmsAjZHoa8f3EZ7E/n8JdXmEpiC+j740MDAwMCBkZWNvZGVyLWZsb29ycy1jbG9zdXJlcwCOckAb8WRYCSimutdcr9pu6ExrzDQwMDAwIGRlY29kZXItZmxvb3JzLWZyb250aWVyLWZvcm1hdADr3yLjcMRI6tAwp9AeHQeijl7QSzQwMDAwIGRlZmVycmVkLWhlbHBlci1zdW0ANVj19HsFIgvmavXxRT4d5oLM5tg0MDAwMCBkZWdyZWUtZ2FwLWNsZWFyYW5jZQAqbOuTZ9sU55GlSMQJRzmhgW6IejQwMDAwIGRlbHRhLWNyb3NzLWNlbGwtaW5kZXBlbmRlbnQtYXVkaXQAqAEGIzzfASwc8aC6lSlqCxqMwu80MDAwMCBkZWx0YS1jcm9zcy1jZWxsLXRyYW5zZmVyAK7/QHy5V51J0SpplQ+2lQrZpJG9NDAwMDAgZGVsdGEtaGFsby1leHBvbmVudC1jaGVjawA0dch0sDhS/5Jkd0RF/uj9zXKjLTQwMDAwIGRlbW90ZTYzNS10MTYAQoJdHdSDyaxAN68i9eHhGo2DLrk0MDAwMCBkZW5zZS1wYWlyZWQtY29sbGVjdG9yACU0ZJc6qGE0LNNk/ASz52EjryJLNDAwMDAgZGVwdGgzLWNoYWluLWNvbm5lY3RvcgCsDxM2Z06+NQYsfIbHZW1TItcwrDQwMDAwIGRlcHRoNC1jaGFpbi1jb25uZWN0b3IAJdNv8frGPSmlBKibKAKpu1ad9Io0MDAwMCBkZXB0aDQtY2hhaW4tcm93bW9kZWwA+GUc0LBLl/MkT01EHa6bzwYN15k0MDAwMCBkZXB0aDQtY2hhaW4tdGFyaWZmADYOgETIMY+S0YaY2pFXwlneWW+RNDAwMDAgZGVwdGg0LWNvdW50LXZlY3RvcnMtY2hlY2sAs4/bbEP8y+1b4su/P6Xq0dffYxw0MDAwMCBkZXB0aDQtdHdvLXJvdy1vYnN0cnVjdGlvbgC8pdoJ7ICCBvOkU2Nft5V6rSueFDQwMDAwIGRlcHRoNS1jaGFpbi1jb25uZWN0b3IA8JG566PIyQBq+giCVwKxtC+QBGs0MDAwMCBkZXB0aDUtY29ubmVjdG9yLWluZGVwZW5kZW50LWJmcwDN8kCCjP2R8Yr8WQEU5EeqAkZxUzQwMDAwIGRlcHRoNS1jb25uZWN0b3ItbWl0bQBEwo3uApBgrJzuDbeZzBX+uRbOKTQwMDAwIGRlcHRoNS1jb25uZWN0b3ItcmVzaWR1ZXMA/qDD17zf9kh5V7SdiB4ZhfLa02U0MDAwMCBkZXB0aDYtYmluYXJ5LWNoYWluAOWkm39YBoleQHmS0qkNgX0+pc83NDAwMDAgZGVwdGg2LWNoYWluLXJldGltaW5nAGKkOm59I6XkrJNsPFM02LOmb9J6NDAwMDAgZGVzY2VuZGluZy1pbnZhcmlhbnQtYWxscAAqOXvgu9NuH3ZJhskBC0q2vMwdYjQwMDAwIGRpYWdvbmFsLWJhdGNoLWNvbW11dGF0aW9uAGySDMBt5dFL9GNoXMiq06+K/fSxNDAwMDAgZGlhZ29uYWwtbWV0cmljLWZ1bGwtYm94AKhiyoSa6U7W46eSQOSGEhhYpr2qNDAwMDAgZGlhZ29uYWwtcmV0aW1pbmctaG9zdC1ib3VuZGFyeQAMFge7smYzw0zkbyiRzATxkhoQrzQwMDAwIGRpYWdvbmFsLXRlbnNvci1wcm9qZWN0aW9uLWJhcnJpZXIAhljFdLNJIhobWzNhkLqYOf/awbc0MDAwMCBkaWN5Y2xpYy1zaXgtY2FsbC1ib3VuZGFyeQB61oFB6TaNi3pZzW3oY7crZJ5UnTQwMDAwIGRpaGVkcmFsLWFyYml0cmFyeS1jb3VwbGluZ3MATsVTUTSH1Vtfp3XVXo2SMXIZlgo0MDAwMCBkaW5mLW9wcG9zaXRlLXRyYW5zbGF0aW9uLXR3by1yb2xlLXNlZWRjMWZiMjkAnkiqo6srF38COguSbsEos4JwQdI0MDAwMCBkaXJlY3QtZGVsaXZlcnk1MDQtZ2xvYmFsADx3jxS+KaPKOjC0eBkdW2QGzEWRNDAwMDAgZGlyZWN0LWZsb3ctYm91bmRhcnktc2hhcmUAmawtaOZBRxtXCYvjpeLRnHAaXc80MDAwMCBkaXJlY3QtZmxvdy1jaGFpbi1yZWNlaXB0AKG+OoYmfr8ay2rIoOpSnj/LpGnjNDAwMDAgZGlyZWN0LWZsb3ctZXhwYW5kZWQtYXVkaXQA2WFbmqBRXProHVcxB85PRWAMU1I0MDAwMCBkaXJlY3QtZmxvdy1sZWFmLXdhbGsA47W/Z2x2mvDu1/jRuyZhfhzAOq00MDAwMCBkaXJlY3QtZmxvdy1sb2ctZ2FwAE2bIfDBRvdUAFMwctzSmnM9Emb9NDAwMDAgZGlyZWN0LWZsb3ctd2lkdGgtY2hlY2sAnsOQqYZdB1O8g9U89FyXGN66BWs0MDAwMCBkaXJlY3QtZnJhbWUtc3RhZ2UtYmlsbHMA6rNDdJHI+KPvzVwGriH/DaAStoc0MDAwMCBkaXJlY3QtbWl4ZWQtZmxvdwAw10zwvNdge9RzGqCpnNOC9R+k3TQwMDAwIGRpcmVjdC1zZWxlY3RlZC14b3IAEoyzzKcpiZ7kNUNkYeamvkFFFY00MDAwMCBkaXJlY3QtdHdpZGRsZS10YXBlcwBWi5TpocbBd+CpZyuolHUvOETGIzQwMDAwIGRpcmVjdDUwNC1rZXJuZWw5Mi1saWZ0cy12YWxpZGF0aW9uAIJJkJ++8Naxna4dToqDABW7r1GsNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLWxpZnRzANz8I4vLtcUuiXmK6uzaQX+5xuxUNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLXZhbGlkYXRpb24AfqvMN4pACBH1MMjfWkjYCJKdXBU0MDAwMCBkaXJlY3Q1MDQta2VybmVsOTIAhVIbDR+H0hevbSGh3XckspC2c1s0MDAwMCBkaXJlY3Q1ODQtY29tbXV0aW5nLXJldGltaW5nLWNvdmVyADLmucEm4Drje6KeXA1AwH7gEbqYNDAwMDAgZGlyZWN0b3J5LXByb2R1Y2VyLWludm9pY2UARG1qwbE6k1XNiJie6LBjRWvJ1gw0MDAwMCBkaXJ0eS1hbmNob3ItZWRnZS10YXJpZmZzAOEYXMwgA5GldyNz9B1Yxm6YywW5NDAwMDAgZGlydHktYW5jaG9yLXRyYWRlb2ZmANt799hTlr+5zyqvEdvwDeXYRD/dNDAwMDAgZGlydHktYnVmZmVyLXhvcgAuVaR9gCEiBHqaunje2sXZgR+f5jQwMDAwIGRpcnR5LWNvbm5lY3Rvci1jaGFydC10cmFuc3BvcnQAhpP9OxG9VUdVEQAoOqgw3Cra3h40MDAwMCBkaXJ0eS1jdWJpYy1wcmVjaXNpb24tdmFsaWRhdGlvbgDQ46gkjkapyXuzVM/WdKHHr+yiJDQwMDAwIGRpcnR5LWN1YmljLXByZWNpc2lvbgAy0XhKharBOC8XHTFZzB2gtU9itDQwMDAwIGRpcnR5LWRpc3BhdGNoZXItaW52YXJpYW50cy1zZWVkNzUAfTT2dUr690oWABVuNjE/h/fW5d40MDAwMCBkaXJ0eS1lY2hvLWludGVncmF0aW9uAEUBx+A3uidmtsZIABJdpE8gytC9NDAwMDAgZGlydHktZWNoby1tYXhpbWFsLWVxdWFsaXR5AOumorV04eUEoB+2uf39CnonVQy2NDAwMDAgZGlydHktZWNoby1zcGFjZS1hdWRpdAD13h7wL9zs2IgovxKjVU1ntDnNCDQwMDAwIGRpcnR5LWVjaG8tc3BhY2UtYnVkZ2V0AIi/e8P00D3WGUtC23E1m92sLwYaNDAwMDAgZGlydHktZW5kcG9pbnQtZGVmZWN0ACneniJRjQvt55WnDgsptWRVvN/MNDAwMDAgZGlydHktZW5kcG9pbnQtZXJyb3ItYWNjdW11bGF0aW9uAGOp4/142CJXuDUhKRXwa8f0JdYUNDAwMDAgZGlydHktZmFub3V0LWJhdGNoAPfJnwBuaf4fLCXZBNj4IBvpckZdNDAwMDAgZGlydHktZmFub3V0LWN1dC1jZXJ0aWZpY2F0ZQA0xAcfg9gVyNPkaimEWbR6KEfZ+TQwMDAwIGRpcnR5LWZhbm91dC1zdGFyLWNlbnN1cwDgezzrvejMuWQw4byERyDgF56jRzQwMDAwIGRpcnR5LWhvc3QtY3V0cmFuay1hdWRpdAC8QUJkpvI8Ye8VImaWY6uxCDdzajQwMDAwIGRpcnR5LWhvc3QtZ2F1Z2UtYmluZGluZy1zZWVkZWEyZQAfl2oQWvwMbinuUgiPySkKDSgt/jQwMDAwIGRpcnR5LWludGVydmFsLWNvZWZmaWNpZW50LWJvdW5kYXJ5AAEzzFA+y4oxYeqxrE0O0JliTv+RNDAwMDAgZGlydHktaW50ZXJ2YWwtcHJvcGFnYXRvci1hdWRpdABJQcdWPql2wNarAkqY0uj4pltMvTQwMDAwIGRpcnR5LW91dHB1dC1hbmNob3Itc2VlZC1kYTFlYzNmMAA8lKVj5B+7rD32bNZjukQBk75OmzQwMDAwIGRpcnR5LW91dHB1dC1kZWx0YS1zZWVkLWI5ZWFjMgAhX9zsSqJM0LZM21TXYD/k2jRasTQwMDAwIGRpcnR5LXBhZGRpbmctZXhjaGFuZ2UtYm91bmRhcnkAPJBRyMbNGrqd7rSATb6Kom/NEgY0MDAwMCBkaXJ0eS1wYXJpdHktOHEtb2JzdHJ1Y3Rpb24A24Mo1y/3diaKTyyW2eZ7yHhyyhI0MDAwMCBkaXJ0eS1wcmVmaXgtZnVsbC1ncmlkABHFeUx+8DVthp6r7fvqdMVOpjL6NDAwMDAgZGlydHktcHJlZml4LW1vbm9taWFsLWF1ZGl0ANmSVzFk+EYkXOXEMzJJY4g0NGrbNDAwMDAgZGlydHktcHJlZml4LXByZWNpc2lvbgAlxbrn8fDql1+7s/oVulU3AmTToDQwMDAwIGRpcnR5LXNoYWRvdy04cS1vYnN0cnVjdGlvbgAX6CrGm7NRwG/NKJKgebDtkTREwDQwMDAwIGRpcnR5LXN0cmlkZS1mYXN0LXBoYXNlcwCjoOH1SbUwbdhUMDybhea31mdU+jQwMDAwIGRpcnR5LXN0cmlkZS1waGFzZXMAJPys3/saErJi3BUitH3joWpGdMY0MDAwMCBkaXJ0eS1zdHJpZGUtcHJlY2lzaW9uALmnS6tVp9TupAwEY7eBsihZ1GQNNDAwMDAgZGlydHktc3RyaWRlLXNvdXJjZS1yZXVzZQBOhxip58KgDhyU/5Pznu6CUqATOzQwMDAwIGRpc2pvaW50LWZyYW1lLXVuaW9ucwC5MOoOA6JGGOpnvH/bjuqoA+V5fDQwMDAwIGRpc2pvaW50LWpvaW50LXRpZXMAlHd5rfBkT/GdM8CFpMJKPdjPHt40MDAwMCBkaXNqb2ludC1yb290LWNvbnRyYWN0aW9ucwCrHYfh9GHRTcyF8I9jHEh4ryi21jQwMDAwIGRpc2pvaW50LXRlbnNvci1mcmFtZS11bmlvbnMA5/9ad+gnMRzfql/kCMPoHmCp3oE0MDAwMCBkaXNqb2ludC10ZW5zb3Itc3VwcG9ydC1tYXNrcwDd+YkW9bhcgLD9lDrLM8mDM2nsyjQwMDAwIGRuLWJpcGFydGl0ZS1iYXNpcy1mbG9vcgBVf3GlOLVit3KNU/ywuegjOhvfUjQwMDAwIGRuLWNvb3JkaW5hdGUtcGFpcmluZy1zcGVjdHJ1bQAmqyhuebv+8bSD09i+WS6t0qqXuTQwMDAwIGRuLW9uZS1leHRyYS1nYXAAVy+l2O9+494pa9pAkMvTBsGFx2k0MDAwMCBkbi10d28tc2hlYXItcGFpcmluZy1mbG9vcgACxAXkfSTut6uHE9fduMBGQR9D3jQwMDAwIGRuLXVucmVzdHJpY3RlZC1yb290LWNvZGUtZmxvb3IAHzCjdSsfQvvLsnvHOGcqrKh4SXc0MDAwMCBkb3duc2V0LWJsb2NrLXNvbHZlLWJvdW5kAGTj9Dsf+Xd7AWfYtZoECps3V1MSNDAwMDAgZHVhbC1iYXNpcy1ncmFtAEAPmRdh55F7GbZ6fnRPSlLMvm4/NDAwMDAgZHVvLXRvZ2dsZS1jb25uZWN0b3IAiPvVKkz3OzHZqDGXbegJQ15ZflY0MDAwMCBkeWFkaWMtYWZmaW5lLXN0cmVhbXMA8bAH8p5oOyilQsYn7MUMLQ2Ms840MDAwMCBkeWFkaWMtYml0LWFsbG9jYXRpb24AR20glF3bH3pXzn2OdUXYdsoOuU80MDAwMCBkeWFkaWMtYmxvY2stY29tcGlsZXIAITJuYwOGeg0LT3ZMwYPiLMqV0hs0MDAwMCBkeWFkaWMtY2VudGVyLWFuY2hvci1ib3VuZABIoJYoBhW9MaFg9SXKmffrzzCFMDQwMDAwIGR5YWRpYy1jZW50ZXItYmFzaXMtc2hlYXIAdhFnQibtP6rBvbbtxDfRKkA21E00MDAwMCBkeWFkaWMtY2VudGVyLXR3by1zaGVhcgDNYQbAiwqr2YTPgD3/bMVMlg+oLTQwMDAwIGR5YWRpYy1mcmFjdGlvbmFsLWdyaWQAu8dVnEZy4XHt9Dq4C4AIDCVM5JE0MDAwMCBkeWFkaWMtaG9ybmVyLWRpcmVjdGlvbgA5/7Jqg1XQdRkXU2Njs6O+lEMhjzQwMDAwIGR5YWRpYy1xdWVyeS1wYWlyALEBi189G+Z7lJ4OdsVZxzJ3dNr9NDAwMDAgZHlhZGljLXF1ZXJ5LXJ1bnMAejeC/udf4fTGtqz/M7FtVxZFbYU0MDAwMCBkeWFkaWMtcmFua29uZS1ib3Jyb3dpbmcAWx5loNrDSTNPednYOiEYtn8BFOQ0MDAwMCBkeWFkaWMtcm90YXRpb24tc3dpdGNoLXRhcmlmZgDj+HdpGdJqXdWQBzkFww8ybd1BPTQwMDAwIGR5YWRpYy1yb3VuZGluZy1hZ3JlZW1lbnQtZGVuc2l0eQCWpn3Z51+T2D6v0Cdz38+9jiLc1DQwMDAwIGU2LWFkYXB0ZWQtcGFpcmluZy1wcm9qZWN0ZWQtZ3JhbS1zZWVkMDg4MwDc/KPPNJIHB1Q2DisubLaYrXZ2MTQwMDAwIGU2LWNvb3JkaW5hdGUtYmlsaW5lYXItZm9ybS1zZWVkOGU5Y2YyAJjxfEiZmmJZw4SlY+S32Hluo59mNDAwMDAgZTYtZDUtZ3JhbS1yZWFsaXNhdGlvbi1yaWdpZGl0eQB8XGav6vxJNAb3N0kw6KG359LcZDQwMDAwIGU2LW9uZS1leHRyYS1mcmFt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UKZhiWObmk9M/E80MDAwMCBlaWdodC1zb3VyY2Utcm9vdC1jb2RlAP5X8+TUB8yTz+UNG393PkF96pAdNDAwMDAgZWlnaHQtc291cmNlLXNpbmdsZXRvbi1mbG9vcgDvRw6rhY3bRZtw8jBSDGg5hE2OCTQwMDAwIGVpZ2h0LXNvdXJjZS13ZWlnaHQtZm91ci1zZWVkODQwODMAMimQCX+6pXJpAzmiwl9RKk2KaHM0MDAwMCBlaXNlbnN0ZWluLWFkYXB0aXZlLWFmZmluZS1mbG9vcgBEpBVtzGRFeEuRfbj5v4xiCbqmJDQwMDAwIGVpc2Vuc3RlaW4tYmluYXJ5LXJhbmstYXVkaXQtc2VlZDc3AIZdn4pZZyTDXHS06iseU/Kzu3SMNDAwMDAgZWlzZW5zdGVpbi1jbGlxdWUtY29weS1ib3VuZAD2Xvt5+XeX47OkjaSJDVMb0CdRFzQwMDAwIGVpc2Vuc3RlaW4tZWxldmVuLXRvdGFsLXNlZWQyMgB4LB2Tup/9xbuc0xHdF744gilDrjQwMDAwIGVpc2Vuc3RlaW4taW50ZWdlci1yYW5rAPIAMPocle3e4rCpglF8VMR7JRPnNDAwMDAgZWlzZW5zdGVpbi1tZXNzYWdlLWNvcHktYm91bmQAbTzWDtp8XRgIg1M1hGgPCJF+5m40MDAwMCBlaXNlbnN0ZWluLW5vbmxpbmVhci1yZXN0cmljdGlvbgC8+/+oIMVQfgtwTsBO1JbOWveHSjQwMDAwIGVpc2Vuc3RlaW4tcGhhc2UtY29zdC1zY3JlZW4AJh1g5o2v9ptc/kqC2ghFqZMZl9k0MDAwMCBlaXNlbnN0ZWluLXJlZHVjdGlvbi1jb3B5LWZsb29yAOb2r05KECWQpkPXoR/NQWHLexH1NDAwMDAgZWlzZW5zdGVpbi1zdWJtYXRyaXgtY29weS1mbG9vcgCT+qFCCJh9LB7OQIhVGjhX0dvA9jQwMDAwIGVsZW1lbnRhcnktYWJlbGlhbi1kaWFnb25hbC1taW5pbXVtAHgCnqjTqqGXaaxAkzy/EP1ivAfSNDAwMDAgZW1pdHRlZC1sb2NhbC1pbnRlZ2VyLXJlcGxheS1zZWVkOTAA5LTevt51LzeOvX0pK/XTL5GSgJQ0MDAwMCBlbmNvZGVkLWJhbmstY3JpdGVyaW9uLWF1ZGl0APDKo/zxoQn28Y2LD5yqX+FnRuDpNDAwMDAgZW5jb2RlZC1ib2R5LWRlcHRoLWJvcnJvd2luZwClGeGw1C8foGGVQHiafO4CYHq5STQwMDAwIGVuY29kZWQtY2hpbGQtc3BlY3RhdG9ycwArTV3redZMgtPrGhCs3U6stZKYLzQwMDAwIGVuY29kZWQtY3J0LWVudHJ5LWxpZmVjeWNsZQBRWI5SHWPJ91tDRZmWmbj2Yis84zQwMDAwIGVuY29kZWQtY3VycmVudC1jcnQA5gG5L2Yi1jwbcKh7RXSbvO3iLJY0MDAwMCBlbmNvZGVkLXBoYXNlLWJhbmsA/GojO8qT8lAssBT+vlJB+oHmkr40MDAwMCBlbmNvZGVkLXN0cmljdC1ib3Jyb3dpbmcAAAG58jk8LFJBY+BGU3bzImMSkxE0MDAwMCBlbmNvZGVkLXR3aWRkbGUtY29udHJvbGxlcgCUDC0FvikNkH+W45E+Co2wdgD7ijQwMDAwIGVuY29kZWQtdHdpZGRsZS1kaWFnb25hbC1wYXNzAGF3ChZduGocAXsMC5cM5ZDmazNiNDAwMDAgZW5jb2RlZC10d2lkZGxlLXBhY2tldC1jb25zdW1lcgCuxbg8W9CChz22OYPloRrfvYNIZjQwMDAwIGVuZC1jYXAtb2JzdHJ1Y3Rpb24ArOSvntlvJo/b9K1H0KDaS1AoY1c0MDAwMCBlbmRwb2ludC1tYXRjaGluZy1vYnN0cnVjdGlvbnMA9FM+/7zWZLPRUcGwoEOGymm24GQ0MDAwMCBlbmxhcmdlZC1wb3NpdGl2ZS1mcmFtZS1uZXR3b3JrcwDDC4qWqBdS6uOW13xiT8RNMMxh+TQwMDAwIGVwcy1oYWxvLWV4cG9uZW50LWNoZWNrAOyNidE9IsAF5KGddiP+DjEwRQZ5NDAwMDAgZXF1YWwtbm9udW5pdC1mYW5vdXQA+6Re/RlNXroPLkBdvyanQa90n2M0MDAwMCBlcXVhbC13ZWlnaHQtY3ljbGUtZGlhbWV0ZXIAMg0dhmqk96eA7p/HU8wCRXobC1g0MDAwMCBlcXVpdmFyaWFudC1ncmlkLWZyYW1lLWNsYXNzaWZpY2F0aW9uAHkNuFYWwtjomvLhPCZxiZEup3wRNDAwMDAgZXRhbGUtdGVuc29yLWRldGVybWluYW50LWltYWdlAAvJ5QrAF82T6mmSKDFyEjdyht86NDAwMDAgZXZlbi1yZXR1cm4tbGVuZ3RocwDeZDh1Xx17C2qVmxjDArfdBakK6zQwMDAwIGV2ZW4tc3Vic2V0LWR5YWRpYy1rZXJuZWxzAEhPxrM8lm3mxxRk/MOxOMdxeaTENDAwMDAgZXZlbi10YXJnZXQtY25vdC1jZW5zdXMAo1eK1ZAY2CizklAOxpXdInAxNO00MDAwMCBldmVuLXRlcm5hcnktZGlzam9pbnRuZXNzLXJhbmsAYYd97ywpjjQAsld4RXkX+Sv1TWA0MDAwMCBleGFjdC1jaGlsZC1pbnRlcnZhbC1yZXVzZQAc3S2WkaQ9aCy50xLI0mwq3sADSzQwMDAwIGV4YWN0LWNvYXJzZS1leHBvbmVudGlhbADKCxHgW7XW2P9AiuK7N/6amBFKyDQwMDAwIGV4YWN0LWV4cC1wZXJmb3JtYW5jZQBPgBxUL1Mg08ocWKdzW7qHH3k0sDQwMDAwIGV4YWN0LWZhY3Rvci13b3Jrc3BhY2UAtcHHlA723y41Qo4ThvtqaicaYUc0MDAwMCBleGFjdC1mcmFtZS1jb250YWlubWVudADkRQ12142VA51w+bi6OiA8Y3ayBTQwMDAwIGV4YWN0LWZyYW1lLXRvb2xraXQAOJ6+EcRPaqWP0CbYTr+nnUr+ab40MDAwMCBleGFjdC1vbmUtc2xvdC1ncmFtAKRkuWePIkjUorJYy5YMlCRrfEZcNDAwMDAgZXhhY3QtcmF3LWxvZy1jb21waWxlcgCkhjQWwk3ziZTIlSono7Rw/9xBfDQwMDAwIGV4YWN0LXVuaXQtZ2F1Z2VzADHO64ef21hzwzN6vADU9ud+DNVZNDAwMDAgZXhjbHVzaW9uLWVtYmVkZGluZy1tYXNrcwBD+XT2FHbhSs27UrfxNF6Lf+iTxTQwMDAwIGV4Y2x1c2lvbi1zdXBwb3J0LW1hc2tzAMWzZSDnCO+IUkegz9peQ8ZRSjOsNDAwMDAgZXhwYW5zaW9uLWF4aXMtbWFyZ2luANRcwZRwNPtufQSXBQ7EWRaJLnVYNDAwMDAgZXhwZXJpbWVudC1sb2cA8eMNSiHwd2x+hOl9czlebHVhMi80MDAwMCBmMi1yaWdodC12ZWN0b3ItZGlhZ29uYWwtbWluaW11bQD+bqOehiY3B5Qko1sUVpc3q76y8TQwMDAwIGYyLXNpeC1kaWZmZXJlbmNlLWJhc2lzAPaMPHlnSGLMdBbv76DQumi8rHbENDAwMDAgZjMtYWRkaXRpdmUtY29ubmVjdG9yLTF4MQCS5inRghr2H0BrPFhp8V4r6DzSyTQwMDAwIGYzLWZpdmUtc291cmNlLWNvbm5lY3RvcgDOTH2gIWfUG3r21s6seMYUEesjsjQwMDAwIGYzLW4tc291cmNlLWNvbm5lY3Rvci1leGNlc3MAnMXvCmiKF/iM9nkVpx64U5KbwrA0MDAwMCBmMy1uLXNvdXJjZS1jb25uZWN0b3ItZmxvb3IAi4Z9VVs7KKJDaLtMUtzrl9YfMUc0MDAwMCBmMy1zZXZlbi1zb3VyY2UtY29ubmVjdG9yLWZsb29yAJXODa8L0KFu+X7DTyGLyFap/gJpNDAwMDAgZjMtdGVybmFyeS1kZW1hbmQtY29ubmVjdG9yAEgyMSLuLOxFq24JYaKo+fu8zJYpNDAwMDAgZjMtdGVybmFyeS1zZXZlbi1zb3VyY2UAN34/xWt8RwErkSQqGrNtNsE/ni00MDAwMCBmMy10ZXJuYXJ5LXNpeC1zb3VyY2UAdmTL7K++HcIpwBD11NA7LMe74os0MDAwMCBmNC1hbHRlcm5hdGluZy1pbnRlcmZhY2UAL8hdAoLcLXcH1T7pQ95V6H1D/D00MDAwMCBmNy0xN3BvaW50LWNvdmVyLWF1ZGl0LXNlZWRjZmEyMTVjMgAAjt4shOvdcoPzEPOD1Rj0ut6xCjQwMDAwIGY3LTE3cG9pbnQtZm91cmllci1vYnN0cnVjdGlvbi1zZWVkYjVlMzE4ZmUA3nNRcjlG1lKVUE7qntHOAviqY0g0MDAwMCBmNy0xOHBvaW50LWF2NDIta2Izai1iMQCwF4yHlUMnU3PQeWZng6TIVpySGTQwMDAwIGY3LTE4cG9pbnQtYXZ0YWlsLXNlZWQwMTBkMjZmYQBoE/qXfOK7TSyxL/IfqK/7yUU3qTQwMDAwIGY3LTE4cG9pbnQtY292ZXItcXVlc3Rpb24tc2VlZDZkMzQzNTZjAAaiGI2UNNmwId+f5xxRgF4/8PXQNDAwMDAgZjctMThwb2ludC1yZW1haW5kZXIta2IzaS1hMQCTfpWLcoe4X1O86siGKaYpBusATjQwMDAwIGY3LTE4cG9pbnQtdGlnaHQtY2xhc3Nlcy1zZWVkNGMxZTdiMzAA/J6Fofqo3gsslwoeBPPZ3jeaiSo0MDAwMCBmNy0xOHBvaW50LXZhbmlzaGluZy1zZWVkZmM2MTg3MjIAbcSrDINpMGS5oXZC19CiYwaBHBU0MDAwMCBmNy1iaXQwLWZhbHNlLXBydW5lAAak4uCQyymRCS3ngzpPDG6Q11NnNDAwMDAgZjctYml0MC1mdW5jdGlvbmFsLWNsYXNzaWZpY2F0aW9uAH6F/c/E4rr6jUOqteR/optvboo5NDAwMDAgZjctY29kaW0tb25lLXN1YnN0aXR1dGlvbi1zb3VuZG5lc3MA5lkregoLeGpiWZy8Qc9tL8/8X0s0MDAwMCBmNy1maXJpbmctbjUtbGVuZ3RoLWNlbnN1cwAYda64/pGeY8tw+Uok3h75FrwNYDQwMDAwIGY3LWZpcmluZy1uNy1jZW5zdXMAVR+t0ThlMm+EIPMKRXPbXzXGjXc0MDAwMCBmNy1maXJpbmctdGhyZXNob2xkLWFsbC1uACGFPyQOW3kODkrghRv9vUHvTkLKNDAwMDAgZjctZml2ZS1sYWJlbC1pbmRlcGVuZGVudC1hdWRpdAApokp6Yfnk4onlGdQd6ZrKVGJ/0DQwMDAwIGY3LWZpdmUtbGFiZWwtcHJ1bmluZy1wcm9vZgB95vU3xyw2q7r6ApFveWRMOZQvTjQwMDAwIGY3LWZpdmUtbGFiZWwtc2hhcnAtY2FwAMGnmCMObhCcSfY212hYi+ZqVnRaNDAwMDAgZjctZm91ci1zdGF5LXBydW5pbmcAt1FSzID4WQz/N93p/+iyfBFq9cs0MDAwMCBmNy1mdW5jdGlvbmFsLWluZGVwZW5kZW50LWNoZWNrAK/qEN2A5pR3p+ZW7LM7NuZrUqbdNDAwMDAgZjctaW5kZXBlbmRlbnQtZnVsbC1yZXBsYXkALwnTsTpZ6Jh7SCG2p+g2a4oFAiQ0MDAwMCBmNy1sMjItY2Vuc3VzLXByb2JlAAEyaz6X9ygICo5zeXZrD+KePJ3HNDAwMDAgZjctbDIyLWNvbmZpbmVtZW50LWF1ZGl0AM6+7MUTq9I1mzY5yY9E0CN7i5HMNDAwMDAgZjctbDIyLWRlZXAtc2hhcmQtY2Vuc3VzADaCXw9gK2sNZbiJOjapcyeCclCINDAwMDAgZjctbDIyLXJlY2VpcHQtZG9tYWluAF1j6IZmSDiAxX+DgOf4WmTyk2vnNDAwMDAgZjctbDIyLXNwbGl0LWRvbWFpbgALXZtZQohj/JZGXlOlF4EFbAKljzQwMDAwIGY3LWwyMi11bmlvbi1jZW5zdXMAxWyMKD5FcJdwi/AZ4Qq3lBnSOHw0MDAwMCBmNy1tb25vdG9uZS1maXJpbmctY2xhc3NpZmljYXRpb24AOYvr3z9Kh+urLnHKDpD9tBoDwFM0MDAwMCBmNy1tdTItZXZlbmhhbGYta2Izay04OGExAGsWXsAjtm0x+eNHzr/6AAaIQQ6HNDAwMDAgZjctb25lLXBvaW50LXBhaXItY2VpbGluZwA6yHtatTF5eR/9pAIdVJGjCIL/nDQwMDAwIGY3LXBhcml0eS1tYXNrLXJlcGxheQCX0AskOYHGpSMnQopq11bKvaPHHzQwMDAwIGY3LXByZWZpeC1jYXBhY2l0eS1lbmdpbmUAr1FYYmk+rb8YJHgM7YAbwwinfo00MDAwMCBmNy1wcmVmaXgtbWF0Y2hpbmctY2FwYWNpdHkAyPfJDzqjIumf9x6xl97Rfa3Qnuk0MDAwMCBmNy1zZXQtd29yZC1wcnVuaW5nLWJvdW5kYXJ5AHM3G79/YFji/OkelDJuoNDs1NqJNDAwMDAgZjctc2hhcnAtY2FwLWluZGVwZW5kZW50LWF1ZGl0AOXop/bgOLWCQDyCHVpkXEt6bFkHNDAwMDAgZjctdW5pb24tc3VwcG9ydC1hdWRpdAAoHZxwa9spaZ9GYWL0KkQLRmUfDTQwMDAwIGY3LXdlaWdodC1wYXJpdHktY2Vuc3VzLWNvcnJlY3Rpb24AFNasx+jk/OLZBerW3B3F+jYb8pk0MDAwMCBmYWN0b3ItcGVydHVyYmF0aW9uLW1hcmdpbgCDEreq8+BtlsBMOcZ01YsAHF1dpjQwMDAwIGZhY3RvcmVkLWNvZGUtdGFwZQBehetUqcKC4wox4Wz/2egXBmOU8TQwMDAwIGZhY3Rvcnktb3B0aW1hbC1mYWNlLXNlZWQ3MwAIdz0WyE9AkidO8kx6uv+T90+1qTQwMDAwIGZhY3RvcnktcGVyc2lzdGVudC13b3JrLXNlZWQyMwD7FS1KZlXGiJlm0TRQvY+qJxSVOzQwMDAwIGZhY3Rvcnktd2luZG93LXN5bnRoZXNpcy1zZWVkMjMAOX1wvQtZ7TQq5WZcTNBaaGwBMTQ0MDAwMCBmYWxsYmFjay1jaGlsZC1jb3VudACUeAVcp3MBU4i6iZgIdnLp5Scf4jQwMDAwIGZhbGxiYWNrLXN3YXAtZXhjZXNzLXVuYm91bmRlZAAeay25dhbdrHXYT2feMV9VSBYimDQwMDAwIGZhbGxiYWNrLXN3YXAtcmFuay1ib3VuZABjE3mv7YZHoXbOenSBb1RUaLXK6DQwMDAwIGZhbmluNC1hbGlnbmVkLXNvdXJjZS1zdHJlYW0tc2VlZDk5ODNhNjE0AKO1kU6WsBFudu1wN6CCE6rXfRxvNDAwMDAgZmFuby1jZW5zdXMtY29tcGFjdC1zdG9yYWdlAEvOWWFvNx7E/YKD6dhRrp6kCiZbNDAwMDAgZmFuby1jZW5zdXMtcm93LXRhYmxlcwDby1d24K/EfeI8Y/O/dcLh1r4wLzQwMDAwIGZhbm8taW5jaWRlbmNlLWN5Y2xlcwBoKol9yTWlzomxb4uUBC6mQ55K/zQwMDAwIGZlZWRiYWNrLWNsZWFudXAtYXVkaXQtc2VlZDcyANtV5zgCoo7KZjFCSWwDBd4N6LkDNDAwMDAgZmZ0LWNhcnJ5LXJlY292ZXJ5ACGXj2sPsf9KvKcQrxPDbHE2s8R6NDAwMDAgZmZ0LWRpcnR5LXNoZWFyLWN1dHMAb2QMy9hcLMxaJ0lQ7/qfooVasH00MDAwMCBmZnQtc2V0dXAtZ2xvYmFsLW1heGltdW0AOupk/1PIUZFeapHIXDBExwQI9NM0MDAwMCBmZnQtc2V0dXAtc3VtALtchkNvfUY0nqrg6UnJggccm3ohNDAwMDAgZmZ0LXNwYWNlLXJhdGlvAIsLUT4TCzlAMyTZ4gvC4+FLC9QdNDAwMDAgZmZ0LXRpbWUtY29uc3RhbnRzAIbbO0FYr/74vePkxlPIYL2PkYgcNDAwMDAgZmZ0LXdvcmQtcGFyYW1ldGVyLWJvdW5kcwAw3m7HORsdD7sL8jHYauO8H2LMezQwMDAwIGZpYm9uYWNjaS1zY2FuLWZsb29yABhOB0n9Vf+RKfxDyOMdXPZRRUmZNDAwMDAgZmlsdGVyZWQta2VybmVsLXRhcmdldDEyMACF4fgsJmEv7rFppGvYh4X1G/DyFzQwMDAwIGZpbHRlcmVkLXN1cHBsaWVyLXJlZ2lzdHJ5ABYWWrY935/ITuNq55fPy7aQa4cwNDAwMDAgZmlsdHJhdGlvbi13YXZlZnJvbnQAbzw3mYZjgX/AeUtykM5IXvNQYhg0MDAwMCBmaW5hbDQ2MTAtaW5kZXBlbmRlbnQtYWRtaXNzaW9uABmxq85o4yI5vYrWq/l5WE65OtJpNDAwMDAgZmluZS1lbmRwb2ludDMwMC10NzQtazU1NAAE0aHYhSUbGsqHurajheX9Hd9HbDQwMDAwIGZpbmUtcHJpbWUtc2xhY2sxMDAzMADNDyKrzvNKfx08SiEhXXqazi8dXjQwMDAwIGZpbmUtcHJpbWUtc2xhY2s5NgAxtOOaAYGvZxhihUDAD7Yg2C5RwDQwMDAwIGZpbmUtcHJpbWUtdHJ1ZGdpYW4tYXVkaXQAz/LnbZsa0PxiiGkzm+N9DWwvlOo0MDAwMCBmaW5pdGUtYml0LXJhbmstY2FjaGUtc2VlZDg3ADXYN5z1ViaV67XyNiOL9BHBzymVNDAwMDAgZmluaXRlLWNvbW11dGF0aXZlLWZhbm91dAAENVF+BXavm/yoUSxu2M0iQv40/TQwMDAwIGZpbml0ZS1kaWhlZHJhbC1jdXQtYm91bmQAU7ZpABpMGxWDbKjkCnlYmRIi1PI0MDAwMCBmaW5pdGUtcGFya2luZy1mcmFtZXMAcGlKb1xy6MEDmOlbSo2gLvQX/WU0MDAwMCBmaW5pdGUtcmluZy1zb3VyY2UtaW5zZXJ0aW9ucwBsrJEdoiMX1ai6fuCy9stxWyZ2yDQwMDAwIGZpbml0ZS10YWdnZWQtY2VudHJlLXJlc2V0AMgPQSJxYO5JmFIMykOUG0YvbMoINDAwMDAgZmluaXRlLXdpZHRoLWNhbGwtbWl4aW5nLXRyYWRlb2ZmAAmydmVlK0p+BY3uS9qXGPzYg5GWNDAwMDAgZmludG0yLXJlYWNoYWJsZS1hbHBoYWJldACFHoRpG1msgJHf9L7AuJVYujLgzjQwMDAwIGZpcnN0LW5vZGUtY29tcGxldGUtc291cmNlLXJlc2VydmUA31ZWOTDM4y77tcAyxDSvJ7rDPzU0MDAwMCBmaXJzdC1ub2RlLW51bWVyaWNhbC1hbGxvY2F0aW9uLXByZWZpeADetLCuB/S3bJJDQpVMT41gzm92VjQwMDAwIGZpcnN0LW5vZGUtcmVzaWRlbnQtZW50cnktZ3JhbnQApAuXnhde7VySJlEmKpgxt++V3sU0MDAwMCBmaXJzdC1ub2RlLXNldHVwLXJlamVjdGlvbi1vd25lcnNoaXAAYMHgAbBfEX/U0WFmXTstkeq7pFg0MDAwMCBmaXZlLWNlbGwtYmFzaXMtb2JzdHJ1Y3Rpb24AGaZWqAvwqqluFG2bIg9E9wKyFNc0MDAwMCBmaXZlLWN1YmUtYXJiaXRyYXJ5LW1hc2sAp2Qr5yG+5wsLNi0T6Nw33jES0xw0MDAwMCBmaXZlLWN1YmUtY29kZWQtY29weS1zZWVkNDIAvkAgA+oXwiFuRcYu1/m3SsX77LE0MDAwMCBmaXZlLWN1YmUtcXVhZHJhdGljLWNvZGUtc2VlZDQ0AElUC90HHKkW2NMBrnOaB0f7gXC0NDAwMDAgZml2ZS1jdWJlLXRocmVlLXRvdGFscwCR728PZ7NrBrFWgVwiQGcbxaSJ2DQwMDAwIGZpdmUtY3ViZS10d28tcHJvZHVjdC1tYXNrcwBBDRr+OheVrASTISwgFzXbq2fmFjQwMDAwIGZpdmUtZXZlbnQtZ3VhcmQtY29ycmVsYXRpb24AeKUARsLYz1iTAgLKTrslMvVNvIY0MDAwMCBmaXZlLWluLWZvdXJ0ZWVuLXBhdGgtZGVwdGgAFEh5PkyOJmi7er4UCB7HgmZkpcU0MDAwMCBmaXZlLWluLWZvdXJ0ZWVuLXNlY3Rvci1hdWRpdABqIcJtH4Lc0K84Ov1X+SJrAf6e/jQwMDAwIGZpdmUtcGxhbmUtcG9ydC1wMTEyLXNlZWQxZjdmZGZlNACm64pwc2BOh2UdL8SFRvCLIJMkmTQwMDAwIGZpdmUtcG9ydC1xdWFkcmF0aWMtZGVjb2RlcgBwhcTGHRpPNUiwgvehkt7lQA0GaTQwMDAwIGZpdmUtcmVxdWVzdC1kZWNvbXBvc2l0aW9uLXN0cnVjdHVyZQCHIuTRdNV9UGy/hR3QEV0tPgPeWTQwMDAwIGZpdmUtc291cmNlLXBhcml0eS1oeXBlcnBsYW5lcy1zZWVkNTk1ZQDU35VgA19/Pvja1rXEt1V3W3s7QTQwMDAwIGZpdmUtc3RhZ2UtZ2VuNC1iYW5rcwBw2Fmcx/hAJRpCmBBa2iPdJzCjxzQwMDAwIGZpdmUtc3RhZ2Utc291cmNlNTI3LWJhbmtzALNKvs2HCj1UROzyOZISoyrd23meNDAwMDAgZml2ZS1zdWJzZXQtY29tbW9uLWZyYW1lLXNlZWQ0OGIAga5yWintIYDrSmOm0dQel+F7tes0MDAwMCBmaXZlLXN1YnNldC1waHlzaWNhbC1hbmNob3Itc2VlZDQ3ABVq2dnv+bfm/k6ckVobX5ajoGWNNDAwMDAgZml2ZS1zdWJzZXQtc2hhcmVkLW5vZGUtc2VlZDQ4AOh1AIzXKLEZor6R6an2l7/soHYyNDAwMDAgZml2ZXN3YXAtYWx0MTMtY29tbXV0aW5nLXNjcmVlbgAkbRCeaSByEqb1X3wkIjmaFeLTeTQwMDAwIGZpeGVkLWJhbmstcmVjdXJzaXZlLXJvdy1jYWxsZXIAVkzuT8kM0cWTqcmRL41viAw3aWw0MDAwMCBmaXhlZC1mb3VydGVlbi1iYXNpcy13YWxrAHb++IgLxHmKCGWNMfGXYK4c9t59NDAwMDAgZml4ZWQtZ3JpZC1oYWxmLWFkZABgBIGD/1OyUs9tK0YWIay/c51bZDQwMDAwIGZpeGVkLXBpdm90LWpvaW50LWNsaWZmb3JkLWNlaWxpbmcAWbJbp4zIh7CrpgVucQm+gs4bfis0MDAwMCBmaXhlZC1yb3V0ZS1pbmRpdmlzaWJsZS1pZGxlLW1hc3MAaE8L/LwE4ZU1uUzMDVNyWItxLII0MDAwMCBmaXhlZC1zdXBwb3J0LXVuYXJ5LXF1ZXJ5LWJvdW5kcwDM3mjWXoBDQTVbQTEYQLF8kgpTtzQwMDAwIGZpeGVkLXRhcGUtYWZmaW5lLXNoZWFyAGn2nrrvGUll6/ZUgLgBUSnIyWQuNDAwMDAgZml4ZWQtdGFwZS1vcmRlcmVkLXNoZWFyANGlz4wyrJU4E/2/ECbjwwHFZqKGNDAwMDAgZml4ZWQtdGFwZS11bml0LWNhcnJ5AFqztK10M5M1CXvkoTWAi/kGhXBfNDAwMDAgZml4ZWQtd29yZC1nYXVnZS1saW1pdHMAghbgujoeQryz13yQAm2rwLRW5lc0MDAwMCBmbGFnbGVzcy1rZXJuZWwtb2JzdHJ1Y3Rpb24AIOTOcbBDvdU6b+tCFkyBiaTpM2M0MDAwMCBm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tsUTr2PvSWkd7DQwMDAwIGZyb250aWVyMTA0Mi1pbnZvaWNlLWF1ZGl0LXNlZWQ4MQDUtJ8r/+e046Ft41pESu6xmleQBTQwMDAwIGZyb250aWVyMTA0Mi1sZWMtcGFyYWxsZWwA0YaK/zgCMPevNgNZKCq04q6HwG80MDAwMCBmcm9udGllcjEwNDItcGhhc2UtZmFzdHBhdGgA2WiRZd8fmqsXjV/7Ye1wGz74jCA0MDAwMCBmcm9udGllcjEwOTQtYW5jZXN0cnktYmluZGluZy1zZWVkNjkALEKPBYQSvsPwGb0bpPvx+EL/FoQ0MDAwMCBmcm9udGllcjEwOTQtY2VydGlmaWNhdGUtYmluZGluZy1hdWRpdAAg2Yi8ic4ON6VARycSDd17H6umnjQwMDAwIGZyb250aWVyMTA5NC1lbWl0dGVkLWxlZGdlci1zZWVkNzgAqTNSLBWslxcUjrZudteQ6QdlDVI0MDAwMCBmcm9udGllcjEwOTQtZml4ZWQtcm91dGUtcGFja2luZy1jYXAAeDhtHHvbJ0HvcjE8VkgZffHydLk0MDAwMCBmcm9udGllcjEwOTQtaWRsZS1leGNoYW5nZXMAEOv4ADPcTWRqRnkX84p3HCPUopc0MDAwMCBmcm9udGllcjEwOTQtaWRsZS1zdGFyLWNlaWxpbmcAbpkLf3sLZ/fR5QNcKSsXMfrzjgw0MDAwMCBmcm9udGllcjEwOTQtbmV1dHJhbC1wYWlyLWNlbnN1cwCLSNt/0/Vexwn8yX0Whejg7CSqLjQwMDAwIGZyb250aWVyMTA5NC1yZWNpcGVzLWV4YWN0LXNlZWQ3NgD+MQdQI3iszV0DE03gXcsaeiGNOjQwMDAwIGZyb250aWVyMTA5NC1yZXNpZHVhbC13cmFwcGVycy1zZWVkNjIADWiDrM5P7m/xZsiWQNz3lGjmTKU0MDAwMCBmcm9udGllcjEwOTQtc2luZ2xlLXJlbG9jYXRpb24APaNZeclvLfScGtQAFbcaFvhFJmU0MDAwMCBmcm9udGllcjEwOTQtc3dhcC1jZW5zdXMAblY0Qp0wi9GuuYQ7bnCWwdKEuRU0MDAwMCBmcm9udGllcjEzMDUta2VybmVsLWNlbnN1cwBT+ktfVUZT2dlD7RbklAbOjUD5TjQwMDAwIGZyb250aWVyNzQx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cy1pbmhlcml0YW5jZQBKeuSqM2BiuyrSIS6qsY5DocYtbTQwMDAwIGdhdXNzaWFuLWNhY2hlLXJldXNlADlavDlVuoh+a7ueD3dQ6dGfHbaqNDAwMDAgZ2F1c3NpYW4tY2FydmUtc2NodXItYmFuZHdpZHRoAKVdpzfP/CNZWfSicZmT8/cQIC5ONDAwMDAgZ2F1c3NpYW4tY2VsbC1leHBvbmVudHMAtZHxVI6zjcltq412wOHpeOJq3nQ0MDAwMCBnYXVzc2lhbi1jaGlycC1kb21haW4tYXVkaXQABt0E97DdnYZWAITGysSwgSTcre40MDAwMCBnYXVzc2lhbi1jbGlxdWUtY29weS1ib3VuZACE7rv/E+pcKxm1/V3IznXyiLEq+zQwMDAwIGdhdXNzaWFuLWNvbHVtbi1jdXQA8aScl2kZKHxDNnsd9IsTTsWo1AI0MDAwMCBnYXVzc2lhbi1jb2x1bW4tZ2FwALqT/nIvZgB7P50J3nzaEWItVCY/NDAwMDAgZ2F1c3NpYW4tY29yZS1yb3cAsboqRnRoGtqd1rDpbs58a46Nu2U0MDAwMCBnYXVzc2lhbi1jb3JlLXNpZGUAQb+Fgyvo/QySc6dnWJKqYK7e6V40MDAwMCBnYXVzc2lhbi1jcm9zcy1leHBvbmVudHMAq6Wc0lrw8eql8VYjZjlMHQX4dmw0MDAwMCBnYXVzc2lhbi1jcm9zcy1yb3VuZGluZwAKASbCPRH61d76BEtNfo6+XlsUYDQwMDAwIGdhdXNzaWFuLWRlbHRhLWV4cG9uZW50cwD0/o5lN4Ysly/RPFfps/mq5oE3KzQwMDAwIGdhdXNzaWFuLWRvd25zZXQtZ3JpZACUo+EkcUljxAC7tBUSMQSF6ut31TQwMDAwIGdhdXNzaWFuLWU4LWFzeW1tZXRyaWMtY29weQDkfGit8Cj+pxXaGfRsU8/ndHd80zQwMDAwIGdhdXNzaWFuLWU4LWNvcHktYm91bmQAiZwLwN6LwfUfcD3erigDl8AEivw0MDAwMCBnYXVzc2lhbi1lbmNvZGVkLWtlcm5lbC1zZXNzaW9uALKMxuA8HD5znoNahHyekJ11JVBDNDAwMDAgZ2F1c3NpYW4tZW5kcG9pbnQtcG90ZW50aWFsLWF1ZGl0AI4OKQazzpFyjHatMChUC+wgiG/eNDAwMDAgZ2F1c3NpYW4tZXhwYW5zaW9uLWhlYWRyb29tAN01NyssgaVNyiwmdCcA1bXwL3cfNDAwMDAgZ2F1c3NpYW4tZ2F1Z2UtY29sdW1uADi71zlmxlZBXu+rm2GRLfebhNMNNDAwMDAgZ2F1c3NpYW4tZ2xvYmFsLXRhaWwAYyyU9p2WgeptvSa5RiFRVzNe9b40MDAwMCBnYXVzc2lhbi1oYWxmLWxpbmUtb3BlcmF0b3ItbGltaXQAgiQpgXkzPj6HzRIhTe0XAl6J2kY0MDAwMCBnYXVzc2lhbi1oYWxvLWV4cG9uZW50cwCOo1QzytwY2N0jRViqSP1qdq1GADQwMDAwIGdhdXNzaWFuLWhlYXZ5LXNsaWNlAKFq4TQEPIid/NikgNAd/tjAFuR5NDAwMDAgZ2F1c3NpYW4taGVpZ2h0LWNvbnRyYWN0AIvgaPxHo0C0ca3RiBP2NmLC2TouNDAwMDAgZ2F1c3NpYW4taHlwZXJwbGFuZS1hbGxwYWlycwC9HXd2DztX3oUiQT5+CsrPTXu4ujQwMDAwIGdhdXNzaWFuLWxvY2FsaXplZC1oZWFkZXItdGF4APlYgO09BiP2LT0FeINnRY1W7723NDAwMDAgZ2F1c3NpYW4tbmV1bWFubi1uaW5lAI4jHXrui7dJ1RzgnlKhoDfTnbH/NDAwMDAgZ2F1c3NpYW4tbmV1bWFubi10ZW4AGHGwZtxJVJKLd4eSI8yot1uYAak0MDAwMCBnYXVzc2lhbi1ub25saW5lYXItY29weS1mbG9vcgCuid3TDDRj8VYw1y0TeGavmNLC1jQwMDAwIGdhdXNzaWFuLW5vcm1hbGl6YXRpb24tc3RyZWFtAFnBqCaBW4REpG6VOmZPbIUtcFzXNDAwMDAgZ2F1c3NpYW4tb3BlcmF0b3ItbGlmdABS2YkhD00k3548AjtSN2R7FJwYgjQwMDAwIGdhdXNzaWFuLW9yaWdpbi1iYW5kd2lkdGgANIzDLmp6Z5vDmy3PvCJI1KpdYMs0MDAwMCBnYXVzc2lhbi1vcmlnaW4tY29ybmVyALFTB8Xd4FlgBnYkRCut76LVB0AqNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLWRpYWdvbmFscwBrjl5YdBfAcCREdU1VdAGWcEgKoTQwMDAwIGdhdXNzaWFuLW9yaWdpbi1kaXNwbGF5ZWQA7gWWb+RTa8if51ubTi90cJRbgGk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tZ2FwAELcjmIZ1m3Bc6w0a1j7scnlT7ulNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLWludmVyc2Utbm9ybQCISlNbFIzyo1fBgReGRjIfxK722zQwMDAwIGdhdXNzaWFuLW9yaWdpbi1pbnZlcnNlLW9uZQDwVtfXiqPDBxoYYk7JbMi/D9HUZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi1pbnZlcnNlLXR3bwAvGRxn3wjq11jTGKwoDrlPt0YxsjQwMDAwIGdhdXNzaWFuLW9yaWdpbi1tYXRyaXgtbm9ybQC2Gth/khgnYkL2pvs6GD3pRenV8TQwMDAwIGdhdXNzaWFuLW9yaWdpbi1uZXVtYW5uLXByaW5jaXBhbACbONwsopC8KwAMhsEfW2ozMWA8GzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1uZXVtYW5uLXRpZ2h0AG5yVwGv+erT4cJDrLAvVti4z4hVNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLW5ldW1hbm4A3OgdwWndblqpMEtxqE4FmFvPedE0MDAwMCBnYXVzc2lhbi1vcmlnaW4tbm9ybQDJcwjmUMI+9WQ+q03Lp8WeTBDY5jQwMDAwIGdhdXNzaWFuLW9yaWdpbi1ub3JtYWxpemVkANOwYcWTZBxODRSrS0m5CKU1ooyXNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXAxMABw5H8qHircyOpsTO1aDhNCh5zYIzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1wcmluY2lwYWwA6be4pRHYVfQaHRh/qbY7ejfz1jM0MDAwMCBnYXVzc2lhbi1vcmlnaW4tcS1laWdlbnZhbHVlcwBfplWCOq5pvYivmAzHqkcmOeM0AzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1xLXRhaWwApJoaLh6ynWswIe542r6pmrozYj40MDAwMCBnYXVzc2lhbi1vcmlnaW4tc2NodXItcm93cwBOjptaMJR7ioTeY4AgJgWeRH96dDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzEwAPNIVVwxpM2INe2T4N0u8CdeYbr2NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTEAr8/1vcaU+OCFs2tEy8CBw6UyEiE0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxMgDB5GlXXAOm8UQnFi+30vBYfdITRjQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzEzAOIzcbbAzlSrs0aYY7fdKhJSU1OfNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTQAHZTekrxiDA21JXeposPsCdEHDAg0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxNQCpbPM5ha0OKj3yFDuX+/pr2gWE3TQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzE2AGOknTji4yG9pPlx1Cb82dlofGw3NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTcAB/tJqp83uuNU4X7Kt9Ob/eb4LDM0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxOACmXEpQ92Gqzs0eje6PNP+WpYcaXTQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzE5AJg0xIJu7kwCaIHRWSGfFS28yg+oNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMgDDneBitaNZkuOUlIKKlVK7GC17vjQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzIwACM33sJOLFGXQ78l2jr66KeTsaPpNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjEAVHnfPSmbIlV/bXoUzXeYFecMJz00MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyMgCjcld87k0pE9VsU/AznvoAJn1EZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzIzADQdcedDy6w4XRMAyFugWOBp09+jNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjQAFG8yL9hBBlWJzwUpC2dP9yCrzkk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyNQCK85l2jvQoTjqDuo2Tq+0lJPS5ZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzI2AMxBfgRolVxXCBXKvkcFlTPRiR7bNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjcATgCpRa06ZUI7GhdRE5amx0N4UHk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyOAAdbk8fvJPIzOQGrjYIHyoQoFBvXzQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzMAKeufzWNLwc3r4ONajn69cjz0izY0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWM0AFy2mGmPfHRedL9+Vik9DeV8mGxkNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jNQDKV8+WJgZZJdt8a0/YqfPO0KFxcDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzYAkgDjJ1NBYuqo+TFqRJa5CqFwt5g0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWM3ACmn8HNv/5q9qZpUVQkQ0RiZFaF9NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jOACaBVGyez9/HvC+gYHBoSS4BNtE/DQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzkAImMN6+6jFOLHLFdhEXL0xhK2N240MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyANgfiiGovn//0GUuuhN9JIcLwWpSNDAwMDAgZ2F1c3NpYW4tcGFyaXR5LXN5bnRoZXNpcwDs+8z54KmiDGGf8PPFa/aHoGkkmzQwMDAwIGdhdXNzaWFuLXBhcml0eQCfyoPokyVP2gA2l4nCGYbch2tN7DQwMDAwIGdhdXNzaWFuLXBoYXNlLWNlbGwtbG93ZXIASSfl60vRN/dpy7pbxXFnxhWDoyM0MDAwMCBnYXVzc2lhbi1wcmVwYXJlZC1zdGF0ZS1hZG1pc3Npb24AVhVrn47sQbqNd1AWtdTL96wFKcU0MDAwMCBnYXVzc2lhbi1wcmltZS1jaGlycABRahOlT1iQuvtkM3+N6TbwYHn2STQwMDAwIGdhdXNzaWFuLXByaW1lLWNvcm5lcgByFmoXZucG36CZrh8MNqEH5LSlajQwMDAwIGdhdXNzaWFuLXByaW1lLW9yaWdpbgDhZqSE4LkdjAEKBMdRa+0PCGF4HjQwMDAwIGdhdXNzaWFuLXByaW1lLXNoaWZ0ANg2QjxFMny2vXc7D00k9T3XYOyONDAwMDAgZ2F1c3NpYW4tcmF0aW8tYnVkZ2V0ACSBSFOQ7No6aZbV3Y/2foWdwflwNDAwMDAgZ2F1c3NpYW4tcmVzaWR1ZS1zaHJpbmstd2luZG93AMNPH9mJN935awTNEJFvoJ1df7rANDAwMDAgZ2F1c3NpYW4tcmVzdHJpY3RlZC1nYXRlAGD1/RfqhA0DDbv24dxVVou9FnbENDAwMDAgZ2F1c3NpYW4tc2NhbGFyLWJhY2tlbmQtYXVkaXQA8hHXwBdVwwjuqUyZAZnbArwL2OA0MDAwMCBnYXVzc2lhbi1zY2h1ci1maWxsLXNpZ24AnIGvkynQIvwkkVFtFWmo+E0xqiM0MDAwMCBnYXVzc2lhbi1zY2h1ci1nYXAAWtAL9C2UHrnch7GvNsJThxsLqL80MDAwMCBnYXVzc2lhbi1zZWNvbmQtcm93AGGQqx/PLG8aUN6VwDYZi2ZvzqVQNDAwMDAgZ2F1c3NpYW4tc2VjdGlvbi1jaGFpbi1jaGVjawC+2lkPfhaYdSOuCasjbNMTzwSo6TQwMDAwIGdhdXNzaWFuLXNlY3Rpb24taW52ZXJzZS1ub3JtcwCsvfI5qL0KAUphbdMpRLArV7qMCTQwMDAwIGdhdXNzaWFuLXNlcGFyYXRvci1jb3JuZXIA/4chOFhQ3m7JueEmXmCEXC9uzCM0MDAwMCBnYXVzc2lhbi1zaGlmdC1jb3JuZXIAxa70LGZodrv+o7LF5r0vg9IbS5E0MDAwMCBnYXVzc2lhbi1zbGljZS1laWdodC1jb3BpZXMAEss8y8dqJrY3j7TV9oRf45LnihQ0MDAwMCBnYXVzc2lhbi1zbGljZS1laWdodC1nYXRlAHeke8utTo3KD9TeQYl4zfEHau4dNDAwMDAgZ2F1c3NpYW4tc2xpY2UtZml2ZS1jb3BpZXMA5JoMzqYfvYdjxO8QZk6qQaaV11E0MDAwMCBnYXVzc2lhbi1zbGljZS1maXZlLWdhdGUA3L6IxOrjeWKu0vT0leMYhxw7QkE0MDAwMCBnYXVzc2lhbi1zbGljZS1mb3VyLWNvcGllcwDq3Egx1z1yjJVdlP32uYrv4tG88jQwMDAwIGdhdXNzaWFuLXNsaWNlLWZvdXItZ2F0ZQCIrkpcWrmW4+rY+w2OKB9IYq+NYzQwMDAwIGdhdXNzaWFuLXNsaWNlLW5pbmUtY29waWVzAHMcs1nW+M3sC1Hr0iGKPjpuwxwsNDAwMDAgZ2F1c3NpYW4tc2xpY2UtbmluZS1nYXRlAFgK0U70KQjZmCQAfCzLhLcIDL6VNDAwMDAgZ2F1c3NpYW4tc2xpY2Utb25lLWNvcGllcwC2BKTjg/nd3PfAmfzlUZRrKeSrRzQwMDAwIGdhdXNzaWFuLXNsaWNlLW9uZS1nYXRlAFzynNGhAmwMXRepEFYIraNVeV8kNDAwMDAgZ2F1c3NpYW4tc2xpY2Utc2V2ZW4tY29waWVzAOdgMzeNboJWNE8Dle1nLbAvlyxoNDAwMDAgZ2F1c3NpYW4tc2xpY2Utc2V2ZW4tZ2F0ZQAuCvDcWKhrAUdrWn0YMHuCOnQRuzQwMDAwIGdhdXNzaWFuLXNsaWNlLXNpeC1jb3BpZXMAx9uCOJiADyYVYunGH0Q0Q0b3+J80MDAwMCBnYXVzc2lhbi1zbGljZS1zaXgtZ2F0ZQB4bropc0Zw4eUm058lfGoz/RnJmzQwMDAwIGdhdXNzaWFuLXNsaWNlLXRlbi1jb3BpZXMAv5CQbJXB5U+uCsylPWOL5JA3rb40MDAwMCBnYXVzc2lhbi1zbGljZS10ZW4tZ2F0ZQCbQgZIGXJJGzRxnc0fWybcCNrZ+jQwMDAwIGdhdXNzaWFuLXNsaWNlLXRocmVlLWNvcGllcwCyQhUwnHKbMmFJwxMdC7z33/QAljQwMDAwIGdhdXNzaWFuLXNsaWNlLXRocmVlLWdhdGUAh6k1dXmvCU87cYgkzzGBCl9EhXU0MDAwMCBnYXVzc2lhbi1zbGljZS10d28tY29waWVzAOVqN+XZZEQyiPzn2rgBnYxT7lyWNDAwMDAgZ2F1c3NpYW4tc2xpY2UtdHdvLWdhdGUAU962MnV7aNrQamoWWZ2HokF+hDI0MDAwMCBnYXVzc2lhbi10ZW5zb3ItYXBwcm94aW1hbnQA281du8T7VXgOS2yIz7mP9DEMlUU0MDAwMCBnYXVzc2lhbi10ZW5zb3ItYXhpcwBa70NIEq+1u0bzIu4mzZr/5YRbhjQwMDAwIGdhdXNzaWFuLXRlbnNvci1icmlkZ2UAdqtd+obqtQiZdOdjH6kzU6goZEs0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZXJyb3IAjNLNLaJvQEzK+8ftYwo0WJZrOVo0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZmFjZXMA+3rz4297DkByK+HBWR3NpEyjFXk0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZm9sZAA0HxvJXBWSVTii3i8WSdIR0vsPkjQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWFwcHJveGltYW50AMttCeCNtQI4r7BDIyx5d7k9MS2sNDAwMDAgZ2F1c3NpYW4tdGVuc29yLW5pbmUtYXhpcwAAVJ30osS4bUYD8hmZV78b0rHA2jQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWJyaWRnZQDN16D0yM/E67hr3SDaOg92HiCfEzQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWZhY2VzAHka25y8/MvAKCG+LDH4LY08aHJbNDAwMDAgZ2F1c3NpYW4tdGVuc29yLW5pbmUtZm9sZAB4rTK62qkUJASJgfYoZzcybSUc/TQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lAEK8BrYNtPd2f6Z621gpfV0lEAvDNDAwMDAgZ2F1c3NpYW4tdHdvbm9ybS1ndWFyZAA7mhMRQwdbg/2/plRN3poLnX5XxTQwMDAwIGdhdXNzaWFuLXVuZXF1YWwtZ2F0ZQCJjvl/21V/MFbEvColfZbeOkYwNjQwMDAwIGdlbjQtY29tcG9zZWQtZW5kcG9pbnRzMTIwAJmlXBrqlyXL4c76Pyn8np21Rb+rNDAwMDAgZ2VuZXJhbC1nYXVzc2lhbi1jb250YWN0LXNlYXJjaABsWMQqTfcDb1Y+72z/nUnkFduLyDQwMDAwIGdlbmVyaWMtaWRlbXBvdGVudC1maXJzdC1ndWFyZABbycOgCJqGZdI7RgsxYkA8VsF+qjQwMDAwIGdlbmVyaWMtb3V0cHV0LW1peGluZy1lcmFzdXJlAAGYkmUAf/PDdHCWaqSnZnkXQMTPNDAwMDAgZ2VvbWV0cnktY2lyY3VpdC1kaXNjb3ZlcnkApYloEEg9z5RMyMteoms92h8Ry0k0MDAwMCBnZjQtc2NhbGFyLXNvdXJjZS1jb25uZWN0b3Itc2VlZGE0NzJkZDhjAK14uiOrbDmDtA6fiEYeAgrJRpoSNDAwMDAgZ2l0LWJhdGNoLWNvbXBhdGliaWxpdHkAMw4vPEufomzJGQsPsc1ynIMQZBk0MDAwMCBnaXQtcHJvdmVuYW5jZS1zdHJlYW0AHx9dW+4VgZuY14v6tj51eNL+RmA0MDAwMCBnbDItc3dhcC1jdXQtY29yb2xsYXJ5AA3IQh51S19qirPe0m8pRZ/C1Q+DNDAwMDAgZ2wyLXN3YXAtd2VpZ2h0ZWQtdGFyaWZmAIu+wVSTaXVXIzjrrMw4j722v/NGNDAwMDAgZ2wzLWNuZi1lcXVpdmFsZW5jZS1hdWRpdACLfur2K3joerDuVMcVzvpbjBZ9/zQwMDAwIGdsMy1jb29yZGluYXRlLWNub3QtcGFpci1zZWVkMTM4NWUyNDMAe6BWoLUejkaF3p4bowR21P86qu80MDAwMCBnbDMtZml4ZWQtdGFyZ2V0LWVpZ2h0LWNhbGwtcGlsb3QA8AfHo9YhuPkvpEw4B9SqpQudQM40MDAwMCBnbDMtZnJlZS1taXhpbmctbm9ybWFsaXphdGlvbgDGv4vl9Y9CD04xaKokQQ9Lyw0tlTQwMDAwIGdsMy1sZW5ndGg4LXJ1cC1jaGVjawD50phRbDOEijooO3ugmN79gMs7yzQwMDAwIGdsMy1scmF0LWluZGVwZW5kZW50LWNoZWNrAALMnF38+/INGyy07x1i/IeH2pMwNDAwMDAgZ2wzLW5pbHBvdGVudC1jb3VwbGluZy1zZWVkYTlhYjdiZDIAifgqAGJce31ui6CLUpofydZbChA0MDAwMCBnbDMtb3JkZXI0LXJlZ2lzdGVyLWNlbnN1cwAg+0L2U5iKHvCx70VlgFElWiJtZzQwMDAwIGdsMy1vcmRlcjctZGlydHktcmVnaXN0ZXItc2VlZDM5YWUARxX5t/o7sb+oSrAUPPzvOnJB6JE0MDAwMCBnbDMtcmF0aW9uYWwtdHdvLWNvbHVtbi1rZXJuZWwAAIqFYfg2PbmrXNMqWGqiZ1ZJl5o0MDAwMCBnbDMtcnVwLW5hdGl2ZS1yZXBsYXkACRMJuykFL+QEgsSomsYf+dZVjjo0MDAwMCBnbDMtc3VwcG9ydC1jb25lLWF1ZGl0ADB+iJgIn2aXdIAO/a/6GWaKQAA9NDAwMDAgZ2xvYmFsLWJhdGNoLWxp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jb9OryvA85MfFpQ0MDAwMCBoZXRlcm9nZW5lb3VzLW91dHB1dC1wYWlyLXNlZWQ3NTU3ACsh5JJGkHw+pPg+e24r+XONNcKMNDAwMDAgaGV0ZXJvZ2VuZW91cy1vd25lci1hc3NlbWJseQDowUK/1g2IOPJth5ZTb5RSuRUVQDQwMDAwIGhpZ2gtYWRkLXNjcmF0Y2gtaW52b2ljZQDr91ZoUHcpL722QEd0smvYLtm5JzQwMDAwIGhpZ2gtY2Fycnktc3RyZWFtcwCLBoVgO6adK3dHoXHwOPQFnFLHoTQwMDAwIGhpZ2gtY3ViZS1iMS1maXQtYnJpZGdlAJMMtrH4ezOa9bn/8PhdvhtcmEvBNDAwMDAgaGlnaC1jdWJlLXBhaWQtY29tcG9zaXRpb24AHXAdeZuvkvV/8QUwj8C+JWxaTxI0MDAwMCBoaWdoLXJvdXRlLXBlcm11dGF0aW9uLWZyYW1lcwBo/HUI9r8MSduaDiMpRMjWRwCKhDQwMDAwIGhpZ2gtcm91dGUtcHJlZml4LWNvc3QAbHfRZ0zFtam091cYy2WMjY3of2k0MDAwMCBoaWdoLXJvdXRlLXNldHVwLWludm9pY2UAM+mwWletYQ615KOZFOubfnzmvgI0MDAwMCBoaWdoLXNjYWxpbmctc2NyYXRjaC10cmFmZmljAOda2z5NA1VrB8M3xdcLy+ZFXow3NDAwMDAgaGlnaC1zY2FsaW5nLXRvdGFsLXRyYWZmaWMAO1MjOGRJbQE5LQEBBLpXBRPPFTw0MDAwMCBoaWdoZXItbW9tZW50LXN0cmljdGlmaWNhdGlvbgCqHc0rSwotXCaUCtKedmA+8YJwmTQwMDAwIGhpZ2hlci1vcmRlci1yYW5rLWV4Y2hhbmdlcwADmlJ3nqrsh9qOdPJULTu0tj7JOjQwMDAwIGhpc3RvcmljYWwtMTA0Mi1saW5rAIsy8XmqTNU52cyzIaWjsWGZbLK0NDAwMDAgaGlzdG9yaWNhbC1qLW9yZGVyLXJlY29uY2lsaWF0aW9uAFbOcuNDru/AMPbfaM84XgxIFE8WNDAwMDAgaGlzdG9yaWNhbC1zbmFwc2hvdC1vbmUtcGFzcwCaqx53QsmWLlmlG7NBbz5jmBPeyTQwMDAwIGhvbW9nZW5lb3VzLWNoYWluLWV4dHJhY3Rpb24A95UPQziVTFkyKXLHl4rL01/bMkc0MDAwMCBob3N0ZWQtcmVzaWR1YWwtc2hlYXItY3Jvc3NpbmcAoGXOBqY3+1TZ/+3ZM4RuHIFj0YY0MDAwMCBob3N0ZWQtdGVtcGxhdGUtcG9zdGVtaXQtZmllbGRzAI1N8UicD5beGf3SG2nD2k+BsC5GNDAwMDAgaHBlLWF1ZGl0LWZhc3Qtc2VlZDkzAEwV8s3Oed5VIlYaoqYAj+CXkI8lNDAwMDAgaHBlLWF4aW9tLWludmVudG9yeS1hdWRpdABTR9i9hyjGHJOh+Idlab2HBZoAxzQwMDAwIGhwZS1jbGlmZm9yZC1lbmVyZ3ktY29yZQDuw4Ye2PG4F2rL02v3wvJWKPFrPzQwMDAwIGhwZS1lbmVyZ3ktaW5kZXBlbmRlbnQtYXVkaXQAeoychc4j7GZJjTPd033v4bjSxxg0MDAwMCBocGUtZW5lcmd5LXBhY2tlZC1yYWRpeAA7bo15mfrPUszulGILTDPVv54i9DQwMDAwIGhwZS1sZWFuLXNlbWFudGljLWJpbmRpbmcANgjH5bmCd+uop5GR0Q1NrG5C3xA0MDAwMCBocGUtcGFja2VkLXJhZGl4LWNvcmUAmx79Op/LF3dyjQnsi+pqeymqtCc0MDAwMCBocGUtcGFydG5lci1iaW5kaW5nAJYzP3v4mEXbacgHB2UK/AZOjY+PNDAwMDAgaHBlLXBvc3Qtd3JhcHBlci1sZW1tYQCJXT8C0qotIczyB2uTx7BjK2IhEzQwMDAwIGhwZS1wcmUtd3JhcHBlci1waGFzZQD7BQXFLN2HTgb1Vpo6VllLzk0E7zQwMDAwIGhwZS1wcmV3cmFwcGVyLWJpbmRpbmcAExS2U6xtyRfA/rSJ6hx8r/c5/J80MDAwMCBocGUtdHJhbnNwb3J0LWludGVnZXItcHJvZHVjdGlvbgAZUs9gkojkVo4tC+sM5uAryJiO5jQwMDAwIGhwZS11bml0YXJ5LXBhY2tlZC1yYWRpeAApUgh8PQNGCRxJ/031KOQR6pCizzQwMDAwIGhwZS13cmFwcGVyLWV2ZW50LWJpbmRpbmcAutvp+LhQbqGCFC4Fj+DJxCUders0MDAwMCBodXJ3aXR6LWFkYXB0aXZlLXJvdXRpbmcA8K02qHEAn6EFLdMSdcUDWDfaquM0MDAwMCBodXJ3aXR6LWFzeW1tZXRyaWMtY29weS1mbG9vcgDLb/oXft9Kh3y7FPVyNJNJDrNHFTQwMDAwIGh1cndpdHotYnVkZ2V0LXN1Y2Nlc3MALzpfLmSdvxTbEU5qEcU8XULROl80MDAwMCBodXJ3aXR6LW5vbmxpbmVhci1jb3B5LWZsb29yAH9PpLQb9kjGI8Q5yXl51ql+021INDAwMDAgaHlicmlkLWNsZWFuLWRlc2lnbgAbzj9vcwXyWHYjUDAYm4vkpz7iWjQwMDAwIGh5cGVyY3ViZS1kZWNvZGVyLXBhcml0eQDNT21k8dbcWQfM6MY6zlUt2TzmDDQwMDAwIGh5cGVycGxhbmUtZW5kLWxlYW4AY02ddugCbyTpNz5rHaKpdukkQQQ0MDAwMCBoeXBlcnBsYW5lLXJldGltaW5nAP42gTb+She6hjlIFRxoMNMF48PSNDAwMDAgaWRlYS1hLXNwZWN0cmFsLXJhZGl1cy1zY3JlZW4AyeY33hRgjS7SE/R9hbTK88LW4XI0MDAwMCBpZGVhbC1kZWNvZGVyLWZsb29ycwDjm70BJjWaDbJLfsyVeEMwIpKhDjQwMDAwIGlkZWFsLWxldmVyLWdyaWQtYnVkZ2V0cwCUTSskBIG51jrPSdy+vl/O8LVJtzQwMDAwIGlkZW1wb3RlbnQtZmFjdG9yLWludmFyaWFudACbtEnymcByn99uGbqL3slsNnXW6jQwMDAwIGlkZW1wb3RlbnQtcGF0aC1yYW5rLWF1ZGl0AMxfY5iv+DIZ7HvQ6X0dAwAGjd2PNDAwMDAgaWRlbXBvdGVudC1zdGFiaWxpemVyLW11bHRpcGxpY2l0eQDClKxNwh4HcO844GnUWKcirc+LzzQwMDAwIGlkZW50aXR5LXBpdm90LXNjaHVyAHLjTqn5vFKTGYKoGVDXodgk7vMDNDAwMDAgaWRlbnRpdHktcGl2b3Qtc2VjdG9yLWJvdW5kAHFMSrpZ7EQzp0+FZJNpq2Yb7KRhNDAwMDAgaWRsZS1hZGRpdGl2ZS1yZXBhaXItYnVkZ2V0AB//55StOvYGuNx/n9B0pnXClwl8NDAwMDAgaWRsZS1hZ2dyZWdhdGlvbi1nYXAATYuHZSAwL2W8y7Z2yy8bhcoq0N00MDAwMCBpZGxlLWF4aXMtaG9zdGluZwDiF2tXiIWxccUENSphMcgpXIOIpjQwMDAwIGlkbGUtY2hhcmFjdGVyLWNvbnRyb2xsZWQtYWJzb3JwdGlvbgAVAAUgYkWsMO7wZGB3yhbgZtcRDDQwMDAwIGlkbGUtZm91ci1zaXRlLXJpZ2lkaXR5AOcjxVP0SebPkGeNJ0DX7yqga6irNDAwMDAgaWRsZS1nbG9iYWwtY2hhcnQtc2ltaWxhcml0eQDV8O5MYZopFU3QYnqrokH0Wt5ZSDQwMDAwIGlkbGUtaW50ZWdyYWxpdHktYWdncmVnYXRpb24tYXVkaXQAjT/ig4juto8HNxUoHsJXBqosyl00MDAwMCBpZGxlLWludGVncmFsaXR5LXBvb2xpbmctYXVkaXQAByEoLIliP+SJJm9YXnz+oL00vuU0MDAwMCBpZGxlLXBhY2tpbmctc3RhYmlsaXR5AFYxd+KEPSyBrx393vUp+anjGdrTNDAwMDAgaWRsZS1yYW5rLWNhcC1zZW5zaXRpdml0eQAVfu8BhwfSpl04CABNCJY6iege6jQwMDAwIGlkbGUtcmFuay1zdW0AFHq9dEdxnjMprNxqAUuuBxmaH1I0MDAwMCBpZGxlLXNpbmdsZS1jaGlsZC1hYnNvcnB0aW9uALaUr/CYgQEgh5/dBZc96RYHEUqANDAwMDAgaWRsZS1zdGFiaWxpdHktcmFkaWNhbC1hdWRpdAB+KFnazPL6Dfsb3xp6N8SHCP3hMTQwMDAwIGlkbGUtc3Rhci1wYWlyZWQtYXhpcy1jZW5zdXMAuHoqnUQAwy5ddSdocyBSK0wpPmw0MDAwMCBpbmNyZW1lbnRhbC1wcmVmaXgtY2FwYWNpdHkAGu99J+zjzpmaLN+785SwuwLzi6I0MDAwMCBpbmRlcGVuZGVudC1jYW5jZWxsZWQtcmV0dXJuLWdyYXBoAAGDZE5RQDPF0VaIHXgMh8JWt7FaNDAwMDAgaW5kZXBlbmRlbnQtY2xpZmZvcmQtZXhwYW5zaW9uADs0LB8n3ukBbixMnSvq2Tt/4aMHNDAwMDAgaW5kZXBlbmRlbnQtY29ubmVjdG9yLXNlcmlhbGl6YXRpb24A+8/upFSrVwSgp2mKh18jr3roRpU0MDAwMCBpbmRlcGVuZGVudC1xdWV1ZS1jZWlsaW5ncwBcYXMwcldgAJ5l3tzhKhdyAiSKqTQwMDAwIGluZGVwZW5kZW50LXJlc2V0LWdyYXBoAKymGcUrQ88LDliTV7ZpKkenfaJqNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3MtN3Etb2JzdHJ1Y3Rpb24AOXIUHjsJnpGJps/IBIwdfV33UI00MDAwMCBpbmRlcGVuZGVudC13YWxrcy04cS1vYnN0cnVjdGlvbgBHPS76FMdxdlw7lMbM4Ax2loegkjQwMDAwIGluZGVwZW5kZW50LXdhbGtzLTlxADwS0LR+earC2Xz3ckPnvgK7ZavbNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3Mtb25lcmVwZWF0LTM1LTQ0AAk2Oqx2a04wuU7LPPz1/yAx1yWbNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3Mtb25lcmVwZWF0LThxANJd1jguf04ky209piuI73Ei/S87NDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3MtdGhyZWVyZXBlYXQtOHEA7FSQpKbnkT8IAG4kJjluQ2kaycc0MDAwMCBpbmRlcGVuZGVudC13YWxrcy10d29yZXBlYXQtOHEABYKLosMGlgz3rGCZ1uJ86rebwMs0MDAwMCBpbmZpbml0ZS1kaWhlZHJhbC1yZWdpc3Rlci1ib3VuZAAsUV7ol55A5a1+crIUCOB9YhPocDQwMDAwIGlucGxhY2Utc2lkZS1wZXJmb3JtYW5jZQB3XwdQ5N7+f5J3t99/oC1CH9xEQjQwMDAwIGludGFjdC1yZWdpb24tbWluaW1pemVyLWNvdW50AL9xPlAYqr4sGWEF47BNzlRvsbzrNDAwMDAgaW50YWtlLWNsb3N1cmUtb21pc3Npb24AjXZ+zfXX7kb/4fDBnikI0aax3e00MDAwMCBpbnRha2UtaW5pdGlhbC1oZWFkcwCJ8Mz/4b0aTmpskMkj/VlIBSr2RzQwMDAwIGludGVnZXItYWRkcmVzcy1zaWduZWQtc3dhcAAoSA7cumJlp2moinV6WDts5TWe2DQwMDAwIGludGVnZXItY29tcGlsZXItc2VwYXJhdG9yAMiZpdcW9VRUkXn38C/AKZ7BSBRwNDAwMDAgaW50ZWdlci1pZGxlLWhpc3RvZ3JhbQC2Q+SwpiijK6AOzq8aNLW3e1dW6zQwMDAwIGludGVnZXIteG9yLXNjYXR0ZXItYm91bmRhcnkAtKPmSkb4jLeumHNR7V/qiZIUIng0MDAwMCBpbnRlZ3JhbC1yZXRyYWN0aW9uLW1vbm9taWFsLWJyaWRnZQAbt7l5h5my4jJBbYxYdyDD8/+xizQwMDAwIGludGVyY2hhbmdlLXJldGFpbmVkLWJhY2tpbmcA5ktj4GJ3c7mnz3cfms4c8Rz5k2E0MDAwMCBpbnRlcmlvci1tYXNzLXRhaWwtZ2F0ZQCb1x5nHJfQ8D70byUg3JcKdvTYajQwMDAwIGludmFyaWFudC1yZWFkZXItcmVzdG9yYXRpb24AlJpESQm/d/6Zif+YYtaXfo25fvA0MDAwMCBpbnZlcnNlLWNlcnRpZmljYXRlLWJpdC1ib3VuZHMAQjueV5VJ7KPY+PBQecvZMCzVCRU0MDAwMCBpbnZlcnNlLWNvZGUtcmVjb3ZlcnktdGFncwDO+wZlDl+C9SoRPZN3Smz6R9NQSTQwMDAwIGludmVyc2UtZGlydHktY2VydGlmaWNhdGVzAJ5itf8KWhIG+lWvoSscil6yFUD3NDAwMDAgaW52b2ljZS1tdXRhbnQtY292ZXJhZ2UAssCFDRM84pPJUTnf1NxLhK7ln5U0MDAwMCBpbnZvaWNlLXJlYWxwYXRoLXJlcGxheQDaI8t1KWepLPpwo0+7oJP1hjLTczQwMDAwIGludm9sdXRpdmUtd2Fsc2gtbGlmdABVMnQ2irDZ0HOq5oIPTFsId5gGRzQwMDAwIGludm9sdXRvcnktcHJvZHVjZXItcmF3LWR1YWwAZMWDNsOmhXX/1mSHVvSAZDoHczQ0MDAwMCBpbndhcmQtdW5pdC1waGFzZS1jb250cmFjdACeVpvYFqECJZUUbliye42V1WAw1DQwMDAwIGlzb2xhdGVkLWF4aXMtZXhwb3N1cmUAaaHMFqQvDG+2GWvAFdBBcNxXXJs0MDAwMCBpc29sYXRlZC1kZXNjZW5kYW50LWJ5dGVjb2RlAJ5F9hNOSu3vL8ocgqLW6J1sD17GNDAwMDAgaXNvbGF0ZWQtcnVubmVyLXN1Y2Nlc3NvcgAVVdP5FSMP/ZvVic7jVfJUHm02uTQwMDAwIGlzb2xhdGVkLXRlc3QtYnl0ZWNvZGUAg5WwUuxVLYUOiXrAi8aF/AoLZHE0MDAwMCBqLWNhbGxlci1pbnRlcmZhY2UtZ2F0ZXMAXupbw46r7H2HRoYMKl8gr9RgyCI0MDAwMCBqZjAtcGFpcmluZy1vcHRpbXVtANB99SYq8Zx89F682iSGUjkRYdWYNDAwMDAgam9pbnQtY29ubmVjdG9yLXJlYWQtc3ludGhlc2lzAC7DDE2PlQ6gA5WuYd1EExK75rhLNDAwMDAgam9pbnQtZHVhbC1yZXBsYXktZmFzdAAOWtBkXBIRfHn2/8pFchwjziC5IzQwMDAwIGpvaW50LWR1YWwtcmVwbGF5LXByb2R1Y3Rpb24AFV/RMb1ICfot6jIlp61I+O/uJh40MDAwMCBqb2ludC1kdWFsADKBfw6tlYS6BDpIVk9W3PhEFpIYNDAwMDAgam9pbnQtZnJhbWUtbW9kdWxhci1zY3JlZW4Axygyn7BuU3/FZmkIc16QtJ0l73s0MDAwMCBqb2ludC1oZWxwZXItbGF0dGljZQCTw9pdoKUnuvQtu+duevAQOE3vhzQwMDAwIGpvaW50LWxldmVyLWFsZ2VicmFpYy1zY3JlZW4ACdcoXtD/35Huy/CImOpu0K931hE0MDAwMCBqb2ludC1wbGFuZS1iYXNpcy1zY3JlZW4ASP2lLmEM6rZ3dXyc8tjwlnMSqL80MDAwMCBqb2ludC1wcmVmaXgta2VybmVsLXBhY2tpbmctdmFsaWRhdGlvbgCvxfJquJG48Waw/I924PXcDSmGbzQwMDAwIGpvaW50LXByZWZpeC1rZXJuZWwtcGFja2luZwA+s2TZy0Ap/29vrjBfT0p8KlrNyTQwMDAwIGpvaW50LXF1ZXJ5LWV4dHJhLWIyLW9ic2VydmF0aW9uLXNlZWQzZTYyAA4SbsQ8Epif00ZzAC+vG0FDNQepNDAwMDAgam9pbnQtcXVlcnkAcAzpyCW7ad65rzTzuudJXGvjWUQ0MDAwMCBqb2ludC14NTQtdDM3ANu95zCAKoD0cQJINZsv2BspLiuhNDAwMDAganA4LWFkZGl0aXZlLWNvZWZmaWNpZW50LXJvdXRlcwDaT5f1AzejBxwucTM8KcAXrnHnfzQwMDAwIGpwOC1hZGpvaW50LXJlc3RvcmF0aW9uAIgsWRvBDeN8rE3R5LBqM7z8XL/5NDAwMDAganA4LWNsZWFuLXdvcmsAKbR+aBSdkh3Qm2ViYKsM658wFS80MDAwMCBqcDgtY29tcGVuc2F0aW9uLWJhdGNoaW5nAHeV4TkW/fxYxdCsqtXMjIwIoevONDAwMDAganA4LWRpcmVjdC1zbWFsbC1pbnRlZ2VycwD6caf/Sr5aSkpRYSMAVW8VjuREATQwMDAwIGpwOC1ncmlkLWJvdW5kZWQtc3ludGhlc2lzAMfxCg65yhUsiO2/apkJYTOkWzeJNDAwMDAganA4LXNjYWxlLWludGVydmFscy1zZWVkMzUAQoub7vIljjBG6pAyR8nelJA0i9w0MDAwMCBqcDgtdHJhbnNwb3NlZC1jb2VmZmljaWVudC13b3JrALEhDDYz6kTrlwKpYLyQ5zDiVCztNDAwMDAgandyLWNoYWluLXJlY2VpcHQAgd48SPwVdZdfrWJ2mSS7LpUfgvA0MDAwMCBrLWFkam9pbnQtYm91bmRhcnktcHJpY2UAGLltrnhD4yqdU4CtIXZaaE/UR/80MDAwMCBrLXRyaWFuZ2xlLXJlbG9jYXRpb24An/cF7YYeqoUZMAMPgKnmY3aOyhU0MDAwMCBrMi1jbGFzcy1jLWNvbmZpZy1hdWRpdAAOBLFLQFacoiWMy/BtBUkCxCd9gTQwMDAwIGsyLWNsYXNzLWMtc3RhYmlsaXplci1vcmJpdC1pbnB1dHMAbG5aM1MaL74nFh87d9sfyiXyNHA0MDAwMCBrMi1jbGFzcy1jLXN0YWJpbGl6ZXItb3JiaXQtcXVvdGllbnQAPVenEJnu9yySsOlrFmBw5x7Bqt00MDAwMCBrNDkyLWVtaXR0ZXItaW5kZXBlbmRlbnQtY29udHJvbHMA3+fHuKeXw9044hDXELKUdYLsaA40MDAwMCBrNDkyLWhlbHBlci1hY2NvdW50aW5nLWF1ZGl0AFyHbRY34yerLKNib/j3rdS3MQPmNDAwMDAgazgtY29oZXJlbnQtdHJpcGxlcwDOKcUwmJcUJ+vVs9UnwAZPpZtqajQwMDAwIGs4LWNvbW11dGF0aW9uLWNlaWxpbmctc2VlZDI2AM1EoiYrfAozSinnF4OrxUnhNLjNNDAwMDAgazgtY29vcmRpbmF0ZWQtb3duZXJzAJWBCRkkFC3v/2qduko0/PFI457gNDAwMDAgazgtY291cGxlZC1nYXVnZS1zdGF0aW9uYXJpdHkAk6dzJ2Fht21DxSZTGnuZCYwU5qg0MDAwMCBrOC1laWdodC1lbmRzLXQx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YAp+qTQwMDAwIGthcHBhLXBhY2tpbmctcHI2NDMtMjAyNjEwMTMAFrlvWRrjo+EtGt2FU9zls9jaxoY0MDAwMCBrYXBwYS1yZWJ1aWxkAGZcv3afGjVPxtXwRy2DjWFn22BSNDAwMDAga2FwcGEtcmVjdXJzaXZlLXBoYXNlLWNoZWNrcG9pbnQtMjAyNjEwMjMA3dhO54bTZEPBazD0W5at5g00TlY0MDAwMCBrYXBwYS1yb3VuZDMtYXVkaXQtMjAyNjEwMjIAiYNY1bp1GJlzIZOxXd9ioWgEL7c0MDAwMCBrYXBwYS1yb3VuZDMtd2FycC0yMDI2MTAyMgDbBsdqRgg3g7Z15aXOQYxSpADTUDQwMDAwIGthcHBhLXJvdW5kMy13YXJwLWxlYW4tMjAyNjEwMjIA0EICALct51Koabhh5xzz573HpTE0MDAwMCBrYXBwYS1yb3VuZDYtY29tcGlsZXItdGlnaHRlbmluZy0yMDI2MTAyMgAzusMvXlzve/2QKV3a84emksCxOzQwMDAwIGthcHBhLXJvdW5kNy00NjEwLWNvbnN0cnVjdGlvbi1jaGVja3BvaW50LTIwMjYxMDIyAHdQpcCcoR3HYcqzUPWWofqBCx8CNDAwMDAga2FwcGEtcm91bmQ3LTQ2MTAtY291cGxlZC1yZWN1cnNpb24tMjAyNjEwMjIAmUuSaj8ivQ6iJy6o9Ntcqo5belM0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1mcm9udGllci1yZXZpZXctMjAyNjEwMjIApPUULzSvpwWYPW0jy42cPV0UcGE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1pbmRlcGVuZGVudC1hdWRpdC0yMDI2MTAyMgDg9NNqCt3J8eQU6g+HAzTe1gXsKzQwMDAwIGthcHBhLXJvdW5kNy00NjEwLXBoYXNlLWRlYnQtYXVkaXQtMjAyNjEwMjIAh0TzU7SlcioTPSM4eaEcOVxSILw0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1waGFzZS1yZWN1cnNpb24tMjAyNjEwMjIAV7/xsmOqQRdZ8U0JJkszOZTwIKE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1yZXZpZXctMjAyNjEwMjIAJHOmR8Dh1qgEvhfN5380P9/PHVE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1zY2FsYXItY29udHJhY3QtMjAyNjEwMjIAfF/hbLBkC4sXwFIz5fzh+PcG7Dg0MDAwMCBrYXBwYS1yb3VuZDctcmFua29uZS1waGFzZS0yMDI2MTAyMgAyJzituyBB9X1HAXsididCFYNhJDQwMDAwIGthcHBhLXJvdW5kOC1jb21wbGVtZW50LWF1ZGl0LTIwMjYxMDIzAA5tb9E/R388Js5lxXArxpYnpKLFNDAwMDAga2FwcGEtcm91bmQ4LW93bmVyLXByb3RvY29sLTIwMjYxMDIzAOxCmTWIr1qBX0goWMwZcnjTbSqsNDAwMDAga2FwcGEtcm91bmQ4LXJlY3Vyc2l2ZS1waGFzZS0yMDI2MTAyMwCUvetn44TxEKUTqhuARuQ8bGm7tjQwMDAwIGthcHBhLXNlYXJjaC0yMDI2MTAyMgCrdiFcIk3z+eI8DvQJJYoLYAs4HzQwMDAwIGthcHBhMDAyMy1leHBsaWNpdC1yYW5rLWF1ZGl0AErmts2uY5MNpEYaEZ0oBl5m1kwbNDAwMDAga2FwcGEwMS1iaXQtcmVwYWlyAGdqzGSkWDYGCMyozqCwPVHM9PPVNDAwMDAga2FwcGEwMS1maWVsZGxpbmUtcmVwYWlyADxiBP1CjtVXFcqOcrS2TMGeeDcjNDAwMDAga2FwcGEwMS1oYWVtZXJzLXJlcGFpcgAJ2Kea0ioyhpeeiefnUF0c25YTFzQwMDAwIGthcHBhMDEtb3V0ZXItcmVwYWlyAM4Dm3eSHb3syuCwAMTj0HOYoj1DNDAwMDAga2FwcGEwMS1wbGFuZS1hdWRpdACwEjw4qSjdT2aygz/XYN0eWEy2sDQwMDAwIGthcHBhMDEtcmVwYWlyAHiC2AS6rYFAT/mf7OK6JOzl9X5bNDAwMDAga2FwcGEwMS10YXJnZXQtc2NyZWVuAO1w9UuCjqU5lf1vG7cuAXQh+qP7NDAwMDAga2FwcGEwMTAtY29tcGxleC1sZXZlci1mbG9vcgBAFIJKbVkskDnmIEtFg5TakRuCPzQwMDAwIGthcHBhMDEwLXJhbmstY2FwLWZsb29yADKN6LDLKyrsbJbBrt82aPEt519ONDAwMDAga2VybmVsLWRlc2NlbnQxMjAAnqdPCOSxxC5d/m8IdirZDtjgYB00MDAwMCBrZXJuZWwtZW50cmFuY2UtbmF0aXZlLWJvdW5kYXJ5AHCggZZwo7I+jTONm+eGTDDTpLN+NDAwMDAga2VybmVsLWZyYW1lLWNvYWxlc2NpbmctdmFsaWRhdGlvbgBhVVSeoL4IG5fQcbT6aYg7RPRtGTQwMDAwIGtlcm5lbC1mcmFtZS1jb2FsZXNjaW5nAFKKofDVx7NVJpIoszWUl25wSZgyNDAwMDAga2VybmVsLWdyaWQtZXJhc3VyZQB9n5wbMuW/kFLdq8rHWuaJIkW03TQwMDAwIGtlcm5lbDEwMi1pZGVhbC1kdWFsLWF1ZGl0ACbPHth7JaStzUDql5LprVPKpmfPNDAwMDAga2VybmVsOTItZnJhbWUtY29tcG9zaXRpb24Abvm8+XjeyQ+X0UKx+3vLNSX0mrg0MDAwMCBrcG9ydC1ncm91cC1zY2FsYXItZW5kcG9pbnQtYXVkaXQA57Fsg/WDUuqZTqbeTp3DZTIOksw0MDAwMCBrcm9uZWNrZXItbWFzay13ZWlnaHQAmCXb6VB9YXpkvK5k4BWsdwEE0f80MDAwMCBsMjItc3BsaXQtZG9tYWluAEd8ogRphcILQ+gVcYYPGg3ERTToNDAwMDAgbGFiZWwtY29vcmRpbmF0ZS1ib3VuZGFyeS1hdWRpdAD2CLktIz0Sh+pm6kTvrlGdKvaehDQwMDAwIGxhYmVsLWZpZWxkLWNlbnN1cwBmy8hDw5LGJFpNHkSC4ognqLPD6zQwMDAwIGxhYmVsLXdpbmRvd3MtaDEyLXBsdXMAyXlIPiz7/c6MAF+Zy/e1jc3kuuU0MDAwMCBsYW1pbmFyLWhlYWRlci1sYXcAB6KLkaNqONYdr03XMBsDFrXADug0MDAwMCBsYXJnZXItZ2FpbgAVjoC6HETJvJ+B97UckaS1OlhGcTQwMDAwIGxhdGVyLXdhcnAtbWF4aW1hbC1lbnRyYW5jZQAW3vRVUdWohZIyB/Fs7tbdWlCL/TQwMDAwIGxheWVyLWVuZC1jb250cm9scy1wYXJhbGxlbAACV6fWtf+d1NgSXbrKtDxJMy20zDQwMDAwIGxlYWRpbmctc2VjdGlvbi1kb3duc2V0LWF1ZGl0ABH8x7wLRpGf7llDjsrLgNS0k0d2NDAwMDAgbGVhZi1kZXN0aW5hdGlvbi10cmFuc3BvcnQtYm91bmQAGwM4HBF5oFH5kUdDks2Elmjos1g0MDAwMCBsZWFmLWRlc3RpbmF0aW9uLXRyYW5zcG9ydAB2TyxA1yBarHPILOm3cGSwORb2JzQwMDAwIGxlYWYtb21lZ2EtcHJvZmlsZQAbKjRGcOmy1pxOthxDTMi3Lh5jRjQwMDAwIGxlYW4tYml0LW1vbWVudC1kaXNjaGFyZ2UAxhw8/dnvumaj+fWF+XkGV4ZhMKw0MDAwMCBsZWFuLWNvbW1vbi1sYWJlbC10ZW5zb3ItbGlmdACYzyWlFLiKZRcR/UJGzQo+yMugXjQwMDAwIGxlYW4tY29tcGxldGUtYmFuay1lbmRwb2ludACIgLzsQfgwKBV4bibqfg6UqLzyfzQwMDAwIGxlYW4tY29ubmVjdG9yLWV4Y2x1c2lvbgB3JSwELvRDZMtXgtUxJRW+FAwDjTQwMDAwIGxlYW4tY3VycmVudC1yNDIwLWJvdW5kYXJ5LWludGVyZmFjZXMA6GI87TExoTsps+pWpDaST8mPQJE0MDAwMCBsZWFuLWN1cnJlbnQ1ODgtbmF0aXZlLW1vbWVudACne+ENDWzsctUKPw4rxhDbbob1qjQwMDAwIGxlYW4tZGVjb2Rlci1yYW5rLWludGVyZmFjZQCRoPKLA5b+i0jaeltmK5VNgq8UkTQwMDAwIGxlYW4tZGlydHktZGVmZWN0ALPTPhGKnvUCvqz3B+kFlB1tyktwNDAwMDAgbGVhbi1kaXJ0eS1lY2hvLWJ1ZGdldAB4U5gHtmmut8CdgO5WDM3Vh9VoPTQwMDAwIGxlYW4tbm9ubGluZWFyLWNvbW11dGF0b3IADu13HKXZpmze/G2p1fsKGtIFRR00MDAwMCBsZWFuLW5vcm1hbC1jbGFzcy1yYW5rAIOZLMHOTCd3uNBx7WTUT8N9BgwYNDAwMDAgbGVhbi1wYWlyZWQtY3ViZS1kMWQ2ALBpy+mOFAp8CTTBjJiLV9bQiX0KNDAwMDAgbGVhbi1yZWNvcmQtcGhhc2UtYnJpZGdlAB+caIA2x2WUWHZdftfeRNbX4pnGNDAwMDAgbGVhbi1zZXF1ZW50aWFsLWJhbmstYmluZGluZ3MAiSQR1/qJszL31Feoz0qAr33OLa00MDAwMCBsZWFuLXNwbGl0LXJlc2lkdWFsADixaHKyBS+7ZtMjSJZvJDA3zBWyNDAwMDAgbGVhbi1zdG9wcGVkLXJlY3VycmVuY2UtYXVkaXQAp+/sjAJoWndTlSlBNW1cUnsYUno0MDAwMCBsZWFuLXRyYW5zcG9ydC1jdXQA9r115LQU7ezZb/YM23mmB+gAof40MDAwMCBsZWFuLXVuaXRhcnktcHJlZml4LW5vcm0ALGYTFcZWO8y/FxhTAjyL42JRau00MDAwMCBsZWF2ZXItY2VsbC1hdWRpdC1zZWVkNjUAD9eYLIIU34lSst1ZbmWS5XLfo3o0MDAwMCBsZWF2ZXItbW9ub3RvbmUtb3B0aW1hbGl0eS1zZWVkMjEAnmbXpL5gJgYMo+vd/Wr4xRikTI80MDAwMCBsZWF2ZXItcGFydGlhbC1jZWxscwBX411Bi2X6e8hGb0Y2215Df2E5XjQwMDAwIGxlYXZlci1yZWxhYmVsLWF0bGFzLXNlZWQ4MQATAxen2tm8jFhayZgUVBgCRjcf4zQwMDAwIGxlZGdlci1kZWNpc2lvbi1iaW5kaW5nAPEpkWFoiNpJIdy31zpJ449ECYzVNDAwMDAgbGVkZ2VyLWV2aWRlbmNlLWRyaWZ0AKjt3I0pSJtUYtxJefi0WE6Jj4JyNDAwMDAgbGVlY2gtbGF0dGljZQD5D9dFTfkx5N3Yz5rhruzvQeqxTTQwMDAwIGxlZWNoLW1pbm9yLWJ5dGUtbGFuZXMAtb/GI7RxmF6qKTFRoXexmQeGXVU0MDAwMCBsZWVjaC1taW5vci1wcm9kdWN0aW9uAHpCbA9fYIeino5BqRlSFJRkHuWENDAwMDAgbGVnYWN5LW5hdGl2ZS1xdWVyeS1vYnN0cnVjdGlvbnMA64haXD6fL0/QQPptYUBHKIAWO0E0MDAwMCBsZWdhY3ktb3V0ZXItYW5hbHlzaXMAU642smfcH1uuWVg0ovBJ9GD/czk0MDAwMCBsZWdhY3ktcGFja2V0LWxpbWl0cwBvhhQPMdUpBpNzZLbdQTEgC6BhoDQwMDAwIGxlbmd0aDgtdG91Y2hpbmctZGlhbWV0ZXIACCY65zEfbC2x7w1dHNoBwy9tKUA0MDAwMCBsZW5ndGg5LWZpdmUtdmVydGV4LWdhcAApGHt8NOLslcVQqHtDiYbz1OjVtDQwMDAwIGxlbmd0aDktZm91ci12ZXJ0ZXgtZ2FwAH2g4Pta89Log9GGC5fhilYB/qZqNDAwMDAgbGVuZ3RoOS1pbnRlcmlvci1lbnRyeQCgB+PKhwdQjyXFom+/84puvJBwvTQwMDAwIGxlbmd0aDktcG9zaXRpdmUtcmltAIbpy4IkGzV6LWuvwR3wfWRsZuUoNDAwMDAgbGVuZ3RoOS1zZXZlbi12ZXJ0ZXgtZ2FwALVVeFSZHrOF1+2c1glzwI+ZUCfQNDAwMDAgbGVuZ3RoOS1zaXgtdmVydGV4LWdhcAA4v0B2s5gXEAhsBgRrH7N6PO2BaDQwMDAwIGxlbmd0aDktdGhyZWUtdmVydGV4LWVudHJ5ALSfzeTSCsEY+UND+rHOzBWp3Y99NDAwMDAgbGVuZ3RoOS13aWR0aDItZW50cnkAdkHz0bSQ1hRpWwNWsnbuD7LDPg80MDAwMCBsZXZlci1pbnRlZ2VyLXR3aW5zAOSErrFlywacMugp0BKvi+CPWLLyNDAwMDAgbGV2ZXItbWl4ZWQtdGFyZ2V0cy0yOTc5ANvN6FfhylRZ0V1twhwLDt9fPHKfNDAwMDAgbGV2aS1hZGFwdGl2ZS1nYXVnZXMA8aXhzN6xbZOv2w9Z1nS4gq5W/jI0MDAwMCBsZXZpLWdhdWdlLXJlY291bnQAGL9iMlomPRuxVMxvFO1m6lYXUSI0MDAwMCBsaWZ0aW5nLWNoZWNrcG9pbnQtc3BhY2UAUhl+RdMkcfDN1gPZ2O+ARoUBGeA0MDAwMCBsaWZ0aW5nLXJlbGF0aXZlLWhpc3RvcnkAV5O3fiUj+qeboBCMu9KcYaYC4Mo0MDAwMCBsaW5lLXBvcnQtdW5wYWlkLWNhcAC7cA1zBuuzNBAHOTYy9sarS02BMjQwMDAwIGxpbmUtc3lzdGVtLXNhdHVyYXRpb24Al/V1uVoBcgEZbzSM8RG8ZWsJoH40MDAwMCBsaW5lYXItcG9ydC1ib3Jyb3dpbmcA5aCeEwiTg/fJeRJ/Sgt+zUcpugk0MDAwMCBsaW5lYXItc2lnbi10b3RhbC10cmFmZmljAKrREDr5zsdGS+I/TDlCMgM9lOFQNDAwMDAgbGl0ZXJhbC1jb21wbGV0ZS1yb3ctcGFya2luZy1jYWxsZXIAczML4QruvZJdlw6HTIh/g4MFMrU0MDAwMCBsaXRlcmFsLWVsZW1lbnRhcnktaW50ZXJjaGFuZ2UA40PhT2rsJ6wwGhp4dbjavy5sYHY0MDAwMCBsaXZlLXBpbi1kcmlmdC1hdWRpdC1zZWVkNTk4NQD7HrEBA3x/1Bj4D5nyzLxjtue8DTQwMDAwIGxpdmUtcHJvamVjdGVkLWNvcHkta2VybmVsAKailConGo+4tNcOzWx0wgt+SdEWNDAwMDAgbG9jYWwtY29yYW5rLW9uZS1jb3N0AIWgU1gpWewjtq40ThiYCkITJXKVNDAwMDAgbG9jYWwtZWlnaHQtZm9ybS1jYXB0dXJlAPSY7t3d4hnpoieP0fq35id6TkwJNDAwMDAgbG9jYWwtcmluZy1yb3ctZmFub3V0AATEErOnj+XmMG2RnuCwpB18idk5NDAwMDAgbG9jYWwtd29yZC1yYW5rLXNoYXBlLWNlaWxpbmcAK8v2lLONXoW9VBsRyG0iCkVW0N40MDAwMCBsb2Nrc3RlcC1saXZlLXJvbGUtYXVkaXQACxDo9AVWHzDBfjPFONbS6SfAbRY0MDAwMCBsb2ctYWJzb3JwdGlvbi1ib3VuZACRQJ7xazdKx0oomomVK/O4Uqfd5jQwMDAwIGxvZy1wb3RlbnRpYWwtdGVtcGxhdGUtcmFua3MAadTy10ynkW9L8eX7vSMp8ZrPV+o0MDAwMCBsb3N0LWZyZWUtY292ZXItYm91bmQAeY5GvKsH2q5H+KvWH6e2DsIcU0c0MDAwMCBsb3dyYW5rLWNvbW1vbi1yZWFkb3V0LXNlZWQ3MjZiABvV2hq5yUBO2XDymneZTgzpAGhsNDAwMDAgbWFjaGluZS10cmFuc2Zlci12ZXJpZmljYXRpb24AK7FnnU/477t/3CJcA4hhQQ4qSGw0MDAwMCBtYW50ZWwtZWRnZS1jYXAAhvTzOXjh3NuWYUrPkJKcIIxLTlA0MDAwMCBtYW51c2NyaXB0LWV4cG9uZW50LWNsZWFyYW5jZQBJCnUfzRINWtE25eBo8W2hg/i3CzQwMDAwIG1hbnktYXhpcy1lbmNvZGVkLWF4aXMtZ3VhcmQArxcDDPggyKBslVn3sXReYEvNfRo0MDAwMCBtYW55LWF4aXMtcHJpbWUtY3V0b2ZmAEnKtRerhhs5QEm1bIoJPEOfwGgvNDAwMDAgbWFueS1heGlzLXByaW1lLXByb2R1Y3QtbG9zcwAQEM0NkYxkrQBsL1FT/WC/wrt6ODQwMDAwIG1hbnktYXhpcy1wcmltZS1zdXBwbHkA3GBuQrCvmguoqErdFHfQBKJMgJc0MDAwMCBtYXJrZWQtcmVzaWR1YWwtcmVmbGVjdGlvbgCstrfJW5mxLsqx9931Kf2KbxgGvDQwMDAwIG1hc2tlZC1lOC1wYWRkaW5nLXRyYW5zZmVyABsWCy9iNVGcPM3OVLhY/HRAKaYNNDAwMDAgbWFza2VkLWU4LXB1bmN0dXJlLXRocmVzaG9sZAC2PmOroWkrB1hAwG8QV7wMklB2eTQwMDAwIG1hc2tlZC1yb290LXN0YXItYXNzZW1ibHkACIysGAFiQ1o4MSGCSiz4TuIMjxA0MDAwMCBtYXNrZWQtcm9vdC1zdGFyLWZsb29yACOC9lIuAoTjp72IGDQIErotQnBXNDAwMDAgbWFza2VkLXN0YXItZnJhbWUtY29tcGF0aWJpbGl0eQCclBJdc8vKyfPzceDxIBZ5xHKd0jQwMDAwIG1hc2tlZC1zdGFyLWZyYW1lLWNvbmZsaWN0cwAHskCNbfaXgnWngc8iFOgC0qoSwjQwMDAwIG1hdGNoaW5nLWxheWVyLXJvdW5kaW5nAHCwHyu2XwDbasgIcqDLdHBcnU0pNDAwMDAgbWF0Y2hpbmctc3VibGF5ZXItbm9ybQBwdIZ2kW08NGiN7O4IDqJE/sGFcTQwMDAwIG1hdHJpeC1hbGdlYnJhLXRocmVlLWZhY3RvcgBnYDOfUZZQWLImYYqGtjaNA1kDaDQwMDAwIG1hdHJpeC1leHBvbmVudC1zeW50aGVzaXMAp8MLFGK4buavfzcrMiS5Fsws+v40MDAwMCBtYXRyaXgtcHJvZHVjdC1jb21tb24tdGhyZWUtZmFjdG9yAOO3BwFnv28jlJYdvX3niv4ECrYENDAwMDAgbWVjaGFuaXNtLXByZXAAiSwXCXZM2wxgijwXD0JaShUhs8w0MDAwMCBtZXJnZTUxMTItcmV0ZW50aW9uLXJlY2VpcHQA8n9EcatljXlAA4gmrTmKfDeiRp80MDAwMCBtaW5vci1iaXQtYnVkZ2V0APmZcbBEtmY9gZvSS2jzvEkMh5mvNDAwMDAgbWlzc2luZy1qb2luLWZyYW1lAInVkjWOK6BZYEM8O6pMqZQ+/ygUNDAwMDAgbWl4ZWQtYmxvY2stY2xpbWItb3ZlcmhlYWQAnlMVrztKAkpemdu8QsP0GBJVe3A0MDAwMCBtaXhlZC1jbGlmZm9yZC1keWFkaWMtaW1iYWxhbmNlAHtoul1Ngttv6SJ3gRbiM9YIpls3NDAwMDAgbWl4ZWQtY3V0LWVpZ2h0LXN0cmVhbS1iaW5kaW5nAI7G7yRGq+W7DM7d+HzNF2AYfwsaNDAwMDAgbWl4ZWQtZGVtb3Rpb25zLXQzNwD52+PIeQvTZBY/4cKuX1Wf/snsJTQwMDAwIG1peGVkLWZ1c2lvbnMteDU0LXQzNwBhz40mxSTffPbAUtKnfJl1VbLIsjQwMDAwIG1peGVkLWdsMi1ibG9jay10YXJpZmYArmzuqRTZet3RRfvYiVGjqw7Ixl40MDAwMCBtaXhlZC1tb21lbnQtc2NyZWVuAF5VwV8hOlKfRedxLWGe22zficVkNDAwMDAgbWl4ZWQtcG9pbnQtc2NhbGFyLWRpZ2VzdAANeFaMeoLrU7+UpMZ+zzCpfAXYKjQwMDAwIG1peGVkLXBvaW50LXZlcmlmeS1tYXNrcwDkMRqnnQuPTPaQPKnSUITG8+jIEjQwMDAwIG1peGVkLXBvcnQtY292ZXJhZ2UtYXVkaXQAEAhv4B7qaHA/VXFV4UPlbcjK0i00MDAwMCBtaXhlZC1wcmVjaXNpb24taW52ZXJzZS1ib3VuZGFyeQDGJvfZAN64nl3/hxtuaJRP2tkUazQwMDAwIG1peGVkLXByZWZpeC1mb3Vyd2F5LXZhbGlkYXRpb24AQmHAscnT4mXy/OCqdN58U1FmP2M0MDAwMCBtaXhlZC1wcmVmaXgtZm91cndheQArMWR/bt6YL9IPzVkvhAUPZcOEWDQwMDAwIG1peGVkLXByb3ZpZGVyLWFkbWlzc2lvbgALTk8MQSIN8cE2+vrvi8rTQ/ZPCjQwMDAwIG1peGVkLXF1YWRyYXRpYy1jaXJjbGUtYm91bmQABeLn0AlmuC+abhxVulcrsSZxxWs0MDAwMCBtaXhlZC1zaWduLXBoYXNlLXNwZWN0cnVtACy3WZ7Gz5VBDrLrRcnK9gBTs16PNDAwMDAgbWl4ZWQtdDM3LWVudHJhbmNlcwDI3rmaeLUOn3S7LcUcbCH0o9shJjQwMDAwIG1peGVkLXQzNy1zb3VyY2UtaG9sZGVyLWZ1c2lvbnMAfRDgG/U/YQ591sC3dihA9iwipEc0MDAwMCBtaXhlZC10YXJnZXQtY2FwYWNpdHktY2VpbGluZwAaKzn08YNonxqoo4IfY7ld54sO1jQwMDAwIG1vZHVsYXItZ2F1c3NpYW4tcmVjb3ZlcnkAFj88k+KnvNAJvv52sz+qRnTEFb00MDAwMCBtb2R1bGFyLXBvcnQtYm9ycm93aW5nAEt+Ir6JhogNlfS/d32941xb1M8iNDAwMDAgbW9ub3RvbmUtb3duZWQtY2VudHJlLWZsb29yACwfetq51N0V2xiHcWQXnFTz6FSBNDAwMDAgbW92ZWQtYWRkLWNyb3NzZWQtaW52b2ljZQCnSoscNOH5qIE5yPnJFOxquCLFzjQwMDAwIG1vdmluZy1hbmNob3Itbm8tcS1jZWlsaW5nAPAmhgtxyP/vRVUW1p9rEevmPPyuNDAwMDAgbXVsdGktY29ubmVjdG9yLTdxLW9ic3RydWN0aW9uAE+m75WFmu9qttKXA314VzrqYoGaNDAwMDAgbXVsdGktbGluZS1uYXRpdmUtZXh0ZW5zaW9uAI6A9Rl5LRW6Osn/BtAAxo8vhDvjNDAwMDAgbXVsdGljb2xkLXdpZHRoNy12YWxpZGF0aW9uAJa34XXRF0a9e7fx4/ChNg1qic8DNDAwMDAgbXVsdGljb2xkLXdpZHRoNwCvTb6bUIfHsQvAV/qq9uJur4389zQwMDAwIG11bHRpY3V0LWtlcm5lbC1jb25kZW5zYXRpb24AQg0KNh1qXkVDgIVzutbOn+o8v+c0MDAwMCBtdWx0aWlucHV0LXNoYXJlZC1mb3VyaWVyABMfKfn4PAJCJ1+wkITYXcRvMHZCNDAwMDAgbXVsdGlwYWlyLXNjaGVkdWxlLWJvdW5kACO+rgIBQp95pdBMR2aqDPUNc3IuNDAwMDAgbXVsdGlyb2xlLXJhZGljYWwtcGVuY2lsAPYo1/+So36k90OHFORsj/n2UwNUNDAwMDAgbXVsdGl0YXBlLXByZXNlcnZpbmctbXVsdGlwbGllcgCGIbQHRz9vzPavSdf9VT8CItiyxDQwMDAwIG11bHRpdGFwZS1wcm9vZi10b29sa2l0ALnTSia37+Ck8T6Lbd7/BnNXkv8rNDAwMDAgbXV0YWJsZS1jb25uZWN0b3ItZGVsaXZlcnktb3B0aW11bQA0XBwYi9txcFP80BPk4oGnsLbK5jQwMDAwIG11dGFibGUtc291cmNlLTc4OXEtaW52b2ljZQBmxpYAVhCsfekyP/O/21xPZbx1CTQwMDAwIG11dGFibGUtc291cmNlLWNvbm5lY3Rpdml0eS1ib3VuZACvziodArYtjKh9r+DdDAudJ72NADQwMDAwIG11dGFibGUtc291cmNlLWNvbm5lY3RvcgCugAlxFMdsBduv6oX+7GFkHwfpCDQwMDAwIG11dGFibGUtc291cmNlLW1pbmltdW0tcXVlcmllcwAEcjxvusYMMMqPhA65Wh+fnVqTZjQwMDAwIG11dGFibGUtc291cmNlLXBlcnNpc3RlbnQtY29ubmVjdG9yAF4+KNhHAnrAWls+an/CsT450TUqNDAwMDAgbXV0YWJsZS1zb3VyY2UtcG9ydC1ib3Jyb3dpbmcAGCIuy3UX1MekiRGwZZf6DZRE2Jk0MDAwMCBtdXRhYmxlLXNvdXJjZS1zaGVhci1jb3N0ANR0fIyMj29ox/cY05GpGxjKrsZgNDAwMDAgbXV0YWJsZS1zb3VyY2Utc2l4LXF1ZXJ5LXhvcgBShCd9ihfiNzVu4sNWg8k+VyeXsTQwMDAwIG11dGFibGUtc291cmNlLXVuaWZvcm0tdGFyaWZmAJfTELw6ac2j0d5JrCu5uO0QpeLJNDAwMDAgbmFycm93LW5ldW1hbm4tc2VjdGlvbgDd1tLePxKu9rq30KZJ6Heo098SWDQwMDAwIG5hcnJvdy1yb3ctaGFsZi1nYXAAJCotOI0jApbM3rLaRUhmwuqBx480MDAwMCBuYXRpdmUtY2NhY2hlLWNvbHVtbnMA4B+rXHjXGy77Xg7brmq8AlPbsyE0MDAwMCBuYXRpdmUtY2VudGVyLWZyZWUtY29kZQBZ3Db5wnVBami2pR5VCMvXLLrhDDQwMDAwIG5hdGl2ZS1jZW50cmUtY2FwdHVyZQDxTwonXB9TVWZkb9kU0nelCTgbKDQwMDAwIG5hdGl2ZS1jbGlmZm9yZC1nYXVnZS1jb21waWxlcgC9h8Tih2W5Bo9kP8+EPetwamn8XDQwMDAwIG5hdGl2ZS1jb21wbGV4LW1vbWVudDU1MgATgX64rxbHZcxsufoRAQGhfdrq9zQwMDAwIG5hdGl2ZS1jb250YWN0LXJlc3ludGhlc2lzAB5Vx4MJTgqUGU3X19EKG56ZSLxJNDAwMDAgbmF0aXZlLWNvbnRyb2xsZXItY29uZ3J1ZW5jZQDpfZlStSPSvajjDuNqZi9p9BhjJzQwMDAwIG5hdGl2ZS1jeWNsaWMtcmVjb3ZlcnkApcgYv8RoFYQcVSqof92HMmoEz2s0MDAwMCBuYXRpdmUtZHVhbC1zdXBwbGllcnMAGAOnpLAcRtf9kR750TpPylI+oy00MDAwMCBuYXRpdmUtZXJyb3ItY2hhbm5lbC1hbXBsaWZpY2F0aW9uAOPBT4R/zSJoxO/lxq3REtGd3ZDGNDAwMDAgbmF0aXZlLWZyYW1lLWNhcnJ5aW5nLXN3YXBzACkDDG441AKaIHSb53bCio6r2d4FNDAwMDAgbmF0aXZlLWZ1c2lvbi1yZXN0b3JlZC1zaGVhcgCn2tLYAf0GiKj7ujpbAQ24RI0b8TQwMDAwIG5hdGl2ZS1pbnZvbHV0aXZlLWR1YWwAt7rWiYDe3ivj/YnsvN4yIWM00yE0MDAwMCBuYXRpdmUtaW52b2x1dGl2ZS1wb3J0LXRyYW5zZmVyADQvbJHjNRz+qHNKHyDhPaFBilVvNDAwMDAgbmF0aXZlLWthcHBhLTMwMjAxNjU1ACobSQRoFc2E2H9FFb3TzZ6cvjiYNDAwMDAgbmF0aXZlLWxhdHRpY2UtcmV0aW1pbmcANU5NH0gk0ddeXo+kzXPgnkOv2RI0MDAwMCBuYXRpdmUtbGlmdC00NjM1LWRlbHRhLWNoZWNrAFs9xae8vGo3WVsEtyN5KkfDDjtxNDAwMDAgbmF0aXZlLWxpZnQtcGhhc2UtdGFncwDG2CskU5DYiyEzQNxzGC62/ziemDQwMDAwIG5hdGl2ZS1vcmJpdC1wYXJ0aWFsLWZ1c2lvbgB+bN4YBN9bLA8Zd4zlMcqBv8a7UjQwMDAwIG5hdGl2ZS1wcm92aWRlci1saWZ0ABGcdUq84QImCEsre2POQ2h2sx7ONDAwMDAgbmF0aXZlLXF1ZXJ5LWJvdW5kYXJ5AIyWfd4yojbvZ3Bfhx9h3iKoMQ93NDAwMDAgbmF0aXZlLXF1b3RpZW50LWludGVyZmFjZQDlTEqyh43ySfou8oS2JK3bayjAJzQwMDAwIG5hdGl2ZS1zY2FsYXItY2hhaW4tc2NyZWVuANZ75D9u3xdUqSqZ1RSHyokAs8y/NDAwMDAgbmF0aXZlLXNoZWFyLWJhdGNoAIgAJGexT4lYPUWapjoUqH52qXeyNDAwMDAgbmF0aXZlLXNvdXJjZS1jb2RlcwA49IJ5hm2xwxsJ7aP6L3tiVCdY6DQwMDAwIG5hdGl2ZS1zcGxpY2UtcmVjb3VudAD1kfZe6xyCLZSLRTYc4Ct3EirnYzQwMDAwIG5hdGl2ZS1zcGxpY2UtcmVwbGF5ANUlVzUyJKOEkBJwiNM8h0Q5LoMhNDAwMDAgbmF0aXZlLXN1ZmZpeC1lcnJvcnMASun73vmXdTqI5IHbJe2KwgDs4h00MDAwMCBuYXRpdmUtd2FycC1ldmVudC1iaW5kaW5nAOFy5CoZKOSRkZTHumdsItapYs4gNDAwMDAgbmF0aXZlLXdhcnAtZXh0cmFjdGlvbi1ib3VuZGFyeQAnNjrnC5MVrOO46qiC5hsaTd512zQwMDAwIG5hdGl2ZS13b3JkLWZmdADDby+EK8cuCgTnqLz2IHY1j9QnXDQwMDAwIG5hdGl2ZS13b3JkcmFtLXRpZ2h0ZW5pbmcA8hbbHomVL6uGgBmEDUim06AQ6dQ0MDAwMCBuZWFyZXN0LWNsb3NlZC13b3JkLWxvd2VyLWJvdW5kACbizuNWIF8d/dRYArHHB3F8A5HANDAwMDAgbmVnYWN5Y2xpYy1zaWduLWNhbmNlbGxhdGlvbgD3ukXnV6WO0KZOd3mr6ppnmiXoIzQwMDAwIG5ldC10YXgtcmFuay1jb21waWxlcgA3xmKvOj1sMtQq1+BBTTBfDAsJazQwMDAwIG5ldHdvcmstbG9nLWRvbWFpbi1hdWRpdABW516uUCbD9ABJQzpYvzjTm6S/YzQwMDAwIG5ldW1hbm4tcm91bmRpbmctYXVkaXQAVfx4OR9+m9QdyXuTN3DqiMLPJEc0MDAwMCBuZXVtYW5uLXRhaWwtYm91bmQAWU40hVzzWUQzuEQraUA+XLBaMZY0MDAwMCBuZXd0b24tcHJlZml4LWF1ZGl0AAumZyZ16W1c8yvu61vtT8FYY9/PNDAwMDAgbmllbWVpZXItbGF0dGljZXMAciqYoBTlqHNXgREKOwIPdqIAhTc0MDAwMCBuaWxwb3RlbnQtY2FsbC1mbG9vcgDz6c9uPgmCqoItacLJTCpdiOSD6DQwMDAwIG5pbmUtY29zdGx5LXJhbms4LWNvcHktZmxvb3IArFumk/dpieVGIQtp6uLgq9e60Mg0MDAwMCBuaW5lLXNvdXJjZS1qb2huc29uLWNoYWluLXNlZWQ5MjNlZGYAHQQWJg1prXONmZUy0tuC+mGv86M0MDAwMCBuaW5lLXN0YWdlLWJyaWRnZS1hbHBoYWJldACUqEc/HWbFMUGUiBPRDgAnnta41TQwMDAwIG5pbmUtc3RhZ2UtcHJlZml4LWF1ZGl0LXNlZWQ3MAB879Om5ulOyXm1XglQfjMrMLjChDQwMDAwIG5pbmUtdGVybS1kZWNvZGVyLW5vcm1hbC1mb3JtLXNlZWQ0MgAev5OCAQirCbIQdcZj25BtEUzDMzQwMDAwIG5pbmUtdGVybS1vdXRzaWRlLWNvbHNwYWNlAL5cIRr+zKy/IKaXuIUtxUS+21B5NDAwMDAgbm8tcGhhc2Utbm9ubGluZWFyLWJvdW5kYXJ5AMSBq9+cIW1IM7wJ6obDJDY6BWU5NDAwMDAgbm9uY29tbXV0YXRpdmUtdHdvLXJvdy10YXJpZmYAQFjEUvh4J6tSlxXCkiL916SCgIc0MDAwMCBub25jb21tdXRpbmctcXVvdGllbnQtcmVzdG9yYXRpb24AfbPBdEg+cWOI8bolwfYclLuzprg0MDAwMCBub25mYW5vLWludm9pY2UtZmxvb3IAYNcEpQNT22pvS1OwIp6OFVYJPQ00MDAwMCBub25saW5lYXItY3V0LWV4aGF1c3RpdmUtYXVkaXQAvqNvb55Lpbdut/i9WZoApODHqGE0MDAwMCBub25saW5lYXItZnJhbWUtY3V0LWJvdW5kAInvvA8NkRzALRCFmkltRvpu1AbrNDAwMDAgbm9ubGluZWFyLW1vbm9taWFsLWNvbnRyb2wtY2VpbGluZwBtYXjiki1DY1vD4DCbAN52PTZymjQwMDAwIG5vbnVuaXQtc2lnbmVkLWNvbm5lY3Rvci1yaWdpZGl0eQDmtXdsYPBFoUq2E/zrDLcc5EgVRDQwMDAwIG5vcm02LWNvbnN0cnVjdGl2ZS1mZWF0dXJlLWV2YWx1YXRpb24A85fycuXfjhLlweyqqnKb7tUFBWE0MDAwMCBub3JtNi1keWFkaWMtY29tcHJlc3Npb24AOs7xvVreU367XxO1H5TqskmSH100MDAwMCBub3JtNi1keWFkaWMtZGVjb2RlcgBUZqVokVGr7/41HHC8ScqnuA9MnDQwMDAwIG5vcm02LXN0cmVhbWluZy1mZWF0dXJlcwCdURpVNXzyi8DSTCaMtD12fWqxGDQwMDAwIG5vcm1hbC1mb3JtLWV4aGF1c3RpdmUtYXVkaXQANmpFf6rYfeMLSKOjZeGpcCM2agw0MDAwMCBub3JtYWw0NS1hLXJldGltaW5nLWJvdW5kYXJ5AFUE3Ueo9K4y1i46Tp7PeB8KnA7BNDAwMDAgbm9ybWFsNDUtam9pbnQtcmVzdG9yYXRpb24AFFJjfSg/WeUwCeS8+VplMKPastE0MDAwMCBub3JtYWw0NS1vd25lci1jb3N0LWJyaWRnZQDArZvamqDEdqbbtqBTnHT1B1/ggjQwMDAwIG51bGxzcGFjZS1jb21wbGV0ZW5lc3MtZ3VhcmQAI1K0s84byOIjWZ1wi/1QKc6xyRA0MDAwMCBvYnNlcnZhYmxlLWNvbm5lY3Rvci1yZXBhaXIAJ0UUWFAzo4c4Q6/17Aoa+6xE5Y80MDAwMCBvYnNlcnZlci1zYWZlLXJlc3RvcmF0aW9uAGKraXl6Jat72whJznrmQM79WhYfNDAwMDAgb2RkLWN5Y2xlLWZpdC1yaWdpZGl0eQBGmDyaPvHAfMp0Z7Kgvd/65gQrVTQwMDAwIG9kZC1jeWNsZS1xdWVyeS1jYXBhY2l0eQColZZMV1VLq62mqlRBa1i75QJOJjQwMDAwIG9kZC1kaWhlZHJhbC1qb2ludC10YXJpZmYAWD846q+TZMQmCFEgeGKe9ELBDlg0MDAwMCBvZGQtZml2ZS1jaGFyMi1taW5yYW5rABrDLH9uwTVC+NZ1OHk/VhQNmSHcNDAwMDAgb2RkLWtlcm5lbC1iaXQtbWFyZ2luAC6qWTf4YbtXOzWqAZNn4C+NgKktNDAwMDAgb2RkLWtlcm5lbC1iaXQtdGFyaWZmACAcuhTcMXRMak1rb7cYbz6kH4t+NDAwMDAgb2RkLWtlcm5lbC1jb2VmZi1iaXQtdGFyaWZmAPEjyiZMPazi+ubIboUtyVms0mg2NDAwMDAgb2RkLWtlcm5lbC1xdWVyeS1wYWlyAMQx3MF8KPluaBgjs6CxsFY3AXCpNDAwMDAgb2RkLXBhaXItYmxvY2stcmFuawC2hESWDJTs6uIzLaN7iGzTcwp64TQwMDAwIG9kZC1wcmltZS1kaWhlZHJhbC1pbnZlcnNlLXJvdGF0aW9uAMonSyUxsgOWOKMngGLw06XKYapZNDAwMDAgb2RkLXVuaXQtdHJpYW5ndWxhci1yYW5rAAiWIvaEz+KSXuW5W0abjq+xUeh+NDAwMDAgb21pc3Npb24tbGFuZXMtcHJvZHVjdGlvbgDPGLQ6U4fnZbleUFp3lPdmEzZUKDQwMDAwIG9taXNzaW9uLWxhbmVzLXNlZWQ5MgDD/XVYoACLTI9r+EjGVFm4bBGU1zQwMDAwIG9uZS1jb3NldC1vcmJpdC1idWRnZXQAaGm8kS/9aa0TDITO1J9VLrX6SsM0MDAwMCBvbmUtZmFjdG9yLW9mLXQAjMyKqPl/5/TiDrojJTUc4qPhE5k0MDAwMCBvbmUtZnVzaW9uLWNvbXBpbGVyLXRhcmdldACNta2Zbq6T0Kh2/QBtix7MHXTchTQwMDAwIG9uZS1xdWVyeS1lbmRwb2ludC1zY2FuAHe1HOqqsnwNEZ+/Qv3jAbh6y76YNDAwMDAgb25lLXNpZGVkLWRlY29kZXJzLWFsbC1tALCiaKXYUImFI0/+Hdt6LAtPZ5dkNDAwMDAgb25lLXNpZGVkLWV4Y2Vzcy10aHJlZQANqBxC1VQJtIhkNwY8YYg+SUW9mjQwMDAwIG9uZS1zaWRlZC1sYW5kc2NhcGUtYXVkaXQAWQGO9hvEJXp0TTEI1SjQ9NzmPlE0MDAwMCBvbmUtc2lkZWQtcGFkZGluZy1hdWRpdADjH6dAsTIwci+HOK6iz8YBV+ghQzQwMDAwIG9uZS1zaWRlZC1zaXgtbXVsdGlzZXRzAAqLyV6cAJQF3yuqFsbqlTqqAGpENDAwMDAgb25lLXRlcm1pbmFsLWgzLXByZWZpeACFOiWDUjYj5QGkodMZa1/DfK/JoDQwMDAwIG9uZXdheS1hbGwtZmllbGQtY2xvc2VkLWZvcm0Agj32A05aZjJCEcpqGJtESzRfPXc0MDAwMCBvbmV3YXktY29yYW5rb25lLWhlYWRlci1sYXcABMpycPXSEMawe5jGudlyN4t2LVc0MDAwMCBvbmV3YXktcGFpci1jb3JyZWxhdGlvbgAM8xgVkQdjI1lSZO9wSMWFPCtkhDQwMDAwIG9wdGltYWwtZGlydHktcHJlcGFyYXRpb24AAOq56eN73cf0QQVy/6A1Ia4U3gw0MDAwMCBvcHRpbWFsLW5ldW1hbm4tcXVhZHJhdGljLXRhaWwAElNywP6fzOh9SzWBATS0txz9pTg0MDAwMCBvcHRpbWFsLXNlY29uZC1jYWxsZWVzAK0tWcaxsuvsz4RkKJQMNOLdHA2SNDAwMDAgb3JiaXQtY2xvc2VkLWNhbGwtYm91bmQAsRqCrIcFM9LX2tdOJURyCQ8nIys0MDAwMCBvcmRlcjIxLW5vcm1hbC10YXJpZmYAz7xyqz4gt6+tdlNr8MpvS5BdM4Q0MDAwMCBvcmRlcmVkLWNlbnRyZS1pbnRlcmZhY2VzADCxlEHY/3rpEmcpMKTtBDQEFpA+NDAwMDAgb3JkZXJlZC1kaXJ0eS1lY2hvAKaUX8gQ2tVOh95B0nV5wMwLuaL4NDAwMDAgb3JkaW5hcnktb25lLWZhY3Rvci1zdG9jawARPi7S7K7Mi6daRmkjoKWeEp5eeDQwMDAwIG9yZGluYXJ5LXJhdGUtZ2FwANremfUVicBQXVpIvzq/UCW5BbL1NDAwMDAgb3JkaW5hcnktcmF0ZS10aHJlc2hvbGQAjPRgsyKdN5LR53kIl8EswobBdmM0MDAwMCBvcmRpbmFyeS1zZWxlY3Rvci1wcmltZS1jbGFzc2VzAGHfU1B28AQK3i0muF7A01rDSOEiNDAwMDAgb3JpZ2luYWwtY2xlYW4tc291cmNlLWludGVyZmFjZQBk0cNdiHksoTWpRqD3w8I39gpz/zQwMDAwIG9yaWdpbmFsLXBhaXJlZC1nYXAAqam6SOJmC38IZh5KfzBXcR5X/ng0MDAwMCBvcnRob2dvbmFsLWNoYWluLWhlYWRlci1sYXcALnlmYHrNx+xJGoe0fGy0tszep6E0MDAwMCBvcnRob2dvbmFsLWNvdmVyLWludm9pY2UtYXVkaXQAFruq3gl6WF4XKNNOXcGVxLMZY5c0MDAwMCBvcnRob2dvbmFsLWludmVyc2Utd2l0bmVzcwBu4Wax3rnEh4Vl6vokJCxZNIHueTQwMDAwIG9ydGhvZ29uYWwtcGhhc2UtZGVmZWN0LXNwZWN0cnVtAGtDTQDkzNmtytt9gSo8eXIX6LzvNDAwMDAgb3J0aG9nb25hbC13aXRuZXNzLXByZWNpc2lvbgAQNTaFSpUc4oLtYSS0+iyxdILCXjQwMDAwIG91dGVyLWJlcm5zdGVpbi1jZXJ0aWZpY2F0ZQAugiy96GTQCTZ32RYGfXAf9BDiNzQwMDAwIG91dGVyMjI5OC11bmlmb3JtLWRvbWFpbgCXfEqhgg/nCHJtqeaqG4IRver1rjQwMDAwIG91dHB1dC1ib3Jyb3dlZC1mYW5vdXQAM4z0371jkn/KLhvzqbdveMPqxEs0MDAwMCBvdXRwdXQtc2lnbi1yZXN0b3JhdGlvbi1zZWVkNTEA2kG23ziSuXunsUwL06YEjgvc52E0MDAwMCBvdmVyY29tcGxldGUtYW5kLXJlYWxpc2F0aW9uLWZsb29ycwD/C1RTJjJtOZ9Mtz6MdWPuOBXQATQwMDAwIG92ZXJjb21wbGV0ZS1yYW5rLWludGVyZmFjZQBOLpErW3fBXmLeX5fIsRf2agI/hDQwMDAwIG92ZXJsYXAtYmF0Y2hpbmctaW5kZXBlbmRlbnQtYXVkaXQAUGiWkB8hXmKB50StWwRoZHhg6As0MDAwMCBvdmVybGFwLWRpc2N1c3Npb24tYmF0Y2hpbmcAD0MDWDGL5UfBy6PZceOI9oeVgJ80MDAwMCBvdmVybGFwLXBhdGgtaW5kZXgAqsVhSFvoeYqAOpN1dnWbLdYkdTc0MDAwMCBvdmVybGFwcGluZy13aW5kb3ctYmlsbACShbDEvgduF/hmeanOcctDpqSNyTQwMDAwIG92ZXJuaWdodC1wci1yZXZpZXctMjAyNjEwMDkA6x71iARVU8lll1u+aaiAfBD+mMQ0MDAwMCBvd25lZC1jZW50cmUtd2lyZS1mbG9vcgA78soUO8VZYOX6mSHczZihT4I8QzQwMDAwIG93bmVkLWtlcm5lbC1zaGFyZWQtbWFwAOOsxohv98K3+9DeeohPkG8SC3D0NDAwMDAgb3duZWQta2VybmVsLXdlYWstZHVhbGl0eQCmKVJvDMzE8VCsWdvukJHWLnUvbzQwMDAwIG93bmVkLXF1ZXJ5LXBvcnRzAL3A6eLBlF5B1mCvfSXtPXz+2MJWNDAwMDAgb3duZWQtemVyby1tYXNzLXNjcmVlbgBG5DkXGbc5+Vmjd1tB/4CprnP7HTQwMDAwIG93bmVkLXplcm8tbmF0aXZlLWRhZwDYldhCyvH1cjBqZnX9aLG8e/aOCjQwMDAwIG93bmVyLWJvdW5kYXJ5LWF1ZGl0AGnKKmQsPKl+oVali0Lz6nU/TdTTNDAwMDAgb3duZXItZm9vdHByaW50LWJpdHNldHMA0FL/ZM1YT/U9aizYhOLakR+N9jI0MDAwMCBvd25lci1mb290cHJpbnQtY3Jvc3NjaGVjawBERiPoaUWo8oCOulYUaRwUq2xamDQwMDAwIG93bmVyLXByb2ZpbGUtdW5pZm9ybQDQH6mJBlBCCUecUMzd0h2OgzU8SjQwMDAwIG93bmVyLXJlcGxheS13b3Jrc3BhY2VzAB8zpbUl5ImfzLiH8YTpRy8BthY1NDAwMDAgb3duZXItc2xpY2UtbGVkZ2VyAHUVI4WOChnUg9eeSCLkNlTE1jxqNDAwMDAgb3duZXIteDItYWNjZXB0YW5jZS1ib3VuZGFyeQBuC3CN/N93zSLgarNAkZc0k3M9ljQwMDAwIHAxMC1maXZlLW5ldy1rZXJuZWxzAATre7tEebyymprMRmh6/me1ovPNNDAwMDAgcDEwNC1hYnNlbnQtaGVhZC1mbGFnMi1hdWRpdAAcpiEifL3mLxEDJRrVr4FozLS5DzQwMDAwIHAxMDQtYWRhcHRpdmUtcm91bmRpbmctY29sbGlzaW9uAHY1c/U1EP/x9nRKMWdcbm0d+8zWNDAwMDAgcDEwNC1hZmZpbmUtY29tcGxlbWVudC1sZWFuAKAd+raM72+xTvA0AHSIiGJJ3U8FNDAwMDAgcDEwNC1hbGwtcGFpci1jb25zdW1lci1idWRnZXQAiMsKVh7bgRGRluZxCl6xmJlemNI0MDAwMCBwMTA0LWFsbC1wcm9qZWN0aW9ucy1zZWVkNjcAB3Ui21ywggEQLo4dlogd2IPEYy00MDAwMCBwMTA0LWFsdGVybmF0aW5nLWN5Y2xlLW5laWdoYm9yaG9vZADSmBCLv1AuNc0/+nS7Wexek+yggDQwMDAwIHAxMDQtYXJyaXZhbC1zaGFwZS1hdWRpdABgQbWCTJ2zpMNRR4E9qQWUD8cCsTQwMDAwIHAxMDQtYXN5bmNocm9ub3VzLWNhcnJpZXItYm91bmQA0jqonJwXntoZMRpjDfVuS95t6880MDAwMCBwMTA0LWF4aXMwLWVuY29kZXItZmliZXIAkTqGXex29LsehI+cI1rKls0cvhw0MDAwMCBwMTA0LWJsb2Nrd2lzZS1saWZ0aW5nAKD4BB1SjZZ1Pl4FWGAGPVB3NJBtNDAwMDAgcDEwNC1jYWxsZXItZmVhc2liaWxpdHkAQZ13MTOdsQLvLpxSY7b0Aud1bDs0MDAwMCBwMTA0LWNhcnJpZXItY2FwdHVyZS1vcmRlcgAKbD+JFbYCW07OF0wwWp/BGhyShTQwMDAwIHAxMDQtY2hhbm5lbC1jb3JyZWN0aW9uLWFic2VudADa9Tb11mqJzYUSLD5M7fIVKX5IKjQwMDAwIHAxMDQtY2hhbm5lbC10b3VjaC1yZXN0b3JhdGlvbi1hdWRpdADlVjlkEZqQQm/fLpvd0/Vxntwm4jQwMDAwIHAxMDQtY2xlYW4tZHVhbC1wcmVjaXNpb24Az/uNiLxCD8HNir3gdRFoWCS38TA0MDAwMCBwMTA0LWNsaWZmb3JkLWV4YWN0bmVzcwBuV6Tg52PDFpitWf9DSH6OeKC68jQwMDAwIHAxMDQtY29hbGVzY2VkLXByaXZhdGUtcmV1c2UtYXVkaXQA81IDtbyg7h/0BIPmlGrbaX4CiDA0MDAwMCBwMTA0LWNvYWxlc2NlZC1wcml2YXRlLXJldXNlAOpYA4glyChsR6a9kZICrvSapUyhNDAwMDAgcDEwNC1jb2hlcmVudC1zdXBwb3J0LXdpdG5lc3MANYLDusY2cEtS0EuKD552WfMLkZQ0MDAwMCBwMTA0LWNvbW11dGF0aW9uLWN1dAB0CvbYBvPWvtPl4Mvi1lkwfycYLzQwMDAwIHAxMDQtY29tcGxlbWVudGFyeS1kdWFsACozNZ/kfI6ucns3/2pAc1bpvgmTNDAwMDAgcDEwNC1jb25lLWN1dC1pbmRlcGVuZGVudC1jaGVjawC6hyUPYZJazNf1BD0tiD6ED0JdqTQwMDAwIHAxMDQtY29uZS1jdXQAreuPoMaq5x2ULvJUksuAWXM2f100MDAwMCBwMTA0LWNvbnN1bWVyLWJ1ZGdldC1hdWRpdABYQ1V4kT9HeJZYZn6x9qtrz/kaATQwMDAwIHAxMDQtY29uc3VtZXItdGhyZXNob2xkLWF1ZGl0ANHpitxVupAbhCwoljt9U+0+ManvNDAwMDAgcDEwNC1jb3B5LXJldGlyZW1lbnQAPRP3ZOaWGXyLFm63853ptzhmdjk0MDAwMCBwMTA0LWNvcnJlbGF0ZWQtZW50cmFuY2UAt1GbgwIck190WFocewBC9pRa0Ok0MDAwMCBwMTA0LWNvcnJlbGF0ZWQtZXhhY3QtbW9kdWxlAEzvKsV4Hb4eJJuqiklhBPfOlJ4MNDAwMDAgcDEwNC1jb3JyZWxhdGVkLWZ1bGwtcHJlZml4AHTtRm4IVyUwQPkSgv+USL7D50BJNDAwMDAgcDEwNC1jb3VwbGVkLWxpZnRpbmctcmVzaWR1ZXMA4QwB/FHUZ1K3LrrSAv9PG08lBEg0MDAwMCBwMTA0LWNvdXBsZWQtcHJvZmlsZS1idWRnZXQAX7bS7BZYZzB9D/zy/ethEdJtfhs0MDAwMCBwMTA0LWNvdmVyYWdlLWdhdGUAE7h8SQ7YTGa0e4O6pXdtwQSNcXQ0MDAwMCBwMTA0LWNyb3NzLWdyb3VwLWNvbGxlY3RvcnMAG2FBGdwLhUhRC33SqDNm0AOgGhY0MDAwMCBwMTA0LWNyb3NzLWdyb3VwLW5hdGl2ZQAV2KUPNaUh3U9SQMujl/iudZbZkTQwMDAwIHAxMDQtY3Jvc3NpbmctcHJvZmlsZS1zY3JlZW4A45piupmw3FdhSLzhZgPvyI0Y26E0MDAwMCBwMTA0LWN1dC1tYXhmbG93LWF1ZGl0AEH92pygrOv90Agovwf5JFLVu6KvNDAwMDAgcDEwNC1kZWZlY3Qtb3V0cHV0LWNoYW5uZWxzAHYwuBZ0uL+mIYdNX2zBp0DDASgPNDAwMDAgcDEwNC1kZWxheWVkLXByZWNpc2lvbgBQDfbN7MaSDKwst6tgiLTQzjOGnTQwMDAwIHAxMDQtZGVsYXllZC1xdWVyeS1zaWRlAJocrbHqkcGkXNmGTabYDgYNPf8qNDAwMDAgcDEwNC1kaXJ0eS1jYXRhbHlzaXMAczrlWf1jAnvV272l4YM8OzdAm280MDAwMCBwMTA0LWR1YWwtYWRkLXJldGltaW5nAIgbSK8JDWR2fRKGr8yJUv75tTFUNDAwMDAgcDEwNC1kdWFsLWJvdW5kYXJ5LWNvbnRyYWN0cwAilDULmK9zkSue8HYCj+kGWOoOMDQwMDAwIHAxMDQtZHVhbC1lbmRwb2ludC1mdXNpb24AzZKNXJYlNC3foIzs7TuSbbQxNQg0MDAwMCBwMTA0LWR1YWwtcHJlY2lzaW9uAKWwCWW87UlMCxbm2yWqaR3GSgJKNDAwMDAgcDEwNC1lbmNvZGVkLWJvdW5kYXJ5AMTKJY/cuoWM+5CiIQ2C5kdgufjcNDAwMDAgcDEwNC1lbmNvZGVkLWV4aXQtY29uc3VtZXIA6wrHtZENjMDTsO2aNrfTgLCuGnk0MDAwMCBwMTA0LWVuZHBvaW50LWNvbXBsZXRpb24tZmxvdwBL+EZfND2xbUflQy8aIqmK3dG/eDQwMDAwIHAxMDQtZW5kcG9pbnQtZ2VvbWV0cmljLWJ1ZGdldAC8W5vF1MzRSgC2749TkWeOoMbWozQwMDAwIHAxMDQtZW5kcG9pbnQtcmFuay1sZWFuAM9ClAnceNke7IOFEzUAvYqNGMt+NDAwMDAgcDEwNC1lbmRwb2ludC1zYXR1cmF0aW9uAB9rAXaNoFCsQ46bq4HOXvSNKza0NDAwMDAgcDEwNC1lbmRwb2ludC1zcGFuLWF1ZGl0AAyi4qICAoclPKmsOVdHos1DoFEUNDAwMDAgcDEwNC1lbmRwb2ludC1zdXBwb3J0LWNhcGFjaXR5ALquFhrV9tdgrGs2Vs7cD8MdRrjeNDAwMDAgcDEwNC1leHRlcm5hbC1wb3J0LWNsb3N1cmUAXoE01MtAw7Y0l0p/GUyaOMm9l1k0MDAwMCBwMTA0LWZpYmVyLXRhZy1vcmllbnRhdGlvbi1jaGVjawBTs9yzwZuxAPgAK96oGiUutjVKJDQwMDAwIHAxMDQtZmliZXItdGFnLXNlYW0AfjAVhs4kyNw4UOc1+OwQHdR8pWU0MDAwMCBwMTA0LWZpZnRoLXRyYW5zZmVyAEXRjW0Ia7GSgeRERo1ft83wp1g5NDAwMDAgcDEwNC1maXJzdC1jb3B5LWRyb3AAVBQwFLf81G2uX4pofmNxEuvLUXg0MDAwMCBwMTA0LWZpcnN0LXRyYW5zZmVyAHxtYItoSxbeLI8VsxRGyEE54UDeNDAwMDAgcDEwNC1maXhlZC1jb3Zlci1jdXQtcmV2aWV3AEEhcBAKev1u4fmRPJK+92KewlFuNDAwMDAgcDEwNC1maXhlZC1tYXRjaGluZy1mbGFnLWNvbnNpc3RlbmN5AOgAVMw93SQS3hdToRm4V9MINaCpNDAwMDAgcDEwNC1mbGFnLWNoYW5uZWwtc2NoZWR1bGUASbhmx3wlQjXZ96JYGFQ52XJn/KQ0MDAwMCBwMTA0LWZsYWctZ3JhbS1ib3VuZGFyeQCoWoCHNdSCIjut+KOkwxS1D2BOczQwMDAwIHAxMDQtZmxhZy1pbmZvcm1hdGlvbi1mbG93AMT/bYZq/rI2ooTOYf2DFmfJsbg6NDAwMDAgcDEwNC1mbGFnLXJlbGF5AALV/ugHICOrwLyDtq5uCIuMs8FnNDAwMDAgcDEwNC1mbGFnMC1yZWxheQC+bBiUqflkJ6NSnm9F0zje1Z6Z4TQwMDAwIHAxMDQtZmxhZzAtdGFpbC1vd25lci1ob3N0AIcQyT8vQEWaR5hFa0IorhLWFslFNDAwMDAgcDEwNC1mbGFnMS1oZWFkLXN0ZXAtcmVwYWlyAGlwPLdqdOFQiQw5FHDHWT2V03XpNDAwMDAgcDEwNC1mbGFnMS1zaWRlLWNvcnJlY3Rpb24tYmlsbAA97dCQPSPdoa7jEvGCxMMmtaX4nDQwMDAwIHAxMDQtZmxhZzQzLWhlYWQtc3RlcC1yZXBhaXIApyF7Y4SFsJmz2ZJg7LWGcDgQt+g0MDAwMCBwMTA0LWZsYWc0My1zaWRlLWNvcnJlY3Rpb24tYmlsbAA3NHCizwEOu5g5OsTRgwrcUTctXTQwMDAwIHAxMDQtZmxhZzktaGVhZC1zdGVwLXJlcGFpcgC3sW8I6ig8J3KVYK8ytmcgFjVjsDQwMDAwIHAxMDQtZmxhZzktc2lkZS1jb3JyZWN0aW9uLWJpbGwAy8xjLdgvF0gVwTW58ftYeyvduEk0MDAwMCBwMTA0LWZvdXJ0aC10cmFuc2ZlcgBGWOi2Nax/T4PTzPbBrXbKL/u6KTQwMDAwIHAxMDQtZnVsbC1jaGFydC1qb2ludAC+IqG++0LT+4ffUFGNigCp077HLjQwMDAwIHAxMDQtZnVzZWQtbGF0ZS1jbGVhbnVwAHbOoA3E3CeyXcu/WOtYp0I4AwGmNDAwMDAgcDEwNC1mdXNpb24tY29zdC1oZWFkcm9vbQAeYa/GUTTPjvKp9pzai3v/x2tdxDQwMDAwIHAxMDQtaGVscGVyLWVuZHBvaW50LXN0b3BzAIalOBgB2lJLoVuqQM+SNoiGIKqDNDAwMDAgcDEwNC1ob3N0aW5nLXRocmVzaG9sZAAYRdGgl/ETpTHRfyS7tlBghLORkTQwMDAwIHAxMDQtaW5kZXgtdGVuc29yLWJyaWRnZQBTgkjmnl1Y50flAu926ot5PAVyGjQwMDAwIHAxMDQtaW5pdGlhbC1yZWFkZXJzANT3BxjPzSFQw7iBj3IVBjn9Wt1pNDAwMDAgcDEwNC1pbnBsYWNlLWVudHJhbmNlADKutnKTNkm/temb4tvlqNrb0xlSNDAwMDAgcDEwNC1pbnRlcmxlYXZlZC1zZWFyY2gAK4VWTo19hnTzVpp6BIhUdAv3qhg0MDAwMCBwMTA0LWludGVybmFsLWdyaWQtY29sbGVjdG9yAFv6nxrp4aAmwVnsQlNKxH3PQAGQNDAwMDAgcDEwNC1pbnRyaW5zaWMtcGh5c2ljYWwtZHVhbAAFuR/lf5iZAX68H+HloiTzPoDPfDQwMDAwIHAxMDQtaW52YXJpYW50LWxpZnRpbmctbGF0dGljZQDojf+zbAFgyieM/RrEowl0WAPTSjQwMDAwIHAxMDQtaW52ZXJzZS1yZXNpZHVlLXBlcm11dGF0aW9uAJmsPy8J9SHtYqsEqyGiE6NOdqhDNDAwMDAgcDEwNC1qb2ludC1jb21wZW5zYXRpb24AUyK01N/k+EsIJD2/AXoNhfJX7Ys0MDAwMCBwMTA0LWpvaW50LWVuZHBvaW50LW9ic3RydWN0aW9uABlu6B5x6kJxOlr+lsg7DCeuA/KxNDAwMDAgcDEwNC1qb2ludC1wcmVmaXgtZ3JpZACJEwijW4uZ5hLdI+yuy21T/GK3OzQwMDAwIHAxMDQtam9pbnQtdW5pdC1mbGFncwCyUlpiUf2QT5KieqIDqrQCZt5N9TQwMDAwIHAxMDQtbGF0ZS15Mi1hY3F1aXNpdGlvbi1zMzQAEKLMrODVITA60jGm0b0DHNtlk800MDAwMCBwMTA0LWxpZnRpbmctcmVzaWR1ZS1yZWR1Y3Rpb24A/rjkHF4MKzR7tXC1CorhGziO5Tc0MDAwMCBwMTA0LWxpdGVyYWwtaGVscGVyLWdhdGUABLcmgIYMG+MguWWwOMybSwWz5100MDAwMCBwMTA0LWxpdGVyYWwtbWlzc2luZwBCiv/OLuSawpDJQiwqo19X0qMJgDQwMDAwIHAxMDQtbGl0ZXJhbC1zbG90LWRlZmVjdACSkqOJBy9lmvR0pD1x/AMzxq16GDQwMDAwIHAxMDQtbGl2ZS1oZWxwZXItcmVhZHMA5YY231zQ6Hjdaymjv2Qa+JmS+Cg0MDAwMCBwMTA0LW1heGltYWwtdHJhbnNsYXRpb24tbGF0dGljZQANNbG/ueRTQPgNcjeKnQzbsc8fMTQwMDAwIHAxMDQtbWVtb3J5LXJlbGF4YXRpb24tc291bmRuZXNzAHkEJ+kO2O1p+Sn78tVNnKMBFKkHNDAwMDAgcDEwNC1taW5pbXVtLXNoYXJlZC1zcGFjZQBm5oZQAuC5PNcEijIeuIW2C3NvVjQwMDAwIHAxMDQtbWlzc2luZy1wYWlyALk099LgNTgs71Yqd4HH7R0WEWuONDAwMDAgcDEwNC1taXhlZC1ncmlkLWNvbGxlY3RvcgCgbhJBAEELcv7FxuLO8RXYT80NcDQwMDAwIHAxMDQtbW9kdWxhci1yZXNpZHVlLXJlZHVjZXIAW4d7mHpYqwvRTlBtlOu2S86EOlc0MDAwMCBwMTA0LW1vbm90b25lLXJlbGF5LWZsb29yLWF1ZGl0AKdkj7ZnvRaHIp4nwvB741CCj7p7NDAwMDAgcDEwNC1tb3ZlZC1oZWxwZXItY3V0ADvyvvdoQiPTUA1W7e8G4QJtjLy3NDAwMDAgcDEwNC1uYXRpdmUtY2hhbm5lbAAu7wSX4gtSti32+j7wGm5NicxEAjQwMDAwIHAxMDQtbmF0aXZlLWNvdmFyaWFuY2UAVF44wJGZd/Uu1Dro89JRrXey6qk0MDAwMCBwMTA0LW5hdGl2ZS1tYXR2ZWMtY2FjaGUAoqHkiVJcFtuu1viF69dpCG8SdXk0MDAwMCBwMTA0LW5hdGl2ZS1wcmVjaXNpb24A6mf16b4GN+oA976SIG6N7uqEi8c0MDAwMCBwMTA0LW5lc3RlZC1yZWZpbmVtZW50LWN1dACXtUVgiHXWsd0wy8+ZIOXvucWKLjQwMDAwIHAxMDQtbmV3dG9uLWludGVyZmFjZXMAsZGTVlxBoGB9BpdXy4xzGo4iQP00MDAwMCBwMTA0LW5ld3Rvbi1zb3VyY2UtY29udHJhY3QAHquFwVVMIs77ZvIGBPeZ468Ygig0MDAwMCBwMTA0LW5vLXJlbGF5LWNvdmVyLWF1ZGl0ADV9qpmI+bCZietinfmI9rtYrnpaNDAwMDAgcDEwNC1udWxscGFpci1jb21wZW5zYXRlZC1zaGVhci1zZWVkMzE4YmQ1AAwQsBEGxX33dsxwBGaP8pRduB4RNDAwMDAgcDEwNC1vYnN0cnVjdGlvbi1pbmRleACzongbcYqyepJol3CYWGgQMgIL+TQwMDAwIHAxMDQtb21pdHRlZC1jb21wbGV0aW9uAC3khQUqE3iuLwyp1z1KT0HqIvhTNDAwMDAgcDEwNC1vbWl0dGVkLWZyYW1lLWFkYXB0ZXJzAC40Mb6G4qgcKkd56gSAqdoPQvgrNDAwMDAgcDEwNC1vbWl0dGVkLXNpZGUtY29uc3VtZXIAhFu3pvPy5d6kvVagS7Zk0uXty5g0MDAwMCBwMTA0LW9wZXJhbmQtd2VpZ2h0ZWQtZmVlZGJhY2sAn+G1Ib+NgTIxZ+pU1G4XRsV4x8M0MDAwMCBwMTA0LW93bmVkLWNvbGxlY3Rvci1kdWFsAERS3C6zrHL0z9OmIM912H2YRL0JNDAwMDAgcDEwNC1wZXJzaXN0ZW50LWR1YWwAXz2/JNBXIGhqfyi7bOk2vaH6UDU0MDAwMCBwMTA0LXBoYXNlLXVuaWZvcm0tZ2F1Z2UAVt4s4j6+QAjRurHdMiLVLcSoRJM0MDAwMCBwMTA0LXBoeXNpY2FsLWNvcnJlY3RlZC1kdWFsAP+s24e3aefS0VJ65LWqoFmVn2jGNDAwMDAgcDEwNC1waHlzaWNhbC1kdWFsLWdyaWQA8gMMVjOjQnYgJoBpLfMQfuxNESQ0MDAwMCBwMTA0LXBsYW5lLXRyYW5zZmVyAMMDO+odBZfajvRi2al4EPGwYywrNDAwMDAgcDEwNC1wb2ludHdpc2UtZGVmZWN0LWNvbnN1bWVyAAOP1aqp6qCWdRG4CiMeMxScz9IoNDAwMDAgcDEwNC1wb29sZWQtY29sbGVjdG9ycwDITKxl5IV6HeAZniO+jA54psgsaDQwMDAwIHAxMDQtcG9vbGVkLWN1dC1pbmRlcGVuZGVudADxoB1gfuh/25s0//SJLiSkl/XAXjQwMDAwIHAxMDQtcG9vbGVkLW5hdGl2ZQC8qU/HVdS8dehhYUEUjMjC/vlxuDQwMDAwIHAxMDQtcG9vbGVkLW9uZWhvcC1hbmQtcGh5c2ljYWwtY29uc3VtZXItYmlsbAAG8cnZe1I3J4xiSl4fdcjU6yfLjjQwMDAwIHAxMDQtcG9ydC1jaGFydC1wYWlyALuw0FtMBo+vNnh2QokiedZKv/4yNDAwMDAgcDEwNC1wcmVmaXgtbWlucmFuawBZd3ILHhY0eWktaB9nftUjb2762jQwMDAwIHAxMDQtcHJlZml4LXRhaWwtaW5kZXBlbmRlbnQtYXVkaXQAXfDqKppGpmMSR1Kz8Bga/3AQYQk0MDAwMCBwMTA0LXByZWZpeC10YWlsAOJpupogYZ9qkmBmUMCq9PnV3j7vNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtZmxhZzAtYXVkaXQAlqXXOn3a1i+suzDswbitKOCO3mo0MDAwMCBwMTA0LXByZXNlbnQtaGVhZC1mbGFnMS1hdWRpdAC9dvHuHUz5vBcwIGVmuCiKG4L6pzQwMDAwIHAxMDQtcHJlc2VudC1oZWFkLWZsYWc0My1hdWRpdADkXcbVP9jKS2tcMN2CNj+tXflRRzQwMDAwIHAxMDQtcHJlc2VudC1oZWFkLWZsYWc5LWF1ZGl0AIQZfqwdrGgXbOvIhW9aAPX9Bu+QNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtc2lkZS1jb3JyZWN0aW9uLWZvcmNpbmctY2Vuc3VzAOn614sasF4GfEFrr+KD1SVbsdAzNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtc2lkZS1jb3JyZWN0aW9uLWZ1bGwtcm93LWNlbnN1cwDWoqh++alPw4Xe/No2wv4SQBeaZzQwMDAwIHAxMDQtcHJpdmF0ZS1jb2RlLXJlbGF5LWZsb29yAO/Z/EDQcCSs76K1vQhhofttBkC+NDAwMDAgcDEwNC1wcml2YXRlLWRlc2NlbnQtcmV1c2Utc2VlZDkxNWZhOTY5AHgvtdfQfCK4k0UrCdnJ0KUJfeHgNDAwMDAgcDEwNC1wcml2YXRlLW1hY3JvLWR1YWwAF99tGCgJGY6Q8XI73RUhOeEZuEw0MDAwMCBwMTA0LXJlZmluZW1lbnQtcmFuay1idWRnZXQAbTAuOKZYdOwDj8ptxnLdGPi8C4M0MDAwMCBwMTA0LXJlbGF5LWNocm9ub2xvZ3ktYXVkaXQAIRYAccnm8L5Ab2W+IxlGWYTc/Nc0MDAwMCBwMTA0LXJlbGF5LWNyb3NzaW5nLWNhcGFjaXR5ABRoxZ2B4HE29JdceVLthBRDyXP6NDAwMDAgcDEwNC1yZWxheS1mb3J3YXJkLWVycm9ycwBRQo+GdpYuyXbPr1pGmPmU4ySK9jQwMDAwIHAxMDQtcmVsYXktZ3Jvd3RoAE1jrtFbkmqiaqQs3lj/acWsuBFJNDAwMDAgcDEwNC1yZW1hdGNoZWQtZGVwZW5kZW5jeS1zY3JlZW4Aa8BkvRTSlUZ92FJjZxrVAkerLq80MDAwMCBwMTA0LXJlcXVpcmVkLWNvZWZmaWNpZW50AApmxp/HJpceh7C/n/burwCiNdJrNDAwMDAgcDEwNC1yZXNpZHVhbC1jb25zdW1lcgA+c4k+OwfpRceiCILh6Vbp4S0+9zQwMDAwIHAxMDQtcmVzdG9yZWQtcXVlcnkA2z5GurcmBuMO6sd8m14G4xK4uQc0MDAwMCBwMTA0LXJlc3RyaWN0ZWQtdXBkYXRlLWNvZGVzAMyztUYM0HhGozRsTiunRpU/yTPqNDAwMDAgcDEwNC1yZXRpbWVkLWVycm9yLXJlY292ZXJ5AIHvOeZEznnA/JQS49qdSDYW/ueBNDAwMDAgcDEwNC1yZXRpbWVkLWludGVybmFsLWdyaWQAOkqbff5OQakyc5LZ3NPS/x8XLkY0MDAwMCBwMTA0LXJldHVybi1jb250cmFjdC1tYXRjaACS6veN7eeHAIK5hmKsiUrffBhsYjQwMDAwIHAxMDQtcmV2ZXJzaWJsZS1saWZ0aW5nAKeqjL5Xdktt0OCmhPR7oOrXnU9xNDAwMDAgcDEwNC1yb2xlLWV4Y2hhbmdlLWNhbGxlci1hdWRpdAD7He1sQIMdf/VxnLm6LNpwPJjrzjQwMDAwIHAxMDQtcm9sZS1leGNoYW5nZS1yZXNpZHVlAGMhFNyJVL8l+B7W2CgXIt7raMixNDAwMDAgcDEwNC1yb3VuZGVkLWNvbGxlY3RvcgB3tzm6Aw131RAPczhB1ssGE3ecSDQwMDAwIHAxMDQtcm91bmRlZC1uYXRpdmUtY2hpbGQADStMdgwDPd4fS9skMkboLHyyHpE0MDAwMCBwMTA0LXNoYXJlZC1jaGFydC1yZXRpbWluZwAaMBaMG6P934LbwLi7QKvHGvvrozQwMDAwIHAxMDQtc2lkZS1jb3JyZWN0aW9uLXJhbmstb2JzdHJ1Y3Rpb24AQ0vf8oUCQ8cThkW13fqb9OuEvTg0MDAwMCBwMTA0LXNpZ25lZC1taXhlZC1jYXJyaWVyLWJhbmsAzs5ArQ2H7kc0ZfCbroO7r7UH3UA0MDAwMCBwMTA0LXNpbmdsZS1jdXQtcHJpY2UA18Gp5UPzBFk1R4LM3IJ7IxVazcY0MDAwMCBwMTA0LXNpbmdsZS10YXJnZXQtYWNxdWlzaXRpb24Ah+4NEPKFvX5CEFf8Y9Ab+c3kMsk0MDAwMCBwMTA0LXNvdXJjZS1jaGFydC1zaG9ydGN1dAAzLPbNfrbHaxOEVEhcKj/YCdxphTQwMDAwIHAxMDQtc291cmNlLXByZWNvbmRpdGlvbmluZwDsd5yatSosoCAm/Cpnda18k3UklzQwMDAwIHAxMDQtc3RhZ2V3aXNlLWVudHJhbmNlABOysY32s85R+YdjkXgBlDz8chmANDAwMDAgcDEwNC1zdG9yYWdlLWN1dADWP7mnAdkR/mjNmQ0cSeJJzLYEETQwMDAwIHAxMDQtc3VwcG9ydC1wcm9wYWdhdGlvbi1hdWRpdAD6U5YGhtuRrOUCajRDPmQAuEE+YzQwMDAwIHAxMDQtdGFpbC1mbGFnMC1jb2VmZmljaWVudADbQkhcV6xx/vuBiXRNQs6eRjSRjTQwMDAwIHAxMDQtdGFpbC1mbGFnMC1mcmFtZXMAcPXyCfgnVdSz8kWoef7sqeGjPGQ0MDAwMCBwMTA0LXRhaWwtZmxhZzAtaW50YWtlAOUzCuqKncuZLE2cIdGI1YoxnFzKNDAwMDAgcDEwNC10YWlsLWZsYWcwLWlzb21ldHJ5ACv4RqRcOuNFqncBCArQoBBM2nczNDAwMDAgcDEwNC10YWlsLWZsYWcwLW93bmVyAH4wUASPmDQwFZ+0IETzmSs/k8urNDAwMDAgcDEwNC10YWlsLWZsYWcwLXJlY2lwZQA3txx+u13KYMoMmVT/1M0LQQm8PDQwMDAwIHAxMDQtdGFpbC1mbGFnMC1yZXN0b3JlADtUOlohHeH3KPAr4fg4+G2ycY7mNDAwMDAgcDEwNC10YWlsLWZsYWcwLXNjaGVkdWxlAMKd4U2SLUingr6o1ualXJhfr3PGNDAwMDAgcDEwNC10YWlsLWZsYWcwLXRyYW5zcG9ydADcs9farb+g9J77awYG7iBHrOhLrjQwMDAwIHAxMDQtdGFpbC1zaWRlLWNvcnJlY3Rpb24tc2VlZDc0OTcxNwBR2zZmvnFI5yA2FktYaY9h1wORujQwMDAwIHAxMDQtdGFyZ2V0LW9yZGVyLWRlbGl2ZXJ5AKMLJjAUfvsfkzbDP0Kl6JxFxPVUNDAwMDAgcDEwNC10ZW1wb3JhbC1jdXQtb2JzdHJ1Y3Rpb24A42kvxkNUgDZax28UIk+NRoHsPpk0MDAwMCBwMTA0LXRlbXBvcmFsLXF1ZXJ5LWN1dACck0cQrTcyiTC5svQ0sFnjmYbV0jQwMDAwIHAxMDQtdGVuc29yLWNvZGUAgeGQxj1rc6Sb9ZcHkwsHxwuYsww0MDAwMCBwMTA0LXRlbnNvci1jb2xsZWN0b3ItYXVkaXQACAF4hlYXw77MGYwchpM+SgxVcxg0MDAwMCBwMTA0LXRlbnNvci1jb2xsZWN0b3ItZXhlY3V0aW9uAHOCx0PUMp9SSZHkn/VjKu0JkFolNDAwMDAgcDEwNC10ZW5zb3ItbmV3dG9uAMmcqQ3YnCUYfUvC3mTOEX2qVTcJNDAwMDAgcDEwNC10ZW5zb3Itd29yZC1hdWRpdAAbuGSwe8hEq2iAvJ4kdBcO0LaJVjQwMDAwIHAxMDQtdGVybS1zaGVhci1zZWVkOGJlNwA6Y1SJ0uHgVTo/ePx76d3UJP3hITQwMDAwIHAxMDQtdGVybWluYWwtY29ycmVjdGlvbi1mbG9vcgA6DFtUCiLiuKPf3deK53MCxWWdhjQwMDAwIHAxMDQtdGhpcmQtdGFyZ2V0LWNvbGxlY3Rvci1yYW5rAAIEz7vXLRvpnzpCGHD7ydEgfeb1NDAwMDAgcDEwNC10aGlyZC10cmFuc2ZlcgC6CCO+kH+PLsNgoomJYjbW9xywIDQwMDAwIHAxMDQtdGhyZWUtaGlzdG9yeS10aHJlc2hvbGQAwLBQceygeqZVb338pMFABW6W5rc0MDAwMCBwMTA0LXRyYW5zbGF0ZWQtcHJvZ3Jlc3MAGYPY7h9UeHAg27u1DKq3zTUyNnI0MDAwMCBwMTA0LXR3by1heGlzLWNvbXBhdGliaWxpdHkAXSQ9jGk4+Tbsc1nK1BH47XHUE7U0MDAwMCBwMTA0LXR3by1jb3B5LWRyb3BzAJUu6ULsjwpb4QaKmsfEJesLkzqZNDAwMDAgcDEwNC10d28taGlzdG9yeS1saWZldGltZS1mbG9vcgAA4E693kZLtsH8cH+TbmJXVxeMNTQwMDAwIHAxMDQtdHdvLXRhcmdldC1uYXRpdmUtaW5kZXBlbmRlbnQABTwZLoP4fAZgNZqxs2WQs3H9Zf00MDAwMCBwMTA0LXR3by10YXJnZXQtbmF0aXZlAKukeGGTdppbls2WWNU9PBuYOGGJNDAwMDAgcDEwNC10d28tdGFyZ2V0LXNoYXJpbmcAyHvT3YJzHLOcA5qKJwbgiK52lhY0MDAwMCBwMTA0LXVuaWZvcm0tY29tbXV0YXRpb24tZ2FwACwr6BaUnDRJ9eob/mEK/AgnVNuTNDAwMDAgcDEwNC11bmlmb3JtLWVuY29kaW5nLWdhcADUYqcjq8pYa0u4lOLav3XBOzwNyDQwMDAwIHAxMDQtd2hvbGUtd29yZC1pbnRlcm5hbC1ncmlkAC63IQx5JyJY/yvM9jyV0sPVv/82NDAwMDAgcDEwNC15MC1zb3VyY2UtYWNxdWlzaXRpb24AQxudqdjBwz1MjaDiTB4bDhJItOQ0MDAwMCBwMTA0LXkyLWxhdGUtYWNxdWlzaXRpb24ARDJTOWVyfg/qWtQ4VbxjdT98p4o0MDAwMCBwMTExLWNvcHktcmFuay1jZXJ0aWZpY2F0ZQAfa/fN0UPWsV8L75ZnDylheYKBDDQwMDAwIHAxMTEtZGlydHktYmxvY2s1MDkA5cJbpF39m4doZwyZ/tIh7oGSbf40MDAwMCBwMTExLWludGVybGVhdmVkLW1pbmktbm9kZXMA5XBeeQcgzIjDOAuF8zZ9aEbARRw0MDAwMCBwMTExLW1pbmktbm9kZS1iYXNpcwB2GzlSoX+JYiAyThps5uD5uaDSfzQwMDAwIHAxMTEtbWlucmFuay1wcm9vZi1yZWNvbmNpbGlhdGlvbgDZbYV43EgqAaZ4ReVJuBG+QcLtODQwMDAwIHAxMTEtcGFyc2V2YWwtY29weS1pbnRlcmZhY2UAnPehNyr2JAwl/BtaQUz/esqjhng0MDAwMCBwMTExLXJlY2VpdmVyLWNlbnN1cwDapNM/aikAKvExT2z7henv/2t7VzQwMDAwIHAxMTEtcnVwLWVwb2Nocy1zZWVkOTEAmp4CUtvxPXvaAGlXaE0rnQ+JRBE0MDAwMCBwMTExLXNlbGVjdGVkLXBsYW5lLW1hdGNoaW5nACAkGD8RxFCq1Bn8j/t0317ejg81NDAwMDAgcDExMS10ZW5zb3Itc2hlYXItc2VlZDQ3ACequyEXahQKSzFXbW3yObZFfp7nNDAwMDAgcDExMi1hMi1yYW5rNS1zaG9ydGVuaW5nAIq6avnLPP7oKF0caMX9kXEgg74bNDAwMDAgcDExMi1hMi1yYW5rNi1zaGFycC1zaG9ydGVuaW5nAOLRyC+LsSRYcjoqkfgDVptSVtdRNDAwMDAgcDExMi1hMi1zaW5nbGV0b24tc2hvcnRlbmluZwAJdHy+VDnRJ8G0thAErfOC473RiTQwMDAwIHAxMTItYTItc3VwcG9ydDQ1AHMOv3KBuqA863rOoXjZ/xaFbEKmNDAwMDAgcDExMi1hMy1yYW5rLXNpeC1zaG9ydGVuaW5nANt9MKAIUxZJlnA5czJpmmHhMCioNDAwMDAgcDExMi1hMy1zaXgtZmxhdAAdIF2V3SKdDbo9T2eo3nEJBfHnQDQwMDAwIHAxMTItYTMtc3VwcG9ydDI5ABtKyhHUwsl2ddBb1J/GiqNXoxeFNDAwMDAgcDExMi1hNC1vcnRob2dvbmFsLXRocmVzaG9sZACacXJ+wE2kzHmjV0SEvZ38Ubg1HzQwMDAwIHAxMTItYTQtc2hvcnRlbmluZwCD5dNR0h1JEHy8+RkKpg8Ijgdv3zQwMDAwIHAxMTItYTUtc2hvcnRlbmluZwCFcNi35TcWAOMegfVzOhm+HOzJgzQwMDAwIHAxMTItYTYtZml2ZS1mbGF0ALiFnvRZI4kDOcRIaAO82+aDVsR+NDAwMDAgcDExMi1hNi13ZWlnaHRlZC1jb3ZlcgD34a8NfyG7gDDTvg0StDH4o+Q/4DQwMDAwIHAxMTItYWxwaGE3NC1jdXQtcXVhbnRpZmllcnMAZp7T1SHGO6Hdwtx+2i+CncR8Fak0MDAwMCBwMTEyLWFscGhhNzQtZml4ZWQtY292ZXItY29tcGxldGUAgbZrLayGYO29rgS2NuT06IkkUNY0MDAwMCBwMTEyLWFsdGVybmF0ZS1mcmFtZS10cmFjZQDO3ruB8F3CSEV6kDIK5Y7/s4W6IzQwMDAwIHAxMTItYWx0ZXJuYXRlLXN0YXItdHJhbnNmZXIARs66Gac3Om6A7q+K3gvBuQFNf7A0MDAwMCBwMTEyLWFzeW1tZXRyaWMtdW5pdC1hdWRpdC1zZWVkNDMAChwsBWtCVn4HvOn+i/mHjaZIpTA0MDAwMCBwMTEyLWI1LWNhbGxlci1pbnZlbnRvcnkAV4qPjNfnkSNy5tYb+lUus1KkNB00MDAwMCBwMTEyLWI2LXQ0LW9yaWdpbmFsLWNvdmVycwCgP2/nneQi5UitlOs9qoCaMZv3GzQwMDAwIHAxMTItYjYtdDQtcmVjb25jaWxpYXRpb24A1iTZvEsXayCSFggAcHPxFYlV6Xs0MDAwMCBwMTEyLWJhdGNoLWNlbnRyZS1mbG9vcgBIw2yKNZauXDzwsBfQLCcvV615vTQwMDAwIHAxMTItYmF0Y2gtY2hhcnQtY2hhbmdlAONMxHYkoe4stNbWM0SbQgr6Pmn6NDAwMDAgcDExMi1ib3VuZGFyeTI0LXNlZWQzOQC9z454IiwMzT9JdsBn7YVKOomzpjQwMDAwIHAxMTItYzUtZm9sbG93dXAtYXVkaXQATJ+NiLgMkuAvUcf0VYzEFH41/Gw0MDAwMCBwMTEyLWNlbGwtY3Jvc3NpbmctcmVzaWR1YWwtZmxvb3IAbDdLAaA4xcUGHIW8naPu5m1i6U80MDAwMCBwMTEyLWNoYXJhY3Rlci1jb250YWN0LWF1ZGl0AEpGfOp3QhVYgPpRUtm/u/BlSYKUNDAwMDAgcDExMi1jaGFyYWN0ZXJpc3RpYy10d28tbWlucmFuawDxtPyUyVzGirc/hLcmBd7d8C+VGDQwMDAwIHAxMTItY2hhcmdlZC1yaWdodC1leHRlbnNpb24Ar9iH8tTmH2nZryDaNddGRSVzk0k0MDAwMCBwMTEyLWNvZGVsaXZlcnktbmF0aXZlLWJsb2NrAL0/Ul1kZOIZ5BMEprs1+mAN4tzsNDAwMDAgcDExMi1jb2VmZmljaWVudC1jb3B5LWZsb29yAMJyS4uqZh8APOOWQryVB6xx4KnBNDAwMDAgcDExMi1jb2x1bW4tY29ycmVjdGlvbi1mbG9vcgB4PwVQ6tlV0dMiy90FZ7E7/bLKizQwMDAwIHAxMTItY29tbW9uLWN1dDIzLWNhbGxlcgA6iLhOVTsBSKl/iZ1nC613m7g2BTQwMDAwIHAxMTItY29tbW9uLWRlbGV0aW9uLXNsaWNlAE6hP6piTSGWHNJFkSLr2dEApKxcNDAwMDAgcDExMi1jb21tb24tZGVsZXRpb24tc3BhbgAEIojEQi2eRFd6FXvVttGHusiYsDQwMDAwIHAxMTItY29tbW9uLWZpdmUtZGVsZXRpb24AoQ8ypMjUngxRhM4hbtFGVGaQoho0MDAwMCBwMTEyLWNvbW1vbi1mb3VydGVlbi1jdXQALei46+t5DWpgQq+l+SjB6RkVVck0MDAwMCBwMTEyLWNvbW1vbi1zaXgtc3BhbgDo0LKR02e1yhXKpKKKqTVZPwEhSDQwMDAwIHAxMTItY29tbW9uLXNwYW4tdHJpcGxlLWZsb29yACvKaeR1n+e/YsU8n8+N0I0KZWj9NDAwMDAgcDExMi1jb21tb24yNC1jYWxsZXIAHHXP1UY495t+g0qYDl4jV5cQAPQ0MDAwMCBwMTEyLWNvbW1vbjI0LWdyYXBoLWF1ZGl0AOAiujXEs4dkrmf4eS7MsKIXLDqnNDAwMDAgcDExMi1jb21tb24zMC1zcGFuACmiGYVnnMJTK+rexG8RN7jDc10cNDAwMDAgcDExMi1jb21wbGV4LXNpbmdsZS1saWZ0AJZqDRY+y0dd/MCkK7LtyaspEjfkNDAwMDAgcDExMi1jb3N0YXItY3Jvd24tb2JzdHJ1Y3Rpb24AaYxus/zKwCLY/Bxw7NR6q5RfuMs0MDAwMCBwMTEyLWNyb3NzLWZvcm0tcmFuay10cmFkZW9mZgDLFjTSicnVNqRugk9oALgVq6f19TQwMDAwIHAxMTItY3Jvc3NpbmctYXR0YWlubWVudAB3CiuJligLKCw6xqN7pGbvTyvLNTQwMDAwIHAxMTItY3V0LWNvbXBsZXRpb24tc2VlZDM2ANH/gMWt2boAI59hCYFLyZaN5fsYNDAwMDAgcDExMi1kMy1hY3R1YWwtaW52b2ljZQDBpqNqw+wuHJ/ucO9KQnUHq63njDQwMDAwIHAxMTItZDctc2F0dXJhdGlvbgC+zJddqFGhKkCI5EUhDU4umpUO1zQwMDAwIHAxMTItZGVuc2UtcXVlcnktcmVhZGVyLWZsb29yAFy4DtxGKeyT2wOBL1yp4+aF7G6hNDAwMDAgcDExMi1kZXBlbmRlbnQtcmVhZGVyLWZsb29yAEjDiMlOfa5G0DsJsVXIVx0zA2N5NDAwMDAgcDExMi1kaWFnb25hbC1yYW5rLWJvdW5kYXJ5ADZFMgFN8QaUUCbVhFwzeuG968LPNDAwMDAgcDExMi1laWdodC12ZXJ0ZXgtdW5pb24A5xi//Hq0P/Pn8kDgyKuBf8fJmQg0MDAwMCBwMTEyLWVsZXZlbi1waWVjZS1xdW90aWVudACgUNhh47hZ7IGZIWqxqIQsQE74FTQwMDAwIHAxMTItZXZlbi1ncm91cC1hdHRhaW5tZW50AB95uocFJqtXRCP/Obv734nU8bGsNDAwMDAgcDExMi1leGNlcHRpb25hbC1odWxsLWZsb29yAHvoPEqbh9iYro1hnPIBKfldEE9HNDAwMDAgcDExMi1leHRlbnNpb24tZmllbGQtcmVhZGVyLWZsb29yAGDK29lEM7qFTWsdalWj6I5Fb12CNDAwMDAgcDExMi1leHRlcm5hbC1zdGFyLXJlYWRlci1mbG9vcgBjMgFOQ6X03hLHE4prTCzIOUxLOTQwMDAwIHAxMTItZml2ZS1maXZlLXNsaWNlANh0zKnnj3jG4Hm8tHwPsUT9GmwUNDAwMDAgcDExMi1maXZlLWdyb3VwLXByb2plY3Rvci1saWZ0AO2JY+x0iTkjL9uJF6b4YS01h59uNDAwMDAgcDExMi1maXZlLXRlcm0tcmVhZGVyLWZsb29yALZvZl8nPEP9kaBtErixxr+dURMyNDAwMDAgcDExMi1maXhlZC1mcmFtZS1kaWFnb25hbC1zZWVkNTIACEBa5HgCfYbQRMXH6LJn1VQ97vE0MDAwMCBwMTEyLWZvdXItZGVsZXRpb24tY291bnRlcmV4YW1wbGUAOhkfvULYenj7tMGJKRa7M3+IIYQ0MDAwMCBwMTEyLWZvdXItcGllY2UtcmFuazMArqMEb/ygpxksjuhW7eZCXQZYGnA0MDAwMCBwMTEyLWZvdXItcGllY2UtcmFuazQACzhSzGsp2AUtyvuHORso4p8NhJU0MDAwMCBwMTEyLWZvdXItdGVybS1xdWVyeS1jbGFzc2lmaWNhdGlvbgDYm93rOjJFBvFIRqZDi2MabfySkTQwMDAwIHAxMTItZm91ci10ZXJtLXJlYWRlci1mbG9vcgCgVUbCU99NaGr/+hVf01ch5z/iujQwMDAwIHAxMTItZnJhbWUtYm91bmQAAZE8W5ujMvMGr12qSBAWPn0GPhg0MDAwMCBwMTEyLWZyYW1lLXBhcnRpdGlvbgCDHpKrIwuYfZ7olQJ8dOMyMWCSsDQwMDAwIHAxMTItZnJlZS1yZWN0YW5nbGUtbWl4aW5nAEq4h73tALcxyhU89CIt9W1r90rZNDAwMDAgcDExMi1mcmVlLXJpZ2h0LWV4dGVuc2lvbgAauFIiNAF224zAqy5SZ8+BFgIIgTQwMDAwIHAxMTItZnJlZS1zaW5rLWF1ZGl0OTcAQuzY1ew8Z05qmSXiIvVVr0KHO1o0MDAwMCBwMTEyLWdlbmVyYWxpemVkLW5vbmZhbm8taW52b2ljZQAB3pQpBD4oEFvul7cTxLns2QGyEDQwMDAwIHAxMTItZ2wzLXN1cnZpdm9ycy1zZWVkNDYAjbivpBIr12CGvaqcGGl3scnNJQM0MDAwMCBwMTEyLWdyYW0tc3VwcG9ydC1zZWVkODAAHP/TIG7JFUwsUhQm/pXb58rOINE0MDAwMCBwMTEyLWdyYXBoaWMtcXVlcnktdHJhbnNmZXIAL+zSz7FNOTW+FMBk2eTKTCAr5cs0MDAwMCBwMTEyLWhvdXNlaG9sZGVyLWdhdWdlLXNlZWQwNmFjZQBG/HaV+QBYgk7a6/ZDqRNf72gmJTQwMDAwIHAxMTItaW5oZXJpdGVkLWJvdW5kcy1hdWRpdADgGCM/YJNDxfIzrb2zNbKZtzt4pDQwMDAwIHAxMTItaW50ZWdyYWwtcmV0cmFjdGlvbi1pbnN0YW5jZQCedz3euxfMUhCG69dERg2BNGQ7oTQwMDAwIHAxMTItam9pbnQtbG9zcy1ib3VuZGFyeS1zZWVkNDkAbzh4bX0Lk6VWI5P++bDd6jYJbqs0MDAwMCBwMTEyLWpvaW50LXJhbms1LXBhcmVudADIk0XXjBcImMKds9YSwblaf6GmRDQwMDAwIHAxMTItam9pbnQtc3VwcG9ydC1sb3NzLWF1ZGl0AAOjX2xhpnIwvPhcNiK9B3Roz0z8NDAwMDAgcDExMi1sYXJnZXItcm9vdC1zaW1wbGljZXMAMdiRlHDbLo9CYNdwo2dDp3wVQ9A0MDAwMCBwMTEyLWxpbmVhci1lbmRwb2ludC1saWZ0cwB9qKG77JtPeerfWP1gsZf79XqH6jQwMDAwIHAxMTItbG9zdC1mcmVlLWZyYWN0aW9uYWwtY292ZXIAuYZNu+ZPbJg1yRNn8WnlIvtp2xg0MDAwMCBwMTEyLWxvc3QtZnJlZS1wbGFuZS1ib3VuZADWRwVa4YeObwJ9VrbFNM6RJNfStjQwMDAwIHAxMTItbWFza2VkLXRhbmdlbnQtYXVkaXQA9KA9B8v9QXbsIGiz5XbG38uqX+I0MDAwMCBwMTEyLW1hc2tlZC13YWxzaABytmbJ3NUH3kPx8b2Z8qVF1P5CfjQwMDAwIHAxMTItbWF0Y2hlZC1mcmFtZS1jb3B5LWZsb29yANnDB0sMqzy+aihvICNeJwRGbNsWNDAwMDAgcDExMi1tYXRyb2lkLXJlYWRlci10cmFuc2ZlcgCcCsM6HfnUMd82veyvWDMtXTJ0EzQwMDAwIHAxMTItbWl4ZWQtYTItY2FsbGVyAOeW5rfePWKcxXHXK25OnLtvnUgRNDAwMDAgcDExMi1taXhlZC1iYXNpcy1hdHRhaW5tZW50ALxZ6sA/TibanUI89ggEaP2mebOyNDAwMDAgcDExMi1taXhlZC1lZGdlLXNpbXBsZXgA2dd32jkmihN+feOmrM2kxUSavZk0MDAwMCBwMTEyLW1peGVkLXF1ZXJ5LXJlYWRlci1mbG9vcgBsrMhmIM0QtG/Ki4gTfXWm9+ND2TQwMDAwIHAxMTItbWl4ZWQtcmFuay1hbmNob3IAuGZmQz/fGPxNXOqvWH4+pSORJ7g0MDAwMCBwMTEyLW1peGVkLXJhbmstcmVkdWN0aW9uALJ+ajZHx92cXGUYTvJkcD6ZldjdNDAwMDAgcDExMi1taXhlZC1zaGFycDM5AIhgqzWx1Nyn+QXJt0OR5imviIuGNDAwMDAgcDExMi1taXhlZC1zdXBwb3J0MzgA4r06VxLUsFXeSvfcQKGFpUjcL/c0MDAwMCBwMTEyLW1peGVkLXN1cHBvcnQzOQDs/WrwScMA4sQEpAN5i7y4JuBPCzQwMDAwIHAxMTItbWl4ZWQ1NjYtY3V0MzIALo1eC0JZnZrXoq6c4fxtt3XrUeM0MDAwMCBwMTEyLW1peGVkNTY2LWN1dDMzACzvCueFPT3F+4FGwo2HTHnZROT7NDAwMDAgcDExMi1taXhlZDU2Ni1jdXQzNAD17BH6tS7Kpf15JVslju8xOItalzQwMDAwIHAxMTItbWl4ZWQ1NjYtY3V0MzUAx1tvfuueqeX3MyDon5/UWylhw7M0MDAwMCBwMTEyLW1peGVkNTY2LWN1dDM2LXdpdG5lc3MAwT0QNF3Tr0o91GcDk27XNj+c7RI0MDAwMCBwMTEyLW11bHRpbGluZS1mcmVlLXJlY3RhbmdsZXMtc2VlZDQyAAyKLv8nxWix0PU3bPGmdiKpKRkfNDAwMDAgcDExMi1tdWx0aXBvcnQtcXVlcnktYm91bmRhcnkAgwlmq16mcejA3NbGHcBs+LFSMjg0MDAwMCBwMTEyLW5vLWF4aWFsLXRocmVlLW1hcmsAxK8RSa4azJQ22tv9iylVwxZ1dEk0MDAwMCBwMTEyLW5vbmZhbm8tYWZmaW5lLXJlYWRlcgATs6R4vPdCNSpwujXVDsY2+job4DQwMDAwIHAxMTItbm9uZmFuby1yZWFkZXItZmxvb3IALRP7ODGdse9l6mJi0uNfZLwuCt80MDAwMCBwMTEyLW9mZi1wYXR0ZXJuLXVuaXQtYXVkaXQtc2VlZDUyANP6FeZSZQugpUREAY5BqYbvVZJPNDAwMDAgcDExMi1vcnRob2dvbmFsLWJsb2NrLXRyaXBsZS1mbG9vcgA/9ptZO6LA2fO9m1zKP3JzuztUvDQwMDAwIHAxMTItb3J0aG9nb25hbC1zaG9ydGVuaW5nAPmGFnT+XKaxHqO9D1Vb9Pl9QPqwNDAwMDAgcDExMi1vdmVyY29tcGxldGUtZmFjdG9yLXNwYWNlcwCQi3EaS4fyzCWzOL8A9ls4la73eDQwMDAwIHAxMTItcDgtZXh0ZXJpb3ItZmFtaWx5AKdObbGhhqcSk2GIcqt/eXId4/JmNDAwMDAgcDExMi1wYWlyZWQtZW5kcG9pbnRzAKhxcROaErTq5gP848kUWzzfqRMbNDAwMDAgcDExMi1wYXJpdHktbGlmdC1hdWRpdC1zZWVkNjgAUOGA8PYtnEFPsdcZ8K0NRtGFuYo0MDAwMCBwMTEyLXF1ZXJ5LXNlcmllcy10cmFuc2ZlcgCFN0VrYUCCfZbaK3n20ToyXu9IlDQwMDAwIHAxMTItcXVvdGllbnQtcGFyaXR5AJbgmiA7k/WbqJKbfCqoynWRaGz0NDAwMDAgcDExMi1yYW5rNS1zaGFycDQ3AGN4GjzdbL/m8nuZTIvktJXjt3ApNDAwMDAgcDExMi1yYW5rNS1zdXBwb3J0NDYAzVPwIw1Nomjh712dJcqoTlnshzo0MDAwMCBwMTEyLXJhbms1OS1lcXVhbGl0eQDtF/UfJ+yKpIaJEzM80hp7c2dbSzQwMDAwIHAxMTItcmFuazYtY292ZXItcmVwcmVzZW50YXRpdmVzAMIfzwu1X5leE/FzPSOeRaRodB1+NDAwMDAgcDExMi1yYW5rNi1mcmFtZS1jb3ZlcmFnZQAPwaiAtQKISsCLzL/27PdF2Vs8djQwMDAwIHAxMTItcmFuazYtaGFsbC1vYnN0cnVjdGlvbgB/n104tXDCh4d9ygx2ldsGB6XAQTQwMDAwIHAxMTItcmFua29uZS1jcm9zcy1mb3JtLWZsb29yAKVms2hpL+K3iRDdbQVuOHaw+oVJNDAwMDAgcDExMi1yYXRpb25hbC1kZWNvZGVyLWdhdGUAc4IqH3Mn/T4uXBCyLD9HvX1Lcr80MDAwMCBwMTEyLXJhdGlvbmFsLXJlYWRlci1wcmljaW5nAMGOKDM0Ff2xQJe1+ng1OvRhhNpnNDAwMDAgcDExMi1yZWFkZXItbWVtby1zZWVkOTIAHjv6OHQ/gLIyuEqR4OgKgwbXYlw0MDAwMCBwMTEyLXJlZ3VsYXItcXVlcnktZmxvb3IAJsK1xfU71j7hPfV2mpp9ULGMznE0MDAwMCBwMTEyLXJvb3Qtc2ltcGxleC1leGNsdXNpb24AN3gAPRfm/cCzfSGUXM7cPFYPRjE0MDAwMCBwMTEyLXJvb3Qtc3VwcG9ydC1yaWdpZGl0eQDpU9MzAPp1us1jomBU2wuyXbYdmTQwMDAwIHAxMTItcm9vdGVkLW1pbm9yLXRyYW5zZmVyACUrdRpz6sFenvArcn9na4/XygjUNDAwMDAgcDExMi1yb3ctbWFzay1iYXNpcy1zd2l0Y2gArc/T8vjG1yLESPLFZNXvY9G07bs0MDAwMCBwMTEyLXJvdzU3OS1kZWcyAMVOQvlENUPOCw5VKGFGVFNKOsAvNDAwMDAgcDExMi1zYXR1cmF0ZWQtcHJvamVjdGlvbi1maWJlcnMAX8qHmSAySXtp2vnNdKp7juBK92E0MDAwMCBwMTEyLXNjYXR0ZXItb3JpZW50YXRpb24AnXPkiV/4w+Y/Fa/thLsK/YVhbDo0MDAwMCBwMTEyLXNlbGVjdGl2ZS1jaXJjdWl0LXJlbGF4YXRpb24AXm4INXY7nCCwCl4b/f2/h2WZtPY0MDAwMCBwMTEyLXNldmVuLWZsYXQtZml2ZS1saW5lLWJvdW5kYXJ5AHZYO9Uu/QGoL6a3Ks95H15iqUQ4NDAwMDAgcDExMi1zaGFyZWQtY29ycmVjdGlvbi1jb3N0LWF1ZGl0ADyuiVFHFoHtTJKkCdwwAmXGTpouNDAwMDAgcDExMi1zaWduZWQtbW9kdWxhci1wcm9kdWN0aW9uAFDi/peDQMFr5hDXLU9DweSCOFyoNDAwMDAgcDExMi1zaWduZWQtbW9kdWxhcjg2ALu1ZR7zUQNPVqFrcGvGTk42skdDNDAwMDAgcDExMi1zaW1wbGV4LWNvb3JkaW5hdGUtYm91bmQA2Fok8OrXBBwarZaULMWBSPugOqo0MDAwMCBwMTEyLXNpbXBsZXgtc3VwcG9ydC1idWRnZXQAlJ4WdwGm60K/H814crwXqeWbWmY0MDAwMCBwMTEyLXNpbmdsZS1odWItdHdvLWJlYXJpbmcACNeKJxqb2hEdAug7xXL84jJP5nE0MDAwMCBwMTEyLXNpbmdsZS1saWZ0AN/8uaP4dSwSrTaxmRcJ88HHAqzONDAwMDAgcDExMi1zaW5nbGV0b24tcmFuazkATgqRMnsreQaDWq6fBnfADM0mFns0MDAwMCBwMTEyLXNpeC1kaW1lbnNpb25hbC1pbmNpZGVuY2UAjotb/6kVDMsdtSsnOqrHHIlK2/80MDAwMCBwMTEyLXNpeC1tb2RlLWV4Y2x1c2lvbgDt46ojMZy/j/Y73pZc1OrmkrVzPzQwMDAwIHAxMTItc2l4LXBpZWNlLWNvbmNlbnRyYXRpb24AuiC31sTVwqSuNMm7pIdMaRENr0g0MDAwMCBwMTEyLXNpeC1zZXZlbi1zdXBwbGVtZW50AFYGz7tXnQl1G9BOe7bSD5ceyh1YNDAwMDAgcDExMi1zaXgtdmVydGV4LWJ1ZGdldAC3JHJHrXZ6UsZAZV0Adgv5M9eYuTQwMDAwIHAxMTItc3BhcnNlLWNvbXBsZXRpb24tcmFuawCVXH8GrKDeA9MRWlMxJokyuybXqjQwMDAwIHAxMTItc3BhcnNlLWdhaW4tdHJhbnNmZXIAP0p0mhtOVCNXVTzMPTRWxY6260E0MDAwMCBwMTEyLXN0YXItZmlyc3QtY29zdC1kcm9wAGUNAG7jzMQ+7rtMVk0SOLa3/fJHNDAwMDAgcDExMi1zdXBwb3J0MzAtc2hvcnRlbmluZwB8318nwju2WXvLcseclLm+7bv5DDQwMDAwIHAxMTItc3VwcG9ydDMxLXNoYXJwbmVzcwAZAuZ9mevXqoVEg5aF4XpPxfLFBTQwMDAwIHAxMTItdGVuLWRlbGV0aW9uLXNwYW4A2Ms1F7QSYKoLbaezhew9mG9cxO40MDAwMCBwMTEyLXRlbi1waWVjZS1zaW1wbGV4ANKhuM2cxbPjQk40ZjikZ/v1+6t4NDAwMDAgcDExMi10ZXRyYWQtbG9jYWwtZGVjb2RlcgB4o5DjC0uiM2qmiFvNVAGytW+vkTQwMDAwIHAxMTItdGhpcmQtaHViLWV4dHJlbWFsAJQ5yyvwPR0wUpbaPgiRd0c7bgw8NDAwMDAgcDExMi10aHJlZS1jYWxsLWlzb21ldHJpYy1mbG9vcgAxFGhbK+Qv0jVfcuRMmxi/YD+oJzQwMDAwIHAxMTItdGhyZWUtZW5kcG9pbnQtc3BhcnNpdHkAxVegmBHzg+VOQaMFk5dJGc/bys00MDAwMCBwMTEyLXRocmVlLWZyYW1lLXJlcGFpcgCaDiwfaLrl8UoEoEAwpf7Vpkgl2zQwMDAwIHAxMTItdGhyZWUtbW9kZS1zZWVkNDAATkQCAw7Rv+QiSLMEuH2V2IQDeOw0MDAwMCBwMTEyLXRocmVlLW1vZGUtc2luZ2xldG9uAA2xy/9+jejsPRZ6oEajVFnMcymmNDAwMDAgcDExMi10aHJlZS10YXJnZXQtZGljdGlvbmFyeQCSYAnymdIT9GVxOnUAOyzsewsNFzQwMDAwIHAxMTItdHJpYWQtbWF0cm9pZC1ib3VuZGFyeQBZiymYX3Mh733hl/3WD/Pm2jy4eTQwMDAwIHAxMTItdHJpcGxlLXRyYW5zZmVyLW9ic3RydWN0aW9uAH8+GBTl7Ry3XflVQdpwfT5pYi51NDAwMDAgcDExMi10d28tY29sdW1uLWNvbXBsZXRpb24AhxRMDi7kJqpEB/IvGpyhQW92zTk0MDAwMCBwMTEyLXR3by1jb2x1bW4tY29weS1vcHRpbXVtAMxcU6Su8+reuHsxQPwPRmQkZ6FjNDAwMDAgcDExMi10d28tY29vcmRpbmF0ZS1zbWFsbC1yZWN0YW5nbGUACWC/Ugp92wH4FaX0Tot9eFDYUgc0MDAwMCBwMTEyLXR3by1odWItdGFyaWZmLW1pbmltdW0AIlZa6t+khbrdmzehUaBUZzi353Y0MDAwMCBwMTEyLXR3by1odWItdHJhbnNmZXItb2JzdHJ1Y3Rpb24AJPTmPYQxqeLDV1weBTO3dqX/MeU0MDAwMCBwMTEyLXR3by1vdXRzaWRlLWRpcmVjdGlvbi1zd2FwLWRlZmljaXQAKi9IgCQ+MUmXb2JbKADmANydG+o0MDAwMCBwMTEyLXR3by1wb3J0LXRyYW5zZmVyLWNsYXNzaWZpY2F0aW9uALt0jgZTo5ST6t/nD8SN62YAJ8SANDAwMDAgcDExMi10d28tcHJvZHVjdC1jb21wZW5zYXRpb24A4A6MmT2UCp0TjO+UC+81zrcDiPw0MDAwMCBwMTEyLXR3by1zaXgtZmxhdC1jb3ZlcgB8fLjw5y/opUF/4I+kJ2N6n4Pj7TQwMDAwIHAxMTItdHdvLXRvdGFsLXJhbmstb25lLXNlZWQyMQD2hiw7vtcrYFO/WDJi3SQAmI4aQDQwMDAwIHAxMTItdHdvLXRvdGFsLXN1cHBvcnQtdGhyZXNob2xkAO4LBikXcEXSw3JovlIF7bPOINp+NDAwMDAgcDExMi10d28tdG90YWwtdW5pb240OC1zZWVkMzAA71JnqKkR4dsIKvfjU2RxFeKekIc0MDAwMCBwMTEyLXR3b3NpZGUtYTMtYXBwbGljYXRpb24ArbXhl851LwEcdWeQV6g7IEaCsEM0MDAwMCBwMTEyLXVuZXF1YWwtZW5kcG9pbnQtZGVsZXRpb24As1rjummQQ1zyDfYGniVFLWlMsIk0MDAwMCBwMTEyLXVuZXh0ZW5kYWJsZS1jbGlxdWVzAFRVlniW8OvNVjJoO4dnJmXoTlDGNDAwMDAgcDExMi11bmlmb3JtLWNvbHVtbi1yYW5rOQCjULAGAA1LjQU85nQkq1MWHh0AmzQwMDAwIHAxMTItdW5yZXN0cmljdGVkLXRocmVlLXF1ZXJ5ALb7Z2C6DvqmxI0ipdyfR9vqTt37NDAwMDAgcDExMi13YWxzaC10d28tdG90YWwtc2VlZDZlZDgzZAAamZjLQs6X7tdrcvyzz4mfGE3WPjQwMDAwIHAxMTItd2VpZ2h0LXNldmVuLWRlbGV0aW9uAMjUiZTgzO3GqkyJSyLtCbTNoshiNDAwMDAgcDExMi13ZWlnaHRlZC1mbGF0LXBhaXIA72bShxzU9tIF88/hapswDbp07H80MDAwMCBwMTIwLWNhbGlicmF0ZWQtdHdvLXRhcmdldC1zZWVkNTEAkc3dv+dieVsmX8GWNanUQG7X8J40MDAwMCBwMTYtY2FvLXNjYWxhci1kYWcAcFLARXbOZNWmS3bTxk2D/WkgWy40MDAwMCBwMTYtdGlnaHQtdHJhbnNmZXItMjAyNjEwMjIAAeJ+oGUtzpxVWKaEs0bMmA7GQ9g0MDAwMCBwMTctYjQ4MC1jaGVjawCAuOU6n1BEncrb5W33wtRLei1fLDQwMDAwIHAxNy1jaGFpbi1yZWNlaXB0ANeDsN2+zAx1MIRb0+jZGFU6xlm9NDAwMDAgcDI1LXJvb3QtcGFpci1ib3VuZC1zZWVkNjMyNjM5AL94U1TnLRNmifELgu1DM3DNJCvNNDAwMDAgcGFja2VkLWNhcnJ5LWF1dG9tYXRvbi1hdWRpdADlYmfBuPOp6waT1ixCxOdbeKaw+DQwMDAwIHBhY2tlZC1jYXJyeS1zeW1ib2xpYwAH1JB1XmH/KBPlW7/e6SQkIzANYDQwMDAwIHBhY2tlZC1jbGlmZm9yZC1nYXRlLXRhYmxlcwDz0LkWMC9Lj4lQAiHPBd4z0gOMDTQwMDAwIHBhY2tlZC1ndWFyZC1lbnZlbG9wZS1hdWRpdACvlV+gV2O7jdFYHquttS/pjd+tajQwMDAwIHBhY2tlZC1yYW0tc3BlZWR1cAD2RMoniJJF/U9yX60bjSAtdS9thTQwMDAwIHBhY2tlZC1zb3VyY2UtZmliZXJzLXNlZWQ2MgCpA+lzVWyiWjZNgjlSGXf1DhcAWzQwMDAwIHBhY2tlZC10YXBlLWZ1c2lvbgCit9sqtBjGurVdW6KCaYkL4MlHvTQwMDAwIHBhaWQtY29weS10cmFuc3Bvc2UtYXVkaXQtc2VlZDY3ANLoMTKltvafgXR5ZvGqueXsk93iNDAwMDAgcGFpZC1yZWFkZXItZGVmZWN0LXNlZWQ1OABhBK0mwdHImko1o/GzEgvvdSyj0zQwMDAwIHBhaXItYXNzZW1ibHkA1RKlpF2SsX+YNl2Avxtkn5OvoS80MDAwMCBwYWlyLWNvbGxpc2lvbi1pZGVudGl0eQC3aqTnb5DUjQKPkNXzr4E4+9wyojQwMDAwIHBhaXJlZC1jYXAtdW5pZm9ybS1vcHRpbWFsaXR5AA9+UPbyE8qac+yseE+/6oUFN9GaNDAwMDAgcGFpcmVkLWN1YmUtYml0LWZhc3QAu0lZ3vhQ3ZO9owcNV4rzR172BXY0MDAwMCBwYWlyZWQtZGlhZ29uYWwtYm9yZWwtZ2F1Z2UAPkyfZ0ltLOJlJi5P6RqF9ddM0Dw0MDAwMCBwYWlyZWQtZXh0ZW5zaW9uLWNhcC1maWxsLXJld3JpdGVzAOWkpW1XkPlZDBT1XS9BJn/22LIeNDAwMDAgcGFpcmVkLWV4dGVuc2lvbi1jYXAtZmlsbABzArt1dYEAsrTdgvds4WH80sN55TQwMDAwIHBhaXJlZC1leHRlbnNpb24tbm9ybWFsNDUAccuHXZ4MPf/nbSqX2m4slquxpxw0MDAwMCBwYWlyZWQtaGVscGVyLWV4dGVuc2lvbgDMOT/YK69wUa6EEJXrGv9BQKbRUTQwMDAwIHBhaXJlZC1oZWxwZXItZnJhbWUtbGVkZ2VyAPfekrxSy0dcEf9Qw3xtjq5lg/FHNDAwMDAgcGFpcmVkLWxvZy1vcmRlcmVkLWRlY29kZXIAf7GdIZ06todaAQaWDQP9AKtPvbM0MDAwMCBwYWlyZWQtbG9nLXBoYXNlLXF1ZXJ5LWJvdW5kACgiVBworoHEjTJruL6DnaKUpjGTNDAwMDAgcGFpcmVkLWxvZy11bml2ZXJzYWwtaWRlbnRpdHktc2VlZDgzANKUzCZ7jXH+DOzq4D3FMlmpydLhNDAwMDAgcGFpcmVkLXBsYW5lLWJsb2NrLXJhbmsAQfrXUVN+8YTSEKeNqXdkih/6tD40MDAwMCBwYWlyZWQtcGxhbmUtYzUtc2NodXItbGVhbgA2IjhUKsWD0T7DExxR2GZ1kEIugDQwMDAwIHBhaXJlZC1wbGFuZS1mb3VyLWNoYW5uZWwtbGVhbgD7A2aYVQhWbzzLfWGeYQ3GAX47QzQwMDAwIHBhaXJlZC1wbGFuZS1mcmFtZS1wYWNraW5nAD7g2o8U3l+QjHQsxMvxdT+noV1LNDAwMDAgcGFpcmVkLXBsYW5lLWZyYW1lLXJlcGFpcgAMLbcB5+W/H0ro63zv9OwguaJ6yzQwMDAwIHBhaXJlZC1wbGFuZS1pZGVudGl0eS1maXQtc2VlZDIxZWY5OAD76cM4KW3QGWy9pFAFFcuINJ6cqjQwMDAwIHBhaXJlZC1wbGFuZS1sb2NhbC1zd2FwLXNlZWQ5YzY1YTUACqkvk5pUN6E+kueNZmN1DSlbEJI0MDAwMCBwYWlyZWQtcGxhbmUtbWlucmFuay1icmFja2V0LWF1ZGl0ABVhDa5xL5caHfuMQWFCqliMSwARNDAwMDAgcGFpcmVkLXBsYW5lLW5hdGl2ZS1wYXlsb2FkACeuhosdeM9YMlUtYkkDOv2AtlRBNDAwMDAgcGFpcmVkLXBsYW5lLXBvcnQtbWF0Y2hpbmctc2VlZDZjNTYzYQCcuMYS9oCROPh1JznOiQ+lVoKS+jQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtY29weS1hdWRpdACZsO6sPzYlyh6qz0P82DJ6WWMdnDQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtY29weS1pbnZvaWNlACJPt+ZIOotUrEBlEE7WpTJI715PNDAwMDAgcGFpcmVkLXBsYW5lLXJhbmszNC1jeWNsZS1ob2xvbm9teQDhO9EvQgBVXdVJ7Kt9wSsgFBSRszQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtcmFua29uZS11cGRhdGUAT7eOwhFEylFqIeqFXIdA2SAdDIU0MDAwMCBwYWlyZWQtcGxhbmUtcmFuazM0LXJhdGlvbmFsLXBhaXItZ2F1Z2UAVG4yE4rmLCDBmGgqBaztYSslPrs0MDAwMCBwYWlyZWQtcGxhbmUtcmFuazM0LXJhdGlvbmFsLXRyaXBsZS1nYXVnZQAxjUbcR8QIq8BQ8CIQQJfNk7cq7DQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtdHJpcGxlLWdhdWdlAL7NAplg9APlmqaFmvHI5glusdvfNDAwMDAgcGFpcmVkLXBsYW5lLXJlbWF0Y2gtcmFuazM0AHYBT9Lm867le3b0nge9v386/Vu7NDAwMDAgcGFpcmVkLXBsYW5lLXNjYWxhci1tYXNrLW9ic3RydWN0aW9uALOXfyuZ9a18wNoi4+tlXYLYCYeKNDAwMDAgcGFpcmVkLXBsYW5lLXNjYWxhci1yYW5rLWZsb29yAB5MLogrWPWrj/iicFjy8PF90Fb5NDAwMDAgcGFpcmVkLXN0YXItcmFuawDbtbk9rUHp/dnV5ODD3QTZUqED/TQwMDAwIHBhaXJlZC1zd2FwLW5vcm1hbDQ1ACGKBxA0iDhMHhWc0Ar/myvOICKyNDAwMDAgcGFpcmVkMjYtaW5kZXBlbmRlbnQtYXVkaXQA6NOWKbcqMl3u71QEZfxcDDHMTzA0MDAwMCBwYXBwdXMtbWl4ZWQtZnJhbWUtb2JzdHJ1Y3Rpb24AeXmlvY17y2w6tOaOzgs5PiFfeAE0MDAwMCBwYXJhbGxlbC1hbm5vdW5jZW1lbnRzACFJYS/F2372PEdovOTW3AIsKJMaNDAwMDAgcGFyaXR5LWVkZ2UtY29tcGF0aWJpbGl0eS1zZWVkNDYASi6MhGP675HlLQS3KLfxMyNhoug0MDAwMCBwYXJpdHktaW5jaWRlbnQtY29tcGxldGlvbnMAo3MmeBgi6ofa0KEy2TNJvAu/zh40MDAwMCBwYXJraW5nLXBzaS1leHBvbmVudC10aHJlc2hvbGQAmoUOalct8WT4OHBXjWwvs4JSwE40MDAwMCBwYXJ0aWFsLWhlbHBlci1jYXB0dXJlAKMeaesOA1ULK3X8Pm5AVjkRsLsgNDAwMDAgcGFydGlhbC1pZGxlLWN1dC1ub3JtYWwtZm9ybQDNN2BiNY9Ua1+W4DjNcuUtKZSnYTQwMDAwIHBhcnRpYWwtay1mYWNlLWJ5cGFzcwBvWOOgMsmcWz2vu7j8dp4eGNspnTQwMDAwIHBhcnRpYWwtb2JzZXJ2YXRpb24tYm91bmRhcmllcwByMyGun3EaCkrf14d8aBWX03NXszQwMDAwIHBhcnRpYWwtcGF1bGktZ2F1c3NpYW4tbWluaW11bQAtqBc/glDB1mVYg4WQRVGslRCsOjQwMDAwIHBhcnRpYWwtcGF1bGktdHdvLXRyYW5zdmVjdGlvbgA2amVIgw0WH/p6B0doiVD5FZ2VsDQwMDAwIHBhcnRpYWwtc3dhcC1kaWdlc3QA2auDZLsWELLg5Lq5Pl8bq0TAlSU0MDAwMCBwYXJ0aWFsLXN3YXAtaW5pdAB8BN/J/kyHhxBnnZMWkmYnwLoQ1DQwMDAwIHBhc3NpdmUtc2F2ZWQtcXVlcnktY2VpbGluZwD4aJiR/WKfoAQAjOZ9ifANTs4wvjQwMDAwIHBlbmNpbC1kZXRlcm1pbmFudC1pbWFnZQBIUMqtrNZd8o0jEZYXa2ZrI9TY7DQwMDAwIHBlbmRpbmctY2xhaW1zLWluZGVwZW5kZW50LXByaWNpbmcAd85Ue6WSNAX6fPeQ8njl0Jlmoys0MDAwMCBwZXJpb2RpYy1nYXVzc2lhbi1kaXJlY3Qtc29sdmUAH5B7Rwr4LpXyWLyU/hUZXsp6xWQ0MDAwMCBwZXJpb2RpYy1nYXVzc2lhbi11bmlmb3JtLXNvbHZlADfEPT0LKEKMr3i7JodPhM322UuQNDAwMDAgcGVyaW9kaWMtZ2F1c3NpYW4td2VpZ2h0ZWQtcG93ZXItYm91bmQAXEJz7ROxc6vy+YL4/UEPxLNnhMQ0MDAwMCBwZXJpb2RpYy1yZWZlcmVuY2Utcm91bmRlZC1pbnZlcnNlLXNlcnZpY2UA5Gyi3Y/HkjjM6XrtE4N+K+EYEpQ0MDAwMCBwZXJtdXRhdGlvbi1sZHMtcHJvZHVjdADK0GtjRzPXzMY2gCFG8NRa1nAzETQwMDAwIHBlcm11dGF0aW9uLXNsYWNrLXdvcmtzcGFjZQDj9W62pFgyygOK5umdOwTIIjjNkTQwMDAwIHBnMTZtLWJvb3RzdHJhcC1vcmRlcnMAM/0R/I2goLLR1nnbFkLBdklOaKg0MDAwMCBwZzI5LW1hdGNoZWQtZGlydHktY29tcGxldGlvbgDNaN9speaxDh0Hx7MmVVx6eNbdWjQwMDAwIHBoYXNlLWFjY3VtdWxhdG9yLXRlbnNvci1jbG9zdXJlAPfFMTYUVj6cNrDSymdeYFu3JITuNDAwMDAgcGhhc2UtYWxpZ25lZC10d28tY2FsbC1wcmVmaXgAzRk7/AR7hk3BBfZFHhZoYSxaS6E0MDAwMCBwaGFzZS1iYW5rLWludGVydmVuaW5nLXdvcmstYXVkaXQABNs76MLsl52rER0YjB8GzKoxpkU0MDAwMCBwaGFzZS1jb2RlZC1jYWxsZXJzAEvy1j/qDoleUeMvJOspb76K3oNHNDAwMDAgcGhhc2UtY29ycmVjdC1qLWhhbmRvZmYAawUkD4d3TXPD+4HyBHmTRv6cIoc0MDAwMCBwaGFzZS1vcmRlci1iYW5rLWF1ZGl0AKUXeAabTMX0RQjc20AmdiUVBF3sNDAwMDAgcGhhc2UtcmFuay1kZWJ0AI3DoZxxTE1dVOlTcDRv6BGIpQseNDAwMDAgcGhhc2UtcmVjaXBlcy1wYXJhbGxlbACf1lfd0a6oygI+K/Qn0/aPMwln7DQwMDAwIHBoeXNpY2FsLWE1LXByb2plY3Rvci1jYWxsZXIAydp8qnvEQrYhYqCLW1WRgK2cHQc0MDAwMCBwaHlzaWNhbC1ib3VuZGFyeS1wYWdlcwDy1+C83phFbnu9zkq6oEH3MnKGkzQwMDAwIHBoeXNpY2FsLWNoaXJwLW1pZGRsZQDuzniKLpnIIBajAe1r9TNq+ir+nDQwMDAwIHBoeXNpY2FsLWNvbXBpbGVyLWNvcnJlc3BvbmRlbmNlAJH5q2wmlIGCMd7Z9XbHaMjNOQo4NDAwMDAgcGh5c2ljYWwtY29tcGxleC1jb21wYWN0AOmsvXBT5rBlrXg6opvylImGb8Y0NDAwMDAgcGh5c2ljYWwtY29tcGxleC1jb250cm9sbGVyAKCQhRFrtNEF94Wby5x1PBXuvbAXNDAwMDAgcGh5c2ljYWwtZmZ0LXdvcmQA/hbofDAFLUfuM7ayHPpL7Hk5Xfg0MDAwMCBwaHlzaWNhbC1nYXVzc2lhbi1jb3JlAL02WPiBnCrxI0WEeMFaz1NVPIMQNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tZXhwYW5zaW9uAF+eHG+urgH3Pef2InBCbKbOkN/zNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tbGVhZgAmpNvKiTLGjkXskn1KCHGj6T2NmzQwMDAwIHBoeXNpY2FsLWdhdXNzaWFuLW1vbm9taWFsAGby8kdd3HDkPuY7dGuT5l0S2HKYNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tdGVuc29yAMEW9jZ8SmGx51sXmAjUxF05X2cVNDAwMDAgcGh5c2ljYWwtaW52ZXJzZS1wYWlyAPMgiLeKLhl+9V8VB/cN5zvycj2HNDAwMDAgcGh5c2ljYWwtb3JkaW5hcnktaW50ZXJjaGFuZ2UAjrxjv00mRX/UKCnMsuOeDz2kS1I0MDAwMCBwaHlzaWNhbC1wYWlyLWVycm9yLXRyYW5zZmVyAMWcGXK01VkM/52oScd+DExwo2jjNDAwMDAgcGh5c2ljYWwtcGFpci1mdWxsLXJlc2lkdWFscwCWbNRB7SlNmfkcSpUNDlDNTBvjnDQwMDAwIHBoeXNpY2FsLXBlcmlvZGljLWdhdXNzaWFuLXVwZGF0ZQAufn4e/FTKfUlxL1JosMwR0sJsFDQwMDAwIHBoeXNpY2FsLXJpbmctcHJvZHVjdADv5RQWijYPldwnOTF/NhBt/lvaWzQwMDAwIHBoeXNpY2FsLXNjYWxhci1zdHJlYW0AHzMbS4Llop7nQMZFVZpdpG9Q/lg0MDAwMCBwaHlzaWNhbC1zcGFyc2UteG9yLWJhdGNoAB15PgodnrbePk/V7EE+mnMIdw7ZNDAwMDAgcGh5c2ljYWwtc3VwcG9ydC1yb3V0ZXIA1MF9Nqj+5OUMriyf4A1rerRWwiY0MDAwMCBwaHlzaWNhbC1zeW50aGV0aWMtZm91cmllcgA840p0NUEhNY1yjr4mudk8oq4MBjQwMDAwIHBoeXNpY2FsLXRlbnNvci1jcnQtc2FuZHdpY2gtcmVjb3ZlcnkA91jWwTp5zH5rTJxB4GQxV7KXk6M0MDAwMCBwaHlzaWNhbC10aHJlZS1sYW5lLXJldmVyc2FsAEyL0SSSb3uUWswsLyqKrW0yXGBKNDAwMDAgcGxhbmUtZml0LXJlY29kaW5nLXRhcmlmZgDNW8j5l45nBI6Nzj7gyjv1ShzmNzQwMDAwIHBsYW5lLXBvcnQtY29weS1idWRnZXRzAKU8nqFtB0Fdpf+Fv93Zhm0Zybr/NDAwMDAgcGxhbmUtcG9ydC1lbmRwb2ludACm6RTT0xQORvuPgRXX4/w1GpDlEzQwMDAwIHBsYW5lLXF1ZXJ5LXJlYWRlci1ib3VuZGFyeQB8ffQ/AjVpZGF08WH8yccMQpSICjQwMDAwIHBvbGFyLWxhdy1zbWFsbC10LXNjcmVlbgA62O2Edl4hnra0Tm+TC3Z4BeyDWDQwMDAwIHBvbGFyLWxhdy10Ny1vdmVyY29tcGxldGUtc2NyZWVuACCP7Q6vTX3X846YqI3HhfSqYL/gNDAwMDAgcG9sYXJpemVkLXAxMTItY29kZS1ib3VuZAC8uJNKfJXCRd0WHHivCQkDU2/BfDQwMDAwIHBvbHlub21pYWwtY29zdC1kaXN0cmlidXRpb24AmoA0zUykmm7OIOGnBKXCQJ7LT740MDAwMCBwb29sMTIxLWpldC1yaWdpZGl0eQBFNiHM6IgG0lJ2suDLgvZ+P4JM1DQwMDAwIHBvb2xlZC1jbG9uZS1lcG9jaHMAPwp4iCA7uyINrAFuCyQAc4J9SwM0MDAwMCBwb29sZWQtaWRsZS1tb2RlbC1yZXNjdWUA7fPF0TsbUUtwXqXa6+E48Hcmtj80MDAwMCBwb29sZWQtbmF0aXZlLWhvc3RpbmctYWRtaXNzaW9uAJMcTXCJRqnm6YFitO7dO16f+VZcNDAwMDAgcG9zaXRpdmUtc2tpcADdYqsowcLASTfoP5OyyqiLGvbtvzQwMDAwIHBvc3QtY2VudGVyLXJhbms0LWdsb2JhbACAvZrPJZ79yuVvIQrnnodNB0sTOjQwMDAwIHByLXJlY29uY2lsaWF0aW9uLTIwMjYxMDEyAEFoFFlQczDNmoxiisH1qH9pin7TNDAwMDAgcHItcmVjb25jaWxpYXRpb24xMDAtMjAyNjEwMTMA2x8z0ZXYmNLp/lvqkieaZ4ojvlA0MDAwMCBwci1yZWNvcmQ2OTktNjg1LWF1ZGl0ANzWfB2Rsr5ngsWNDps1+Bp6Zbx4NDAwMDAgcHItcmV2aWV3LTIwMjYxMDA5AO4qBBRfjMe5tfY6qKXm0300pT2MNDAwMDAgcHItcmV2aWV3LWJhdGNoZXMA8oI8NibBCNBiX/4gel1SO9OV43I0MDAwMCBwcjEtcmV0ZW50aW9uLXJlY2VpcHQAM01GquR+E5yiYin4v259ZVblhcg0MDAwMCBwcjEwNDgtYWxnZWJyYWljLW9yZGVyAEH4uYwXuGKVgHCnCjc3AoOyTEchNDAwMDAgcHIxMDQ4LWNlcnRpZmllZC1yZXBhaXIAN5furlXtiZQ5EZmTEp5xvOarW3M0MDAwMCBwcjEwNDgtY29tcGxldGUtZmVhc2liaWxpdHkA8or/1c7xI8ZXvRBLQ8QFLlVg8oI0MDAwMCBwcjExNi1ldmlkZW5jZS1yZWNvbmNpbGlhdGlvbgDvLRZK/YBelUofH3p6ITvx3SGgoTQwMDAwIHByMTI5My1sb2ctZW5jbG9zdXJlLWF1ZGl0AOeXx4VhkumSWMdhnyvaPHNpnkWpNDAwMDAgcHIxNDA3LWNvbXBsZXgtbW9tZW50LWF1ZGl0LXNlZWQzOQAQ+MQWj7uLe+fxZPtIRIKbVmiEfzQwMDAwIHByMTQxNy1maWVsZC1zZW5zaXRpdmUtcmFuay1zZWVkNDcAXNaHRS+OGLIP/48R8ZBHPYa59zs0MDAwMCBwcjE0OC1zb3VyY2UtcmV0ZW50aW9uAI1R/ykkN6B+9uZNm4JqF7QPZytnNDAwMDAgcHIxNTM2LXJvb3QtZW5kcG9pbnQtYXVkaXQAFdUTPYkav6XQ/qkPBPiG7WgYI/Y0MDAwMCBwcjE3MzEtdW5pb24tcmVjdC1yZXZpZXcAcon4dgPcXhzHj4C22qdoIWPOG3s0MDAwMCBwcjE3ODYtZmluZS1wcmltZS10cmFuc2Zlci1hdWRpdAB75yBRonY/quwIh1UjfOAZFB0naDQwMDAwIHByMTg2Ni1vdmVyaGVhZC1pZGxlLWNyZWRpdC1hdWRpdACM86h29lQFvqWRoWzD12TKHsfzFDQwMDAwIHByMjAzLXJldGVudGlvbi1yZWNlaXB0ADOord6G6Nvu3HACUNLc5Zamx58WNDAwMDAgcHIyMTAtaGVhZC1yZWNvbmNpbGlhdGlvbgB1GzpoofsMaU7Ys8aC6Jqj6IJfODQwMDAwIHByMjExLXJldGVudGlvbi1yZWNlaXB0AJ2YnYA6c6oQp+C9LOIe5n9TH+BWNDAwMDAgcHIyMjUtZml2ZS1zdGFnZS1yZWNvbmNpbGlhdGlvbgBC+iLzBITb3cJRKDnbBC8dvPYQvjQwMDAwIHByMjI2NS1zdXBwbGllci1hZG1pc3Npb24tYXVkaXQAUPs7Srv6sp3J3Ey/Ca9PgLIIAq80MDAwMCBwcjIyOTctcHJpbmNpcGFsLXJhbmstZmxvb3IAVYDypDcUCNWXxiDNake8C1nzbrM0MDAwMCBwcjIyOTgtZm9ybWF0LXJlY292ZXJ5LWF1ZGl0AHELTOX/TKdfwSzW2/uvpz4Kp0faNDAwMDAgcHIyMjk4LXNlY3Rpb24zLW9wY291bnRzAPHydLJX5dE6dkDYfx8VvrVhIIa4NDAwMDAgcHIyMzYtaW5kZXBlbmRlbnQtY29tbWFuZC1hdWRpdABhxE6OAUvwnlK2Ai+VzOOVLQD+QjQwMDAwIHByMjM2LXNvdXJjZS1yZWNvbmNpbGlhdGlvbgDAuGMHaT93fdQvn7ktMqqOZsu9xzQwMDAwIHByMjc1My1yb3V0ZS1jdWJlLW93di1maWJyZQC4xVaHC63xyEuvnfcPlmYblhuV3zQwMDAwIHByMjc5LXBhcmVudC1jbG9zdXJlAO5btQMdOPFJXw8U6R+EwWJSSditNDAwMDAgcHIyNzktdGFyZ2V0LXByZWZpeC1yZWNvbmNpbGlhdGlvbgBA68X30sNAlB1e2LfZujVVvcAbIjQwMDAwIHByMjgwOS1jb250aW51YXRpb24tc3RhY2stc3BhY2UABWuSCln5y3wKPKBOJ2vJbeLtDq80MDAwMCBwcjMwNDQtaW5kZXBlbmRlbnQtY29sZC1yZXBsYXkA3KhNIxlKYBsj3UKUbLT3zZZxrVU0MDAwMCBwcjMwNDQtbmF0aXZlLWNsZWFudXAAx+eup54lTj9J9t07Is29wGbwGRM0MDAwMCBwcjMwNDQtcjItbmF0aXZlLXNsaWNlAG4QuDd21DSF4C0t7JySym8EOnDZNDAwMDAgcHIzMTkwLWRpc3RpbmN0LWF4aXMtYmFzaXMtaXNvbGF0aW9uAMwPSG2LNg1vEdE5Yp97YLupSvRNNDAwMDAgcHIzMTkwLWluZGVwZW5kZW50LW9wZXJhdG9yLWF1ZGl0APVZGquzgOQ+4QpG3dFJaYUwk82zNDAwMDAgcHIzMTkwLXJlbWFpbmRlci1zdHJlYW0tb2JzdHJ1Y3Rpb24Ahr+ohpClKwacGvba1BtUd/lhXkg0MDAwMCBwcjM1NjItb3JkaW5hcnktY291cGxpbmctcmVwcm9vZi1hdWRpdAAGYUaEiQc8NdBkMz9ssxFCi3aGCjQwMDAwIHByMzkzNC1wcjM5NTUtb3BlcmF0b3ItcmVwbGF5AFBmXFmmk/dmIo+WrwTvqLEusrr9NDAwMDAgcHI0MTAwLWJpdC1tb21lbnQtZW5jbG9zdXJlAG7mK/AfYA0UVoSLlXsxc2+kDywuNDAwMDAgcHI0MTAwLWNoaXJwLW9kb21ldGVyLXRhcmlmZgBgqNdfT+wIgXW4dcvyZxocByU/FjQwMDAwIHByNDEwMC1jcnQtcmVwYWlyLXRhcmlmZgCVudzMd/Vm0hznVKSyrohOzIcaHjQwMDAwIHByNDEwMC1ndWFyZC1jb2xvcmluZwD6U/hcSe8R5NchxVu+c6c7qEM6rTQwMDAwIHByNDEwMC1sZWRnZXItYm91bmRhcnktZXhwb25lbnQAD9z0CMOLuZPQuD34jJiSZ7J4tfA0MDAwMCBwcjQxMDAtcHJvb2YtY29tcG9zaXRpb24tYXVkaXQAQe9hQiqV2ODVbmI5JJng9w8bew80MDAwMCBwcjQxMDAtcm93LWZpZWxkLWxlZGdlcgD7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MCBwcjQ1NDEtcGFja2VkLXRyYW5zZmVyLWNoZWNrAPAudD1CyGyuUQlpJp4+3KK0TFO9NDAwMDAgcHI0NTQ0LWNhbmNlbGxhdGlvbi1jaGVjawCReGPG7a2ixQFS2llDMslWpqwhXjQwMDAwIHByNDU0NS10cmFuc3BvcnQtY2Vuc3VzLWNoZWNrAEbiiHCMoq4kkpItCFSwroDblpxVNDAwMDAgcHI0NTQ2LWV4dGVuZGVkLWNlaWxpbmdzABp7O5t3zgsvqorROfS/CSZEgasNNDAwMDAgcHI0NTU0LWJhbmRlZC1pbnZlcnNlLWNoZWNrAMv8UHZEMOOg8abaRVEsg3PjtSIoNDAwMDAgcHI0NTU0LWdhdXNzaWFuLWNoaXJwLWNoZWNrAFBkaGrgOtj9/udKjmF92XSLsADhNDAwMDAgcHI0NTU0LWxvd2VyaW5nLWNoZWNrAOYIepjCT5UlLgEEyPiztPDe98gZNDAwMDAgcHI0NTU0LW5hdGl2ZS1mZnQtY2hlY2sAFm3TDwUwnbKu+B4U4e5KmTwb/rM0MDAwMCBwcjQ1NTQtbmF0aXZlLXN0YWJpbGl0eS1jaGVjawBNaFW7F/IhCpLumrJ4nfIQDlUhvjQwMDAwIHByNDU1NC1uYXRpdmUtdGFibGVzLWNoZWNrAKC7gR1d7c04wFtvLnHMG9rFQTWrNDAwMDAgcHI0NTU0LW91dGVyLXJlY291bnQtY2hlY2sAoWZAn7STbcBHA5fcSEIeWIQjevI0MDAwMCBwcjQ1NTQtcm9vdHMtcmVjb3ZlcnktY2hlY2sAKWDmMbKtZhQyL1tXwnqSITPsaOw0MDAwMCBwcjQ1NjgtYXJpdGhtZXRpYy1jaGVjawCOAv4g3pOOQnx8cclrNKK9N8tRSjQwMDAwIHByNDU4MC1idWRnZXQtY2hlY2sAcJ2IX9vNR5A/bd5ExMRaubmc35Y0MDAwMCBwcjQ1ODMtaGVhZGVyLWNoZWNrAGGV4z1nvGC1UBufCZ32wN86rehBNDAwMDAgcHI0NTg1LWdlb21ldHJ5LXNvdW5kbmVzcy1jaGVjawAkPZkiFH+axGbxbxV4995AGijrTjQwMDAwIHByNDU4Ni13aWR0aC1ncm93dGgtY2hlY2sAMc9DFYt5y06oivY2CK4zSSYo8Ew0MDAwMCBwcjQ1OTYtZW5kcG9pbnQtZnJhbWUtYXVkaXQASSU4pGpp5sIzSxNLDfalv6jerSg0MDAwMCBwcjQ1OTctc2NodXItZXhoYXVzdGl2ZQBjQNiaW+BhE/4r9/C5gbB6kW8GdzQwMDAwIHByNDU5OC1oZWFkZXItcmVjb3VudABqcAjPVOeMcE24k91OXDTROaXXJjQwMDAwIHByNDU5OS1mb3VyLWV2ZW50LWNoZWNrANqHz2TaZSh3AvrX/i3owCdXTUdgNDAwMDAgcHI0NjAxLW5vbmNvbW11dGF0aXZlLWNoZWNrAEgIxMaFxud09RAlktVz48faraHuNDAwMDAgcHI0NjAyLWxldmVyLXJlY29tcHV0ZQBT9alXCQKWRE3r8omuLrZ0nKGGGzQwMDAwIHByNDYwMy1zaGVhci1mbG9vci1jaGVjawBp9IbmsBeyW5om62gOnYMANHsO6DQwMDAwIHByNDYxMC1jcm9zc2luZy1yZWNvbXB1dGUARPRj+nywr2EQTOrj80WotduRKMU0MDAwMCBwcjQ2MTAtZW5kcG9pbnQtcHJvZmlsZS1jaGVjawB7NGoKVhIc5oDJzNlaBgp4AT+P8zQwMDAwIHByNDYxMC13YXJwLXN1YnN0aXR1dGlvbi1jaGVjawAUqk7im1NNqzELUmO4Gua8IB0EtzQwMDAwIHByNDYxMi1zbWFsbC1wcmltZS10aHJlc2hvbGQAnH6qfOurHywfASGLh/lphaYLGeg0MDAwMCBwcjQ2MjMtYnVkZ2V0LWNoZWNrAPCeF0DawSfu80qEydP/ea1AEUXoNDAwMDAgcHI0NjIzLW1vbm90b25lLWRlY29kZXItY2hlY2sAX3f+sV1BNwY2KLil5+EH/ofolvk0MDAwMCBwcjQ2MjYtaGVscGVyNjIxLWNoZWNrAL2dz/fP92AQ4fchTLMgd2MngtCzNDAwMDAgcHI0NjI5LXJlcGFkLWxlZGdlci1hdWRpdAAGTDvva+dn1gAQZiIKrIaV8UmuuTQwMDAwIHByNDYzMy1jb250cmFjdC1hdWRpdABAFc7eXT6aI8v0/xWJDaJF+/wpRzQwMDAwIHByNDYzMy1xdW90aWVudC1jb250cmFjdC1hdWRpdAAIb0k5f3kpgkMuRrPZOpKaTHvRmzQwMDAwIHByNDg1LXByaWNlLXJlY29uY2lsaWF0aW9uAHe27nKerdgOiPHliLdubaPP81oTNDAwMDAgcHI1MjcwLXJlZmVyZW5jZS1hdWRpdABjp/i9b4+PPrPH0YL8gv0qhjLpQTQwMDAwIHByNTQwLWxpdGVyYWwtc291cmNlLWF1ZGl0AE5pg5eHJINJsOdsksK+9o35ap5fNDAwMDAgcHI1NDAtcGVuZGluZy1yYW5nZS1kZXJpdmF0aW9uADxq0kb7XAxeyKYmVY5fvO7GTRHfNDAwMDAgcHI1NDMtYmlub21pYWwtYXVkaXQA17SiVHCLx/JJKLhjyn94xuOuvHA0MDAwMCBwcjU4OS1maXZlLWhlbHBlci1ob3N0aW5nALzIpHpC60Z7XkiTrIXJ2fRvWteuNDAwMDAgcHI2MjYtbmF0aXZlLXBheWxvYWQtYmluZGluZwDmTJG2+uS/N1ZWPa03QotmC4tFBzQwMDAwIHByNjI2LW9taXR0ZWQtZGlnZXN0LWF1ZGl0ADP9g7ggIO30Ko4sUDfeLMgiwiSyNDAwMDAgcHI2MjYtcm9vdC1tb21lbnQAoWgIaMoZVY3fBiuz6c0Aep8Nz+M0MDAwMCBwcjYzNi1mYW1pbHktd2l0bmVzcy1tYW5pZmVzdC1yZWNlaXB0ACNpPec4AaCYfID7Du0cjkWlIGiQNDAwMDAgcHI2MzctaW1wcm92ZW1lbnQtMjAyNjEwMTMAlwjI3R3V1aZXWqqUIBATegHqrL40MDAwMCBwcjYzOC1pbXByb3ZlbWVudC0yMDI2MTAxMwCC9b8r7SSoQQColE9HYbHRFLOLFjQwMDAwIHByNjQzLWltcHJvdmVtZW50LTIwMjYxMDEzAFpPyOJKsC5eKlmRYnPjowBVgAgxNDAwMDAgcHI2OTUtZGlnZXN0LWF1ZGl0AKePvd+ahYwgbOvvkNjr6cSwR8FINDAwMDAgcHI2OTktZnJhbWUtcmV0aW1pbmctdmFsaWRhdGlvbgChc6s7cGw6p0cXR0GClZT3l0F5/zQwMDAwIHByNjk5LWZyYW1lLXJldGltaW5nAJOpxQn3mi8cC0rwiuSo8DnbobnyNDAwMDAgcHI5NDYtcGluLW1pZ3JhdGlvbgAGdK4Xls/4YCvHNU2eGFdB8g/RSzQwMDAwIHByOTktcmV0ZW50aW9uLXNlZWQ5OQDOFZpqUBSazcU/Gxd0V9bKb5TRRjQwMDAwIHByZWNpc2lvbi1ibGluZC1ib29sZWFuLW5vcm0taW52b2ljZQAzzZoOchNQr5Ng5g94ot8r7WAP/zQwMDAwIHByZWNpc2lvbi1ibGluZC1jb21wb3NpdGUtcmlnaWRpdHkA2k9ysJQHs9Ilf9LIvwhXPl8BUpo0MDAwMCBwcmVjaXNpb24tYmxpbmQtZHVhbC1zY2FsZS1leGlzdGVuY2UAXHjQ7VJ0fJvqJ8mL7P3exUsNxrE0MDAwMCBwcmVjaXNpb24tYmxpbmQtbjMtZHVhbC1zY2FsZQCJroB5MBUYnW/8aJJMAlnXTuZ2MzQwMDAwIHByZWNpc2lvbi1ibGluZC1vZGQtbi1zdXBwb3J0AKEiAVgXKUuyz+1CWNWeeBhQoT++NDAwMDAgcHJlZml4LWJ1ZGdldC1jb3VudGVyZXhhbXBsZQBGTJ8j+IEwlDmqq2+h+tuNpWygRzQwMDAwIHByZWZpeC1tYXNrLWJhc2lzACdkmB8Oxfnjgktvbus5J+4PiCgdNDAwMDAgcHJlbHVkZS1saW5lLWZvcmNpbmcAXJCkRLjBWpMjOo0QmGpGYGRgTuQ0MDAwMCBwcmVsdWRlLXJldHVybi1yaWdpZGl0eQD62GoLjMj3oRT/mYxOGdkW1uVWTTQwMDAwIHByZXBhcmVkLWdyb3dpbmctY2FycmllcgD++LogQVhR0zI9X4OQEfls7eQlRTQwMDAwIHByZXNjcmliZWQtc3Rhci10cmlwbGVzAHc5H/KhhyukEh8Qd8rfU4Se+fniNDAwMDAgcHJlc2NyaWJlZC10aHJlZS1wb3J0LWRlY29kZXJzAKZ/zHLBDi9CSiwLKiKNMwhk8L1lNDAwMDAgcHJlc2NyaWJlZC10cmlwbGUtZGVjb2RlcgC/u0r9F1qSxoZ8liAJOCfwwB7dGjQwMDAwIHByaW1lLXBvd2VyLWN5Y2xpYy1pbnZlcnNlAAXG+PvEVRlGmFgJ7rVKRMHr7WNONDAwMDAgcHJpbWUtcG93ZXItbmV3dG9uLWF1ZGl0ALY0RiPJOGEMApqrZ4bO4IjF54IvNDAwMDAgcHJpbWUtc291cmNlLXNlbGVjdG9yLXRyYW5zZmVyAKxwqXJCUlP/7D6sOP7zs7tmJQ7DNDAwMDAgcHJpbWUtc3Vic2V0LWFzc2VtYmx5LXNjb3BlAEY+XUvk2kEPA0uWk6CmCn0ThEXBNDAwMDAgcHJpbWUtc3Vic2V0LXJlY29uY2lsaWF0aW9uAO4VqxbDs6DyOhdfntJ9wj+zC0xdNDAwMDAgcHJpdmF0ZS1xdWVyeS1jb25jYXZlLXJhbmdlAHr4q10hmioVWrJnnNwQZlltCAFqNDAwMDAgcHJvZHVjdC1leHBvbmVudC1nYXAAGudUWZto0P0X2lgHvPlczA7dfZc0MDAwMCBwcm9kdWN0aW9uLWRvbWFpbi1nYXAAPZJ27ICfW0m3uBqzYcr4iDpd20M0MDAwMCBwcm9kdWN0aXZlLWNvbnRyb2xsZXItYmFzaXMtc2VhcmNoAFiXFoUwUvsJPmVjseMx/3g7grHRNDAwMDAgcHJvZHVjdGl2ZS1jb250cm9sbGVyLWxpZnQtYXVkaXQAt5WD9q6xHUo7wPzYLwGoErK2tRg0MDAwMCBwcm9kdWN0aXZlLWhlbHBlci1kaW1lbnNpb24tZmxvb3IAzuOG//xwO5wOAoyuG2OMWjUZYRc0MDAwMCBwcm9kdWN0aXZlLWhlbHBlci1mdXNpb24tY2VydGlmaWNhdGUANBMpkF+vtE3XbUIwrNgS1DveXss0MDAwMCBwcm9kdWN0aXZlLWxldmVyLXJlcHJpY2UAEPGgYPnPIJu33YDqHDpyH9Cqyqk0MDAwMCBwcm9maWxlLWJyYWNrZXQtYXVkaXQ2NAAVbfXLh7vTGMKoZiUd4GzazCDRBzQwMDAwIHByb2plY3RlZC1jbGVhbnVwLWZpYmVycwCfxsKQaDfVzwd4ODX5VeHkvKgeUTQwMDAwIHByb2plY3RlZC10aHJlZS1jeWNsZS1taW5pbXVtACSth5JdTwFDttn+d86OTs6F+I1vNDAwMDAgcHJvamVjdGlvbi1jdXQtdG9vbGtpdAAU1XFROCzW3iODKmghQqUXHCs/HTQwMDAwIHByb2plY3Rpb24tZ2VvbWV0cmljLXRhaWwAf8u5ikM9JmzTIjI+3OJMNTApp8A0MDAwMCBwcm9qZWN0aW9uLXJlY3Vyc2lvbi1jaGVjawAOct+RVpTCL5+SNmhryM8ZA4S7uzQwMDAwIHByb2plY3Rpb24tcmVjdXJzaW9uLWZpbml0ZS1pbmZpbXVtAP4eYUaRbnfY9E34O378Agiy+YZnNDAwMDAgcHJvamVjdGlvbi1yZWN1cnNpb24tbGltaXQAcvvf8SI0el3DdNcIz/DHXvQz6Ps0MDAwMCBwcm9qZWN0b3ItaGVhZGVyLWRlbnNpdHkAeYkczmDq0OQZ9qmzn3zldF3oXaI0MDAwMCBwcm9qZWN0b3Itam9pbnQtaGVhZGVyLWRlbnNpdHkAq6Xp6nsh7rUDZ73G+jwbNqF1/240MDAwMCBwcm9qZWN0b3ItcGFpci1oZWFkZXItbGF3AAZyBJFGteJIkY63g3t6+ViO5P2iNDAwMDAgcHJvamVjdG9yLXByaWNlLW9yYml0LWNvbGxhcHNlAGTBKgCJoLatpy9UHudtdMW9cf6XNDAwMDAgcHJvbW90ZWQta2VybmVsLWNvYWxlc2NpbmctdmFsaWRhdGlvbgDV6gC+3WXAk3AP71NRKWuGd8ELiDQwMDAwIHByb21vdGVkLWtlcm5lbC1jb2FsZXNjaW5nAOKbFhPYfBqYyqG/e7NTesh/uDhxNDAwMDAgcHJvb2YtZXhwbGljaXQtNHAtZXJyb3IAEWWIEZJvNPu05ppgSHGjZRr1+js0MDAwMCBwcnVuZWQtdHJhY2UtcmVzcG9uc2UAJGQRhNk/IdXmzB7B7fkSIz0bW/s0MDAwMCBwc2wyNy1jb25qdWdhdGUtYW55LXJlZ2lzdGVycwCDP2xy+gphVxQHPNGKMBbIVkm8BDQwMDAwIHB1YmxpY2F0aW9uLXJldmlld3MA4qqxGUtcll08eC7YjiwPX7yvn8c0MDAwMCBwdW5jdHVyZWQtZTgtNDgtNTYA7GiLwArBygL+J8lVvpXF9Als5QU0MDAwMCBwdW5jdHVyZWQxMTItZ2xvYmFsAHW5SC/Tki3h++96gXkthoCo73ycNDAwMDAgcHVyZS1tYXRoLWF0bGFzLTQwMAAIR4EmrbWB2wzE4n1Y1sSKisAWwjQwMDAwIHEtdG9lcGxpdHotZmFjdG9yaXphdGlvbgCV9qeq3UztQ4wmqM3qvnRJf8neOzQwMDAwIHE4LWFmZmluZS1kaXJ0eS1jb21waWxlcgCRVIa4uSUsqXLazl/j4aFH2IISdjQwMDAwIHE4LWJvdW5kLWF0dGFpbm1lbnQAjc8Z13Yj+wtVpGofh6KoJgSii540MDAwMCBxOC1jZW50cmFsLWNvbW11dGF0b3ItcGFpcgAdV3CvxPYF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c2VydmF0aW9uLWtlcm5lbADOCwyKwL5Nn7C1jnt2aK2R8YeyADQwMDAwIHFxMTYtYmlkaXJlY3Rpb25hbC1zd2VlcHMAwCu+Ftbb28lmN2pUQcCVdcjOU/g0MDAwMCBxcTE2LWJsb2NrLXNjYWxlLXNjYW4APMmOU5H6kskuuT/6Dowin3xtiTY0MDAwMCBxcTE2LWJvcnJvd2VkLXJldXNlLXN0YWJpbGl0eQA8IuyoN9GDwaKqix1IyrPz2M9PPzQwMDAwIHFxMTYtY2FsbGVyLWdyaWQtcmVzZXJ2ZQBDL+KDS2AwgRrJ8AOwZKgQ0SKEHzQwMDAwIHFxMTYtY2FsbGVyLWluc3RhbGwABH+EflF8e7QxFNTKVl46y+ulIk40MDAwMCBxcTE2LWNlbnRyZS1saWZldGltZS1ib3VuZGFyeS1hdWRpdADpZDrhbGmP3+2UGrAGws80MuhE0zQwMDAwIHFxMTYtY2hpbGQtZGVmZWN0LWJvdW5kAM8ySJUlkOObss8HSRgOOM8A94mtNDAwMDAgcXExNi1jbGlmZm9yZC1kZW5vbWluYXRvcgDGQrISrqG0rkdEckQFNiLOu+xlJTQwMDAwIHFxMTYtY2xpZmZvcmQtcmluZy1vYnN0cnVjdGlvbgCLgH6hCe5sWNU5IzwjtlFOfMPUCjQwMDAwIHFxMTYtY29tbW9uLXF1ZXJ5LWZyYW1lLWNvc3QA2mtuFnjUVXzo8749/kzBt+9glyY0MDAwMCBxcTE2LWNvbXBsZXRlLWNvc3QA/t7pDw7ZWsfT1II9ekaAZ6xalm00MDAwMCBxcTE2LWNvbXBsZXRlLW5hdGl2ZS1kZWNvZGVyADoPmkSMJ7OfPrpSLeRoXt1P8ho5NDAwMDAgcXExNi1jb25zdW1lci1idWRnZXQtaW5kZXBlbmRlbnQA/1CmTdwl76RlllVuTmVNDUUJH4U0MDAwMCBxcTE2LWNvbnN1bWVyLWluY2lkZW5jZQAetUEj7X/XjH89AE7YQ/aF9W7HDjQwMDAwIHFxMTYtY29vcmRpbmF0ZS1jdXQtZGVjb2RlcgC2hH3JbF+b0lCPFhWdktNj4DfOuTQwMDAwIHFxMTYtY29vcmRpbmF0ZS10YXAta2VybmVsAID0+yf9J58usZlpsvtzHMQYDfDONDAwMDAgcXExNi1jdXJyZW50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ZmZpbmUtcGVyZm9ybWFuY2UAGVRrq0pNPFV4qoyrKAqsxVMshiU0MDAwMCBxdWFkcmF0aWMtcmVhZGVyLXJlc3RvcmF0aW9uAHbX/XCBm84ZwiyU7bflR8BpTTEeNDAwMDAgcXVhdGVybmFyeS1wb3J0LWJvcnJvd2luZzU1ACbwGSlOkgWBjaKbemLtOTneR6/jNDAwMDAgcXViaXQtY29tbXV0aW5nLXJlcGFpcgBbZb89AT0hvsjZNSaP2WoHEpGLXzQwMDAwIHF1ZXJ5LXByb2plY3Rvci1pbnRlcmZhY2UtMjAyNjEwMjIALXCV+EPwhpCHwPBGFdt+PQ6urVo0MDAwMCBxdWVyeS10aGlubmVkLWNvbnRyb2xsZXJzADaHgANSh7rQuOnNGp99pzIj36RWNDAwMDAgcXVpbmFyeS1yZXNvbmFudC1kaXNqb2ludG5lc3MtcmVwYWlyADCOwNTGVb+YW+riQ6nOy/hoQpNRNDAwMDAgcXVpbnQtdG9nZ2xlLWNvbm5lY3RvcgC6HOu3+7AFG4CFRX+EE353Dr00BDQwMDAwIHF1b3RpZW50LWtlcm5lbC1mYW1pbHkAhc1HfUrl59TOZ9QAAk2gBKgKm500MDAwMCBxdXRyaXQtbXViLXN0YWJpbGl0eQAfefyz96SveEo0FduBsoJ2CHtqRjQwMDAwIHIyLW11dGF0aW9uLXBhdGgtY29weQBKNaAtIe/QvnjVOjtNU8gMaVBFUjQwMDAwIHI0MjAtYWRqYWNlbnQtYS1zZWVkMDAAkE1zw5V8keCp94twvnndbPFK6l80MDAwMCByNDIwLWFkam9pbnQtY29tcGVuc2F0aW9uAMXpOhDVQRadhT9nMf3kXsHPU5MXNDAwMDAgcjQyMC1hbGwtbGVuZ3RoLWNsZWFudXAtZmxvb3IA2ipgFGqoqpIp+jV9xeqHfBb+fJE0MDAwMCByNDIwLWJsb2NrMy14b3IA1Vxeh20c+6z2XzqaGB5zq395wzo0MDAwMCByNDIwLWJsb2NrNC1yZXN5bnRoZXNpcwCbBEku2VGlbCiDNJ3JdAtB+F6QGzQwMDAwIHI0MjAtYmxvY2s0LXRydXRoLWF1ZGl0LXNlZWQwMAB+f9RGM7zvEAPNscFaPnMzOeWqNzQwMDAwIHI0MjAtYmxvY2s1LXJlc3ludGhlc2lz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8ocAjyc+VOq/ZSnTmWM0MDAwMCByNDI5LWZ1bGwtdGFyZ2V0LWludGVyZmFjZQBAkT4mPYt4Fq8wCtDJpIsJJf0dYjQwMDAwIHI0Mjkta2VybmVsLWVuY29kaW5nLWJvdW5kYXJ5AKgXR7EQL8S74dx6NQY2iuq1HOIjNDAwMDAgcjQyOS1zaWduZWQtcmFuZ2UA8XCDV8wfPuHxJ1cuZtUStF/RUSI0MDAwMCByNDM3LWFkbWl0dGVkLWNvdW50LWNvbnN1bWVyAEfJvA1t1CsacJIJo5UbRDXXQHzgNDAwMDAgcjQzNy1hZG1pdHRlZC1jb3VudC1wb3dlcgDAsdE203r7ZEAfw0GlQKhM/0jy4TQwMDAwIHI0MzctYWZmaW5lLXR3by1jaGlsZC1ib3VuZADLd2ehsTLRbuow2E6ERd6j9CKgOzQwMDAwIHI0MzctYmFkLWNsYXNzLXBpdm90LWF1ZGl0ACW33zKvJDtU+N55CDHZUXXOjLyDNDAwMDAgcjQzNy1iYXRjaGVkLWhpZ2gtcXVvdGllbnQAPKGy3IySFchABaiPh4z+KDtpu5g0MDAwMCByNDM3LWJpbmFyeS1kaXZpc29yLXJlYWxpemF0aW9uAPn0aH6EG649BlcvgBnAHAaJhVlYNDAwMDAgcjQzNy1jYXJyaWVyLWludGVncmF0aW9uABZ9VxBGQq07LAl6T/GceQC9TDKeNDAwMDAgcjQzNy1jYXJyaWVyLXF1b3RpZW50LWN1dABpahCdcOgRQTbo0cKFGhY4GadZ8TQwMDAwIHI0MzctY29tcGxldGUtdHJhbnNwb3J0LXRhcmlmZgDv0J/pmbbjPImatWFaJRzos4vs2zQwMDAwIHI0MzctY29tcG9zZWQtYml0LWluZGVwZW5kZW50LWF1ZGl0AFNTJ/1zT3AFr6pP4Gnbj6OyxAmWNDAwMDAgcjQzNy1jb3B5LWVjaG8tYnVkZ2V0AEGyNhdAhbBgxUtDoB/osWOQqPVINDAwMDAgcjQzNy1kZXNjZW5kYW50LWluZ3Jlc3MApVWxymCU6KL+ty7Mnh2b45M8skk0MDAwMCByNDM3LWRlc2NlbmRhbnQtc3RvY2sA9dVfARGGUqLXjc5W5svo+eUbJn40MDAwMCByNDM3LWZpeGVkLXBhaXItY3NlAE0lr+awtZGiSFnEHN9/79ig6pVLNDAwMDAgcjQzNy1oaXN0b2dyYW0tbWFzcwAKeFWtbeLWNMXmIwmOBMnkhNlfojQwMDAwIHI0MzctbGVhZi1kaXNwYXRjaABR59pRqAmrcZU2IsQw7MvJL22BxzQwMDAwIHI0MzctbmF0aXZlLXRyYW5zcG9ydAABYpaZFDEnUpLM7A1XZAWTt1UD6jQwMDAwIHI0Mzctbm9uemVyby1oaWdoLWxlYWYABYTDUHtrSMjNnP4o+ejTvq02F3E0MDAwMCByNDM3LW9xNC1jYWxsZXItYmluZGluZwCMCOwcGokICMqADkdyzDhW4/tmRTQwMDAwIHI0Mzctb3JkaW5hcnktdDM2MACKNtRb6zrUUsXE54XJvXHasR95ujQwMDAwIHI0MzctcGFyYWJvbGljLWNvcHkAv9bs6NQ8oDQnlmHsk/nKEHsqPu40MDAwMCByNDM3LXBhcmVudC1zcGVjdGF0b3ItYmxhbmsArj0b6uL3s2uwjb7NJmj898i3Mbg0MDAwMCByNDM3LXBpLWNoaWxkLWNvbnN0cnVjdG9yAIck6phwMKmkUXVm2gBULep83hIlNDAwMDAgcjQzNy1wb29sZWQtbmF0aXZlLWludGVyZmFjZQB60598kNsBIHCQ+KKfepqEWF5cBjQwMDAwIHI0MzctcHJlZml4LWNvbnN1bWVyLWZ1c2lvbgBhxLcM6IVdB8RlWvu/UuisCe8nLzQwMDAwIHI0MzctcHJlcGFyYXRpb24tY29tcG9zaXRpb24AiGDMPYTSnB/0lDTd93YOvedISVo0MDAwMCByNDM3LXByb2dyYW0tc3RvY2stcGF0aAAu9oAb5oftuCqYbZ1RSLTbtUQ4mzQwMDAwIHI0MzctcmVwbGljYS1pbmRleGVkLWVtaXNzaW9uACYh+vVXMHFa0Idv04sfzxLHA/JBNDAwMDAgcjQzNy1yZXNpZHVhbC1jb250cmFjdAB0wOi5CXtzqBs4dijZ34J8k65oyDQwMDAwIHI0MzctcmVzb3VyY2UtZW52ZWxvcGUAvp/FZSbfdDg6850XJl8UjPfdq6s0MDAwMCByNDM3LXJldmVyc2Utcm93LWNvZWZmaWNpZW50ALCbeYgZoYvgJAzALpIYiQh2nLtUNDAwMDAgcjQzNy1yb290LXN0ZXAtaGFuZG9mZgCzWb8FPdvWHO1/Up9su6ocOiUqIjQwMDAwIHI0Mzctc2hhcmVkLXJhZGl4LXF1b3RpZW50AEgFOXZ0ETbZTpF8YaNYL+qdMu/uNDAwMDAgcjQzNy1zaGFycC1zdG9jay1lbnRyeQChd/rR/11moHJL+kI+JtUdG2xBKzQwMDAwIHI0Mzctc291cmNlLXByZXBhcmF0aW9uLWJvdW5kAGNNAFA7ij7ZHSVUWOboHvqr0TNMNDAwMDAgcjQzNy1zb3VyY2U4Ny1maWJyZS1tdWx0aXBsaWNpdHkAnPwcIMhSJ94kq3a4OixaMPOQ74I0MDAwMCByNDM3LXN0cmVhbWVkLWxlYWYtd29ya3NwYWNlAHsR31N9x8eK/BT0MS8J4PiaWFSpNDAwMDAgcjQzNy1zdHJlYW1pbmctZGlyZWN0b3J5ANn1eo32OWrTAJTFSnGwTSGPQHZxNDAwMDAgcjQzNy10d28td2luZG93LWNhcnJpZXIAqegGDlEEpfBwlTbEdLocpfvQkW40MDAwMCByNDM3LXVuaWZvcm0tY29weS1yZWR1Y3Rpb24Az8tF8ylMtdjaI1bD6uxQLyLu04Q0MDAwMCByNDM3LXdob2xlLXdvcmQtcmVmaW5lbWVudADO50QFz7erQOqc9BHlh5Zs0O77JzQwMDAwIHI0MzgtbmF0aXZlLXJlaG9zdADJUrgduZiaOIzBVTMg6qSMFbd9tjQwMDAwIHI0MzgtcmFuay1kcm9wAEANThdaG7RRycX8Lv+DOPwl08K/NDAwMDAgcjQzOC1yZWhvc3QtcHJvamVjdG9ycwDCr6TThwD9E2zdr4pTxikgfyB3eDQwMDAwIHI0MzktYWJjLWhvc3RlZC1pbnZvaWNlACDuLF9nzyrUbdxDTB7WkoFFCHqjNDAwMDAgcjQzOS1hYmMtc2VtYW50aWMtYnJpZGdlAPIjQHcq4ADzA0Zx10kG+E5Gl4Y0NDAwMDAgcjQzOS1hYmMtc3Rhci1jb21wb3NpdGlvbgCg6yYwwweiXWnhIqzJRqHbNUR4EDQwMDAwIHI0MzktYWJjLXpyZXdyaXRlLXNlZWQxNgBRZIHdT/c2JlSikNdGKUH6omxBATQwMDAwIHI0MzktYjUwOS1ib29sZWFuLXNlZWQwNQDGCyGNUjXTp8kA8Es3cMJY92uUYzQwMDAwIHI0MzktYjUwOS1pbnZlcnNlLWZvb3RwcmludC1zZWVkMTkA34hHtb94rnmtTScn5bw4I1cimvU0MDAwMCByNDM5LWI1MDktbG9jYWwtbWluaW1hbGl0eS1zZWVkMDYAVxK42Xh/EH1VaLOcoSVyWmG5Sak0MDAwMCByNDM5LWJibG9jay1mcmFtZS1iYXJyaWVyALX5CE/V0N5h/29PUXmZuJwuOaBRNDAwMDAgcjQzOS1ibG9jazEtc2NoZWR1bGUADw+bkG9L5d72Kvuvx4Bew+YPjNg0MDAwMCByNDM5LWJsb2NrNTA4LXNjaGVkdWxlAPYIht0kOgFlyQa+k8kyxB/NHQUvNDAwMDAgcjQzOS1ibG9jazUyMS1mYWN0b3IAU6rWQVjMSCeBpiJ3eJzX+mGzREs0MDAwMCByNDM5LWJsb2NrNTIyLWZhY3RvcgCYlPzB0qkI/m89PVV2IwdSXmE+QTQwMDAwIHI0MzktYmxvY2s4LWludGVnZXItZmFjdG9yAFpPR71xtFMYanWU/ii5eJah/PFeNDAwMDAgcjQzOS1ic2VjdGlvbi1tdWx0d3JpdGUAwF2Jx4UjDn28yNlBvUL1KEap3M00MDAwMCByNDM5LWJzZWN0aW9uLXN0YXJzLXNlZWQwMQDc+HuuRSlgKZ91hgqVc6lq9nmTyzQwMDAwIHI0MzktYnNlY3Rpb24tc3VydmV5AKpHIxeU1TB/eIxEE71gf30+CpPeNDAwMDAgcjQzOS1jb2FsZXNjZWQtbGVnYWwtam9pbgCNXHB0KsnycWEXZTVnkAe9koRkszQwMDAwIHI0MzktY29weS1wYXRoLXNoYXJpbmctYmFycmllcgD4g7nYQ6kDg0hnp2zhMlQ7cI2eLDQwMDAwIHI0MzktY29weXNoYXJlLWgyc2VtLWFkbWlzc2lvbgDh3hafA9FRV4Rb22oePbgfP/EeoDQwMDAwIHI0MzktY29weXNoYXJlLW9wdGltYWwtbWF0Y2hpbmcAwus2UMsGKDHPsO9VQe37+UJ8LxU0MDAwMCByNDM5LWNvcHlzaGFyZS1wcmljZWQtd3JhcC1zZWVkYWFhM2U0MAD2CyTB7Q0p07Hm1RpdaQbOfwTUIDQwMDAwIHI0MzktY29weXNoYXJlLXN0YXItY29tcG9zaXRpb24AD6ms3HovDw2a3NMdlE+4c8rno3w0MDAwMCByNDM5LWRlZmVycmVkLWlkZWFsLW9wdGltdW0AE6QwCGhu63zA8HH+AHbJOgM5qaY0MDAwMCByNDM5LWRlZmVycmVkLW5hdGl2ZQC4a55Cmw795t6/HdG+wF/oAS1ySDQwMDAwIHI0MzktZGVmZXJyZWQtdGFyZ2V0LWJhc2lzLXNlZWQwNgCEtXZuDoFIGUQi7yu+bAGS3CfVJTQwMDAwIHI0MzktZGlydHktcGFja2V0LWFkYXB0ZXIAsZ84C//4xiLEDdkeTf6/vvdlBhU0MDAwMCByNDM5LWRpcnR5LXdvcmtzcGFjZS1mcmFtZS1ib3VuZAAAFj/+UX8hlVNHeix7+6VM/TovZjQwMDAwIHI0MzktZG9ub3Itc2VwYXJhdGlvbjE3AANRZk/G0L33njjF6GKJtwi1VDVrNDAwMDAgcjQzOS1kb25vcjQ2Ni1lbmxhcmdlZC1zZWFtAKQcZvL2ipTS5W55IyeoJ5fTsHFMNDAwMDAgcjQzOS1maXZlLWN5Y2xlLXNlZWQ5ZjAxAHM/qPaz6zpQawWcXHNRhvDmmxPCNDAwMDAgcjQzOS1maXZlLXdpcmUtcHJlZml4AP5BFyry1MVfZW0ezT9/VZ5cyz6oNDAwMDAgcjQzOS1mb3VyLWJsb2NrLWNvbXBvc2l0aW9uAM0lfvimbQR+pwOiqVz6lK9tijTaNDAwMDAgcjQzOS1mb3VyLW9taXNzaW9uLWJvdW5kYXJ5AKGVRO9y3jrQA2iJTQ2PG2O/6jJnNDAwMDAgcjQzOS1mb3VyLXdpcmUtcHJlZml4AN9iwyS/KqI6SMI/hZ4LcHb5wql2NDAwMDAgcjQzOS1mcmFtZTI2Ny1zZWVkMDEAdDHNLeE81KLzWETebakO3zpi5yA0MDAwMCByNDM5LWZyYW1lMjcyLXNlZWQwNgAD84K9mCvK24VuImjxL+JIEMWWLTQwMDAwIHI0MzktZnJhbWUyODEtc2VlZDE1APi+qmNt8MNtVfB+kMjbmnjOdkF2NDAwMDAgcjQzOS1mcmFtZTUwNi10d28tZmFjdG9yAOrREP1LLXp2HfET4wcai/Qt1Yz3NDAwMDAgcjQzOS1mcmFtZTUwOC1pbnZlcnNlLWN1dC1zZWVkM2IADyqNjzrCC/UT2JGpFXDM6NAJGNY0MDAwMCByNDM5LWZyYW1lNTA5LXNlZWQwOACV2i2c2wevbmO6gdOyHpe5A7ZqyjQwMDAwIHI0MzktZnJhbWU1MTktc2VlZDAyAI8PNFMOelbyFLO4TIqjjjVYIGHcNDAwMDAgcjQzOS1mcmFtZTUyMABGm9Y9HT0vCSMCqACcFuQOY1MZRjQwMDAwIHI0MzktZnJhbWU1MjQtc2VlZDEzAHM9BpGkwHsMLb05j6ZZXrgrKTAaNDAwMDAgcjQzOS1nbDUtc2hvcnRlc3QAQi4kSgzOG6NK+Q2XXXHWNkqAnkY0MDAwMCByNDM5LWdsb2JhbC1wcmVmaXgtYWRtaXNzaW9uAOvGJZhLx3nl8HkSezncbO9mUmDPNDAwMDAgcjQzOS1oZWxwZXItZGVzY2VudC1zZWVkMTUAv6Q2ncc3TGi8HhvHBAhyxqw47dc0MDAwMCByNDM5LWhlbHBlci1tYXRjaGluZwBIzTCPzGewHfDNdfyEiXmZt9XQUTQwMDAwIHI0MzktaGVscGVyLXF1YXJ0ZXRzLXNlZWQwNwBYDu2l8v9e+RyRY4mQl0dQUmugQTQwMDAwIHI0MzktaGVscGVyLXN0YXJzLXNlZWQxOQDxyGDkzVP46CoUsbPPRaDnZZ7IbTQwMDAwIHI0MzktaGVscGVyLXRyaXBsZXMAVU/njWEmkGJ4mEYqSv3KeAJiASw0MDAwMCByNDM5LWhlbHBlcjQ2OC1sYXRlLWN1dADtrXf5qwtP1646ECp/JoI7hkniRTQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtY29weS1jb250cmFjdAAF7Lm/KQW3EIlFULBx9eJ9oSyn6jQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtbmF0aXZlAGrKfQf3nO9ql/sZeFKpaZTdhEuRNDAwMDAgcjQzOS1pbnRlcmxlYXZlZC1wYWNrZXQtcm91dGluZwBgbBpNXdtuYEyL8WtVRYKOtAgVBDQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtc2NhdHRlci1zZWVkMTYAnHb5Vbra8Vg7fyLYJzE96Oe37w00MDAwMCByNDM5LWludmVyc2UtZC1lbnZlbG9wZS1zZWVkMDAAzYp9pVLQxMlWN/oOcUyHKXmy2480MDAwMCByNDM5LWpvaW50LWxhdGUtZW50cmFuY2UtYm91bmQAHdI7UD7Ekz1oU5H+OS6fpcgH51Y0MDAwMCByNDM5LWstY3Jvc3MtdGVybS10YWxseQA4yCvMUoUaeyHNTfKp2sF6KedTxTQwMDAwIHI0Mzkta2VybmVsLWVudHJhbmNlLWNsb3N1cmUA1ZF9SfULaYQQ2bX2lWravgb9KwU0MDAwMCByNDM5LWxhdGUtZW50cmFuY2UtY2Vuc3VzLXNlZWQwOQAZ4iQecvqX3U1+ncDPn0SlYojDcjQwMDAwIHI0MzktbGF0ZXItcmV0aXJlbWVudC1jdXRzAKCzOg3gU4HW8ZhMVXWgdIzcyid6NDAwMDAgcjQzOS1tYXRjaGluZy1uZWlnaGJvcmhvb2QxMwCtG0VCg9BWzQgjl7vQ0Z3iCsVf+jQwMDAwIHI0MzktbXVsdGktZG9ub3Itc3Rhci1hYnNvcnB0aW9uALx+M9/p93YRjTENmZ1q/wY/kkUfNDAwMDAgcjQzOS1tdWx0aWNvbHVtbi1uYXRpdmUAA3jM0jBiHJYWdZWJURf0JLjyqjs0MDAwMCByNDM5LW5ldXRyYWwtaGVscGVyLWNoYWluLXNlZWQxNwBJmtOqptCPVvYFijgiRQCupBCQnTQwMDAwIHI0MzktbmV1dHJhbC1taXhlZC1zaGVhcnMtc2VlZDEzAKy5fZD4r6Q1dPExv8iC2fwcT1aINDAwMDAgcjQzOS1vbWlzc2lvbi1hdGxhcy1zZWVkODEAYIN8VfRgDoErYQZZLG6pE3zKO4Q0MDAwMCByNDM5LW9uZS1idWZmZXItcGFja2V0AL+/aMs8H9Kd0ERexR9SDLFjFs55NDAwMDAgcjQzOS1vbmUtc2xvdC1tdWx0aWNvbHVtbi1pbnRlcmxlYXZlAIMYTpJG/+0XtDFn+p8txLIkEquDNDAwMDAgcjQzOS1vcHRpbWFsLW9taXNzaW9uLXByb2Jlcy1zZWVkNjYAIll6gGEk7Sbw6g2hAvY1nwXKbJc0MDAwMCByNDM5LXBvc3QtaGVscGVyLXNoZWFyLXNlZWQwMwCHGf4QlBUqXpYRMRRQwY5t6TUyoTQwMDAwIHI0MzktcHIxMDE1LXJldGVudGlvbi1zZWVkOTUAkvdaGqwhNIAyinw1R6pdddPLLPI0MDAwMCByNDM5LXF1YWQxNy1zZWVkMTcA8puDE2/W9OPWp5VsFYblkG8EZ700MDAwMCByNDM5LXJlc2lkZW50LXBhY2tldHMAaXvznxKFturgo9h5CL3/BrZoqN40MDAwMCByNDM5LXJlc3ludGgtZnJhbWUtc2VlZDEwACgUb6vYVVwUp8nru8u8ZoFSiOFSNDAwMDAgcjQzOS1zY2FsYXItaGlzdG9ncmFtAL593vAbSIbdW9bC0EF1rnQ7AKbONDAwMDAgcjQzOS1zZW1hbnRpYy1kLWNvbnRyYWN0LXNlZWQxMABdYMuQTgXJ8CrMw+LFX4ksmld1cjQwMDAwIHI0Mzktc2VtYW50aWMtZC1uYXZpZ2F0aW9uAD2n6+/yO2PCCHWE/QJvfSNxlG3SNDAwMDAgcjQzOS1zaGVhci1jb21wZW5zYXRpb24taHlwb3RoZXNpcwBnpp4ohoQXaWpMViQCdm/w69dyPzQwMDAwIHI0Mzktc2luZ2xlLWNvcHktaW50ZXJsZWF2aW5nAOoTL5WMJR0i1rtunTXtHIsZZHENNDAwMDAgcjQzOS1zaXgtd2lyZS1ib29sZWFuAKN47ojW3jkyVrkzZnFadwlljazJNDAwMDAgcjQzOS1zb3VyY2UxOS1kdWFsLWZyYW1lLW9ic3RydWN0aW9uACrGdh2glSBFoWw9OTKhcaCarpv7NDAwMDAgcjQzOS1zb3VyY2UyMi1kdWFsLWZyYW1lLW9ic3RydWN0aW9uAIUAFf7OOHevLJm/eh60qKjm0cAfNDAwMDAgcjQzOS1zdGFnZWQtcmV0aXJlbWVudC1ib3VuZGFyeQBT0GTzaMYDuMv/VZQCgqza+SnK6TQwMDAwIHI0Mzktc3Rhci1rZGVmZWN0LXNlY3RvcnMAF99xh4FsYm7OQ8sV/2iT9Jrvsw80MDAwMCByNDM5LXN1YjEway1zaXh3YXktYW5kLXN0YXItZHVhbC13aXRuZXNzZXMApuMcspF8D3bb7E1Jl48SlQlBisM0MDAwMCByNDM5LXRhcmdldC1jbG9zZWQtay1yZXNpZHVhbACYEAI10BQtRD/Apc5THL+p8d6w5TQwMDAwIHI0MzktdGFyZ2V0LWNvbXBlbnNhdGlvbgAwmyE1BCw5yK4ayzDdFF/XAADhyTQwMDAwIHI0MzktdGFyZ2V0LXJldHVuZS1zZWVkMTQA2N74SGvn+eiv+ylb13TvvItYVrY0MDAwMCByNDM5LXRlcm1pbmFsLXJlcGFpci1iYXJyaWVyAPD51QpDy7MHMLXiwYATXduUKTLINDAwMDAgcjQzOS10ZXJtaW5hbC1zdGFyLXJlc3RvcmF0aW9uAOO4eNmWo3y5JQ812s5SaP1JxbnANDAwMDAgcjQzOS10aHJlZS1vbWlzc2lvbi1kaXN0YW5jZQC34gAJL0w8Q7uaMupdv6YeYAuBlDQwMDAwIHI0MzktdHdpc3RlZC1uYXRpdmUtYXVkaXQAPlygsKh9T8gfgzXpkmldAxqVAjI0MDAwMCByNDM5LXR3aXN0ZWQtc3Rhci1hYnNvcnB0aW9uLXNlZWQwMgDWfuknlB7Msw//V57R/6jIYCGF2DQwMDAwIHI0MzktdHdvLWNlbnRlci1kZWZlY3QtcmVsYXktc2VlZDYzZTkAOJCis7Ew4PWXEcH8/FgxnO0aWEs0MDAwMCByNDM5LXR3by1zaWRlZC1jb21wZW5zYXRpb24A+qJ5Z9ztj0UU66skmgJBNK8fcCg0MDAwMCByNDM5LXR3by13cml0ZXItYWJzb3JwdGlvbgCmmLbJIL9L6vIML7mxFtyT6y37ZzQwMDAwIHI0MzktdHdvLXdyaXRlci1yZWZyYW1pbmcAV4Y9Eo+P0n9HjvYDA+Tp8Ar/MIQ0MDAwMCByNDM5LXozdG8yLXNlZWQxMwBzxDFHGZB3+H3GIQ9jooWffZK41jQwMDAwIHI0ODAtbGVhdmVyLXJhbmstYmlsbAASNW5aghAPYZrwkvdBm5DCrXD7ATQwMDAwIHI0ODAtb3duZXItb3B0aW11bQDHIupAIOdzGO9m7zWDl/myLhU+TTQwMDAwIHI0ODAtcHJpdmF0ZS1jZW50ZXItYWRqb2ludDgwAFJ63HVYNKn9vDcP+UgDha1z3P0xNDAwMDAgcjQ4MC1xbm9kZS1zZWVkMDIAJwjB3gm/siUNLjkTvgOaTiiT6Ew0MDAwMCByNDgwLXFub2RlNS1zZWVkMDUAinHRtA9S/SPAOvz6bgBBt+w/kd00MDAwMCByNDgwLXFub2RlNi1jb21wb3NpdGlvbgDjk3aCNSJXIugbb29re5fZZhUU4TQwMDAwIHI0ODAtcXVhZC1zZWVkMQBMhNJmgPXbwU3XivDjm0bSR+fpWTQwMDAwIHI0ODAtcXVhZDEyLWV4YWN0LXNlZWQxMgAktFhlIsL4zWeJzBm2kZKmFirmHDQwMDAwIHI0ODAtc2hhcnAtY2hhcmdlNTM1AAxUn7qUC0jVn9iVyVuoNqOlLrONNDAwMDAgcjQ4MC1zbGljZWQtbWluaW1hbC1mcmFtZXMAU567CCjimLi20DISni9rrNDsXrU0MDAwMCByNDgwLXNvdXJjZS1pbmRlcGVuZGVudC1jbGVhbnVwAOm46U6A04fEIOy3vb5lR1zpZiaNNDAwMDAgcjQ5Mi1wYXJlbnQtYWNjb3VudGluZy1hdWRpdACh+Nm/l3gNI/TpMBEUSKr0VGy2MTQwMDAwIHI3MTQtZXZpZGVuY2UtcmVjb25jaWxpYXRpb24AdsfJmZzjyv5FTbtkaPTJY7PKTss0MDAwMCByNzE1LWNhbmNlbGxhdGlvbi1yZWNvbmNpbGlhdGlvbgC6znhK+zoXnLENERRY3Po65kAeCTQwMDAwIHJhZGljYWwtYWxsLWZpZWxkLWNvdW50AJoQh/UgFIuphmJtduIrnB0BT1fJNDAwMDAgcmFkaWNhbC1jaGFydC1tdWx0aXBsaWNpdHkAycckUhpCoT6Z9C5Xsyah5vzYccA0MDAwMCByYWRpeDktYWxnZWJyYWljLWF1ZGl0AH4qp87d0p7VULO8ySXEuz7goY4kNDAwMDAgcmFtLXJvdXRlLWNvbXBhcmlzb24AF9D/uzMwCTVOZiRpRdUneifBzUQ0MDAwMCByYW5rLWNvbnZlcmdlbmNlLWdhdGVzAMfifuWP8Y1/V2bys3dfEGRJoUnsNDAwMDAgcmFuay1jb252ZXJnZW5jZQD2CdvhZWUvEgilMD1vj7KBUFMoPDQwMDAwIHJhbmstb25lLWNvbm5lY3Rvci1kZWx0YS1zZWVkMGU5ZAAAhCxUksGYOQqte2EONCZmhR7vcjQwMDAwIHJhbmstb25lLWlkZW1wb3RlbnQtY291bnQASQz3A9Qka6saa+eSGaEbQu9j+Yo0MDAwMCByYW5rLXByb2ZpbGUtcmV0aW1pbmctb2JzdHJ1Y3Rpb24AQxsr0sXOxsHIzPB4NnbXG5cS7qw0MDAwMCByYW5rLXNoYXBlLWNvZnJhbWUtYmlsbC1zZWVkODUwYmMzALKpObVOvZSUF6ZPa/dGPKc2q0ugNDAwMDAgcmFuay11bml0LWRlbGV0aW9uLW9yZGVyAJYkLdpzbeV3Z5Gt6yMnW5mwb2lHNDAwMDAgcmFuazEtY2VudGVyLWRlbHRhLXNlZWRkZmMyACna7xPgvNBN0C79+olLEP96s+F3NDAwMDAgcmFuazEtZGVsZXRpb24tdGFyZ2V0AO1MsunMw1A5RUAiqCAGV5LXTu6+NDAwMDAgcmFuazEtdHJhbnN2ZWN0aW9uLWJvdW5kYXJ5LXNlZWQwNDEwAJLlmGvnKJbH14c8orx2ibs7HFDPNDAwMDAgcmFuazE2LXJhbmsxLXN1cmNoYXJnZS1zY3JlZW4ArRAuvb0S6dYipPwccuiWU/+mzh00MDAwMCByYW5rMi1zd2FwLWJhdGNoaW5nAMq3aDNKEQWg4AV1RlXLMNCcROzUNDAwMDAgcmFuazctYWxpZ25lZC1iaXQtYWRkZXJzAPcENF1pjrcki8jU0SWQIVa8QqV8NDAwMDAgcmFuazctYWxsLXRlcm1pbmFsLXNlbnNpdGl2aXR5AJ15DPv3bpS3Qtv8uH11DxXeAFbvNDAwMDAgcmFuazctYmFzaXMtY292ZXIAmQJ3T4j4VIlWtnODX0pkLJOyu940MDAwMCByYW5rNy1ib29sZWFuLXNjYWxhci1jYWxsZXIA5B1ckcY/WFEwoEmbVErzOJdh+ic0MDAwMCByYW5rNy1jYXA3NDAAPkAk4KD7yPj72+bgW59MT2OF95I0MDAwMCByYW5rNy1jaHJvbm9sb2dpY2FsLWZhY2UAdx9fhOFDnW9gBAWOaiwgDa4mjTg0MDAwMCByYW5rNy1jbGVhbnVwLWRpcnR5LWlkZW50aXR5AACaVMCwtS5M2YDh6BzBBYHeO8s3NDAwMDAgcmFuazctY29lZmZpY2llbnQtY2FwYWNpdHkAGrPxci56JVEX3MK5TlTSbHAV0bM0MDAwMCByYW5rNy1jb2VmZmljaWVudC1ncmlkAJyN1OXPTjRxl0Jj35a+GfkJrfIaNDAwMDAgcmFuazctY29tbXV0aW5nLWNvbnRyYWN0aW9ucwDggTWpMhap+cBwgZqUAepr6b71XDQwMDAwIHJhbms3LWNvbXBsZXRlLW5hdGl2ZS1ib3VuZGFyeQAcDwjcbv8WKFQraUO8UchL7SmV0TQwMDAwIHJhbms3LWNvdXBsZWQtNTg2LTU4OC1jYXJyaWVyLWZvbGQAwamt36M+GRF5DQ+WSTOmRyLzloU0MDAwMCByYW5rNy1kYXRhLXNoZWFyLWJvdW5kYXJ5AJutMoO16H6GF29Eo2kPybcACftHNDAwMDAgcmFuazctZGVwYXJ0dXJlLW1pbm9yLWF1ZGl0ACP7TkCW+ebPXPbt1DMKtRTOlR/yNDAwMDAgcmFuazctZG91YmxlZC1yZXNpZHVhbC1leGNoYW5nZQAyLCeu4J8kOf5JSP4/f2X1q6PGGTQwMDAwIHJhbms3LWZhY2UtYm91bmRhcnktZmlsbAA8xV6HTdiHUU4UpNPg+GryPqF7vDQwMDAwIHJhbms3LWZpbmFsLWZpbGwtY29udHJvbHMA1kpeRUqM4fMqvW8W/UX0RlExnAE0MDAwMCByYW5rNy1maXhlZC13aWR0aC1oYWxmLWFkZABeiRwQhb0HNHju81+Op8KH5nFGxjQwMDAwIHJhbms3LWZyYW1lLWxpbmVzAKLXKM0aH/MvUlUkPwm2LtJbyBBYNDAwMDAgcmFuazctZ3JvdXAtYS1lbnRyYW5jZS1hdWRpdAD1yIeYgYzdw2GDqNvcvPJngDb0czQwMDAwIHJhbms3LWdyb3VwLWItbmF0aXZlLXdpZHRocy1hdWRpdABrMCn8x+lCjrqk8FFqeGphdRpSlDQwMDAwIHJhbms3LWdyb3VwLWQtbmF0aXZlLXdpZHRocy1hdWRpdACFlojdYyDNqhZyk1CIMrhbwkw46jQwMDAwIHJhbms3LWdyb3VwLWludGVyYWN0aW9ucwAKumpLglOqHNosf/tQ0O5jvEnJoDQwMDAwIHJhbms3LWh5cGVycGxhbmUtY291bnQAHB6yfImS8mRbp2WFQ9cXEN8Kqvk0MDAwMCByYW5rNy1pZGxlLXN0YXItc3RyZWFtLW9ic3RydWN0aW9uAPeQ1NwB/MiSi1DKrn41jomtQnf3NDAwMDAgcmFuazctaW50ZWdyYWxpdHktZXhjaGFuZ2UAHoPbEx7MJVxWxmqHOl6u3FDtQkI0MDAwMCByYW5rNy1qb2ludC1lbmRmcmFtZXMtcmVzdG9yZS1lZGl0ALoee29MEtHpL3LF+JbYwMhnSHbHNDAwMDAgcmFuazctam9pbnQtZW5kZnJhbWVzAJmBqME12YEFximbMk/5+u9AnypBNDAwMDAgcmFuazctam9pbnQtZnJhbWUtYXVkaXQAudNJeZFY47yvRB2tl+Ce6AKpwP00MDAwMCByYW5rNy1qb2ludC1mcmFtZS1vcHRpbXVtALQKL0DzaUkDvIuq4dCMUoayRTi/NDAwMDAgcmFuazctbXVsdGliaW4tZmFjZS1yZWxheQA3LcEB7PqAhykcHhxDgm9gV6OCnjQwMDAwIHJhbms3LW5hdGl2ZS1hLWZvcm1hdAC5Nu3Q8iXWUk1uWL+lDk5878j+DTQwMDAwIHJhbms3LW5hdGl2ZS1oYWxmLWJvdW5kYXJ5AMS5TYusx7UapnLJud65jIdru9tGNDAwMDAgcmFuazctbmF0aXZlLXRhcmlmZi1vcHRpbXVtAJm5j5wd7e6VBR0xujcRhjfEXtUUNDAwMDAgcmFuazctb25lLWNhcnJ5LXNjYWxhcnMAR74jNvy0zzcnCYmCex91uq7YsCI0MDAwMCByYW5rNy1wYWlyZWQtc2NhbGUtcm91dGluZwDthbDJGwOa+xuXUbzSJ/It1+WZyDQwMDAwIHJhbms3LXBhaXJlZC1zY2FsZQDjdkXZHFLpK6G28tGEb6vlPlfDsDQwMDAwIHJhbms3LXBlZXItcHJpdmF0ZS1mcmVlLWF1ZGl0AIBYJWATC9OKr38h3ygUgYjsz21UNDAwMDAgcmFuazctcGh5c2ljYWwtYTEzANePP2WHcdboxZ6SBp3sdYYyvX9dNDAwMDAgcmFuazctcHJpbWl0aXZlLWxvd2VyaW5nAFGaqi2cqF7lbFjXepAT8N2usGtPNDAwMDAgcmFuazctcjEtdDc0MC1jYXAACgDwRidDCwH7r+6i5qx3woc1koA0MDAwMCByYW5rNy1yZXN0b3JlLWNhcnJpZXItc2tpcHMAXwC/afPSW11iqe/Ucc2laNGXMzg0MDAwMCByYW5rNy1yZXN0b3JlLWNvbnRyYWN0aW9uAFp/YaL+VlBOJr0X91rtkvoym4PDNDAwMDAgcmFuazctcmVzdG9yZS1mcmFtZS1vcHRpbXVtAIGcmBv/Hg9RjghyE+NjQdbylcqSNDAwMDAgcmFuazctcmVzdG9yZS1wYWNraW5nLWNvbXBvc2l0aW9uAKLg+ulJQ1AtNwmBK4VZPU7NnHTcNDAwMDAgcmFuazctcmVzdG9yZS1zdWJzdGl0dXRpb24tYXVkaXQA/9NWN1NcM5WpwB1Sf1E1eGmUfAA0MDAwMCByYW5rNy1yZXZlcnNpYmxlLW5hdGl2ZS1jbGltYgAQSnPJl/bvA6AWGXBJ11mBS+pFqDQwMDAwIHJhbms3LXNjYWxhci1sYXR0aWNlAFXOqr1Ny9DHZKiWCGHfg45k64DRNDAwMDAgcmFuazctc2NhbGFyLW1pY3Jvc3RhdGVzAD/fipLgp++eki+zNkVhwjIdgQX6NDAwMDAgcmFuazctc2VsZWN0ZWQtdHJhbnNmZXItYnVkZ2V0AGnRSu6NHPp1BvCZAWm0RBpxP40FNDAwMDAgcmFuazctc2hhcmVkLXJlc3RvcmUtZmFuaW4A4EUGs7GIMGm6BtDuAsv7jMlGdRw0MDAwMCByYW5rNy1zaXgtc2tpcC1jYXAtcmVsZWFzZQA+5uvotPPjVkgfiX48VvqnQ8c7vzQwMDAwIHJhbms3LXNraXAtcmVzdG9yZS1vcHRpbXVtANj4RK2jDmAQaQJTykB9RDbfBiE4NDAwMDAgcmFuazctc3RhZ2UtY2FwLXJlc29sdmUAfNQLi1jlSq92zPyWEXTKVYA4hpU0MDAwMCByYW5rNy10MTQ4LXJlc3RvcmUtcmVsZWFzZQB4MrvukxZpLS/8pWO0N7/neLU7CDQwMDAwIHJhbms3LXQ3NDAtY2Fycmllci1za2lwcwCj91jeGv8jQDIRekUEmJPRVwcFlTQwMDAwIHJhbms3LXQ3NDAtcmVsZWFzZQBp9sCyOojDg5+dtFr+Fk947XD5BzQwMDAwIHJhbms3LXRlcm1pbmFsLWluZm9ybWF0aW9uLWJhcnJpZXIARut0OM0J7wFbg5OO79hc384vURc0MDAwMCByYW5rNy12NDUtZXZlbnQtYmluZGluZwCkwKRCk8BVlGZH0KuBh+SIEQ3KJDQwMDAwIHJhbms3LXY0NS1mcm96ZW4tb3duZXItaW52b2ljZQANT1KUwCPWMrTYy4CypKz7ABSg3jQwMDAwIHJhbms3LXY0NS1ncm91cC1hdWRpdACIaIFjzkMwUZitSDsHjWVwNCSLiDQwMDAwIHJhbms3LXY0NS1pZGxlLWNocm9ub2xvZ3kAeSEZWZlgX0PHuEvEaMruyEm/pt80MDAwMCByYW5rNy12NDUtbWFyZ2luAKMDkk35/yCLKhjXQ4KX0NCkZXlQNDAwMDAgcmFuazctdjQ1LW5hdGl2ZS1jb25lLXNlZWQ3OADqbdHaxR9sfdsQgZ8qPtc6ohnDUzQwMDAwIHJhbms3LXY0NS1uYXRpdmUtZW5kcG9pbnQAimNxxNBVSGFJdPspd1manLoEXlA0MDAwMCByYW5rNy12NDUtcHJvZmlsZS1hdWRpdAAbmUDMJdTX9hLAhKTWuMFd2CoMmDQwMDAwIHJhbms3LXY0NS1zaGlwcGVkLWludm9pY2UA/ltTs9E4nMqqDJvrnqtbDVC+C/k0MDAwMCByYW5rNy12NDUtc2luZ2xlLWxvd2VyaW5nAHg0r/BvgAQQmfFKNWjb4kPF6SlhNDAwMDAgcmFuazctdjQ1LXdpZHRoLWlkbGUAIL1l+YSRuWfqSb/8WqtlnyfiURg0MDAwMCByYW5rOC11Mi1lbnRyYW5jZS1vYnN0cnVjdGlvbgBsiAtBRU2XQjrrrJ1UvqBh07dLkjQwMDAwIHJhbms4LXUyLXBsYW5lLXBvcnQtc2xhY2sAOEywdqyq0R7/zQWIkDXjpMavoeg0MDAwMCByYW5rOC11Mi1zcGxpdC1ib3VuZGFyeQAJLk/Xnw9BF/JmEnLDTUXn/s0wHTQwMDAwIHJhbmtlZC1wYWlyLXZlcmlmaWNhdGlvbgDqshRngI7C+6WWEWuxs+1BqDsnxDQwMDAwIHJhbmt0d28tb3ZlcmxhcC10ZXJuYXJ5AOUasZ5ZMiL4718oXmKbPeadEIKiNDAwMDAgcmF0aW9uYWwtY2lyY2xlLWJvdW5kABHgBIrrnZVxkOaaf51mjZKuT1+VNDAwMDAgcmF0aW9uYWwtY29udGFpbm1lbnQtY2hpbGQtaXNvbGF0aW9uAKObiLnzw+H8F8SczRqWDiI8xQJeNDAwMDAgcmF0aW9uYWwtY29udGFpbm1lbnQtcGVyZm9ybWFuY2UA9FT8K6cadh+VhwjM2F9uVwCk3PY0MDAwMCByYXRpb25hbC1mZnQtZml4ZWQtaABghGdp8ygtU35JWUBRlvSFN//9ITQwMDAwIHJhdGlvbmFsLWpvaW50LXN1cHBvcnQtc2NyZWVuACMKLy5EuOD6mMEf5mX5GP81grE2NDAwMDAgcmF0aW9uYWwtbGlmdC1kZXNjZW50LXNlZWQ5NQAVfIUHfqErDfLwRcJQMQWE6y+ucjQwMDAwIHJhdGlvbmFsLXJlc2lkdWUtc2NvcGUAFuITs/OOd3+yKFtQYYW7kC0p4j40MDAwMCByYXRpb25hbC1zdGVpbi1nZW5lcmF0b3JzAHDraULgpVosoMzKoVj/RMFSFdomNDAwMDAgcmF0aW9uYWwtdGhyZXNob2xkLXJhbmstZXhjaGFuZ2UAXgAlGCZNN5LD/YIZJYp16VnC9g40MDAwMCByYXRpb25hbC10cmlhbmdsZS1zZWVkNDgAGDkTRG6ZLaGGr+D2EV3rrEkcF1s0MDAwMCByYXRpb25hbC11bml0YXJ5LWZmdADR/trNQpUOVOynxH6sZq4HY5OMITQwMDAwIHJhdy1nYXVzc2lhbi1jYXAtYXVkaXQAIaxKZZeckGBniXt4glP+MxpxtYU0MDAwMCByYXctZ2F1c3NpYW4tcm91bmRlZC1jYWxsZXIAl9BhI8AsHp4+Tu0Bxb94axz3XM00MDAwMCByYXctc2VsZWN0ZWQtY2VudHJlLXVuaXRzAF6DhDsQpp7kA2Uwl8FAnAB2MS4qNDAwMDAgcmVhZGVyLXJlc3RvcmF0aW9uLWN1dHMtc2VlZDUzABrSqqEQRnOhxzaIBc+UC7tw0DgBNDAwMDAgcmVhbC1wYWNrZWQtdGVuc29yLXN0YWdlZC1jYWxsZXIAmoJxogjBPWbkUrmnDkbeoeCV7Iw0MDAwMCByZWNlaXZlci1hbGwtbGVuZ3RoLWZsb29yAIDyUChxXe1EGAtKZosvPMqnweoPNDAwMDAgcmVjZWl2ZXItY29udGFjdC1mbG9vcgBtot2QfaQ+8bTUeatfLu+PBhvwhjQwMDAwIHJlY2VpdmVyLXdpbmRvdy1hbGwtbGVuZ3RoLWZsb29yAJzr+lbnDwmEPyRQvyJVPnpgQSqgNDAwMDAgcmVjZWl2ZXItd2luZG93LXRyYW5zZmVyAM/h63C3UFEOBXdgHAJkkKyTn2BINDAwMDAgcmVjaXByb2NhbC1kaXJlY3RlZC1ndWFyZHMAqJVknnC6ZXX/uST+sdVAE3hLZwM0MDAwMCByZWNpcHJvY2FsLWZpcnN0LWZhaWx1cmUtYXVkaXQAR88HptpY4JYOWw8dFAFx/ynfiBU0MDAwMCByZWNpcHJvY2FsLW5hdGl2ZS1yZXNwb25zZXMASJQwG2P5a8Rw0KOir+H2/1JB2ac0MDAwMCByZWNpcHJvY2FsLXNlZWRlZC1ndWFyZC1ib3VuZGFyeQDGwVQLT3CgaYoNVjcJghwG3ut0gzQwMDAwIHJlY2xhaW0tb3JkZXItcGVyZm9ybWFuY2UAnjeTm+w2y2gHvSaBXzIR1nlvj5I0MDAwMCByZWNsYW1hdGlvbi1wcmlvcml0eS1wZXJmb3JtYW5jZQC2bRzrJTJ3tcZfjAMbLXfbn4yrVTQwMDAwIHJlY3Rhbmd1bGFyLW91dHB1dC1ib3Jyb3dpbmcAwVZVP6zqjXPp+3ShAliZwFnKlIw0MDAwMCByZWN1cnNpdmUtbXVsdGl0ZXJtLWFuY2hvci1zZWVkYjlhMjMAOhxisKWH4JTfFa/8d+Tw6wHuZEs0MDAwMCByZWN1cnNpdmUtb3V0cHV0LWV4Y2hhbmdlANMleJjEBMxHvKEVpNw/Fc6j/4qBNDAwMDAgcmVjdXJzaXZlLXBhcmtpbmctYm91bmRhcnkAZpCxEtL2NzM2Nf/L9DqEhNix9uw0MDAwMCByZWN5Y2xlZC1iaXQtaW50ZWdyYXRpb24ArqVUxVySBuREsT/lm4EWLEXmtps0MDAwMCByZWN5Y2xlZC1iaXQtbmVzdGluZy1yZXVzZQAal5XE/B1mxxgxNwMLbVvGMqInDzQwMDAwIHJlZmxlY3Rpb24tcm91bmRpbmctcmFkaXVzALuHCZQ6LOrIl0xjTRgzvR8ZgEgbNDAwMDAgcmVnaXN0ZXItcGFpcmluZy1jb21wcmVzc2lvbgApp/6gtgeIAnZ08dBqVZ60gTg18TQwMDAwIHJlZ3VsYXItb3JiaXQtbGVhbi1pbnRlcmZhY2UAfDC5fjpMKiGp6LUxPm4nBDYE7hQ0MDAwMCByZWxlYXNlZC1vcGVyYXRvci1jbGlmZm9yZC1jZWlsaW5nAItIOUr4NNL2MDLDBW60u1z1vKEyNDAwMDAgcmVtYXRjaC1ibG9jay1yYW5rLWF1ZGl0AMIJKolSuNUh3R8XCLOSntaoGrB/NDAwMDAgcmVwbGF5LWFzdC1jYWNoZQA0Mnkekc3PJK+DDrb4Kq9Q8CMBcDQwMDAwIHJlcGxheS1pbnB1dC1jYXNlLWFsaWFzAIRWlrw22eL+0ny32A14q+X6EMO3NDAwMDAgcmVwbGF5LWlucHV0LWhlYWQtc3BlbGxpbmcAS6BoQORmS1gviGm9OwneKjm15hA0MDAwMCByZXBsYXktaW5wdXQtc3ltbGluay1hbGlhcwB++dTYKbxTdYgrJsFS9CWpzv8DDzQwMDAwIHJlcGxpY2EtcHJlZml4LWF1ZGl0AE1Bzz6NOAAsdgdo/UVoyayaPLTTNDAwMDAgcmVwbGljYS10YWlsLWdhaW4ACYjDdX5EDqgKvpKQg96rC9Sqicw0MDAwMCByZXF1aXJlZC1yZXBsYXktY292ZXJhZ2UAo5ynsPBJV9x2Za+4eaCOZVyKtiE0MDAwMCByZXNlYXJjaC1wYWNrYWdlLXBpbi1iYXRjaGluZwBjR/cBivuvr/CFEN2OYVtfTKjFoTQwMDAwIHJlc2lkdWFsLWNhbGwtcmVmaW5lbWVudADQwDXcK5z7hdNpH/JLvT1qmaJnYTQwMDAwIHJlc29uYW50LWFsbC13aWR0aC1wcm9qZWN0b3IASRfH/WXwJ1fPRhQGxEQ4G8JRrVY0MDAwMCByZXNvbmFudC1jaGFubmVsLXJhbmsA60nD8yQYssZOHta0J0eN4o0h/Wo0MDAwMCByZXNvbmFudC1vYmxpcXVlLXNlY3Rpb24AIyu7xACthSx3NmxD2MAuHk79Obo0MDAwMCByZXNvbmFudC1vd25lci1leHRyYWN0aW9uAGW87VAUdhi3GN7f1tmmK4u+erymNDAwMDAgcmVzb25hbnQtcmVjb3Zlcnktc2NhbGFycwCA4nRSk0gTj238gu//fFowLjoFpjQwMDAwIHJlc3RvcmF0aW9uLWNvYWxlc2NpbmcAri1QV1u0KJEIWwizn6QV0RW+1kM0MDAwMCByZXN0b3JlZC1jeWNsZS1nYXAAy0ItKaXwgb1kTifBwNZ3+JFW7qk0MDAwMCByZXRhaW5lZC1hbGlhcy1wYXJpdHktYXVkaXQAOH8EI7lUp7WULPZ4esSRUfuUkMY0MDAwMCByZXRhaW5lZC1hcnJheS1jYXRjaC11cAB39KawKMOwIG2EnEUO1dtafrD7qjQwMDAwIHJldGFpbmVkLWJpdC1zdXBwbGllci1iaW5kaW5nAMFGeR679gDiqG2o8GNUkP1RUNjpNDAwMDAgcmV0YWluZWQtc2NoZWR1bGUtZGVmaWNpdAAEqUNcLTOnLOP/AsetANB44DrRqjQwMDAwIHJldGltZWQtcGFpci1tb21lbnQAUb3GR1HYLoPm43zrz32JgJ6Ggrw0MDAwMCByZXRpbWVkLXdvcmQtaW5kZXBlbmRlbnQtYXVkaXQAsUY6KvgE2R2ocWw47UP3q63owy40MDAwMCByZXRpcmVkLWxlbmRlci1leGhhdXN0aW9uAOyss/4VXs2YEG1tNVXqS+L4TNUMNDAwMDAgcmV0dW5lZC1vcmRpbmFyeS1jb3VwbGluZwBP0xGy/TyZKrX9HeY5NfvunTOmMTQwMDAwIHJldXNhYmxlLWNsZWFuLWNoZWNrcG9pbnQAMcaHalAuFVO5EV40ayote5cVaZs0MDAwMCByZXZlcnNhbC1zdGFibGUtbGFuZS10YXJpZmYAZFQqkF1ZTu6trDwxCBmyCQlyhKI0MDAwMCByZXZlcnNpYmxlLXBoYXNlLWRpc2stb2JzdHJ1Y3Rpb24AFDfbcIPLaKHAEmlRDpqMuhzcxfc0MDAwMCByZXZpZXctcm91bmQtbmF2aWdhdGlvbgA8YUfUE7zLvJfO3kVs/TN8PIgoFzQwMDAwIHJldmlzaXQtbGVuZ3RoLXdpdG5lc3MAAncz3CBhoo9CvR9LoQ2hHVQv/ZY0MDAwMCByZXZpc2l0LW9uZS1yZXR1cm4tZ2FwAIWJZbbALuGlTqm317M2AmRsZbvhNDAwMDAgcmlkaW5nLXNoZWFyLXNhbmR3aWNoAOwkydip+dY0OKvoUw1rp/P75FHvNDAwMDAgcmlnaHQtdmVjdG9yLWNvbW11dGF0aXZlLXByb2R1Y3RzABDDsFjjtJXxF70zHJb452IjMG2gNDAwMDAgcmlnaHQtdmVjdG9yLWRpYWdvbmFsLWZyZWUtYmFzaXMAhUlqPbOmmEFsPDBr6OqBNC6kdm80MDAwMCByaWdodC12ZWN0b3ItZXh0ZW5zaW9uLWZpZWxkcwC5BCNTbLRxozzBeIutLovWkmBypzQwMDAwIHJpZ2h0LXZlY3Rvci1leHRlbnNpb24tcmVzaWR1ZQBxCFCs5KdpBDlIMu+4D/H6hQmbdDQwMDAwIHJpZ2h0LXZlY3Rvci1nZW5lcmFsLXRhcmdldAAXsjC3wiWO3Fhi4grpxzkFpaxUrjQwMDAwIHJpZ2h0LXZlY3Rvci1sb2NhbC1hbGwtcm9sZXMA0NScxB+OnMA+49tXYd/dsLaPvjU0MDAwMCByaWdodC12ZWN0b3ItbG9jYWwtcHJvZHVjdHMAPN2BrvMYuOKnTPHFDPtpyoyySwM0MDAwMCByaWdodC12ZWN0b3ItcG9seW5vbWlhbC1jb3N0AGymE5u9tbanDyDzVn7qcRQaqN9tNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmstb25lAAEurhXmFRH06krx5018CvHvAeAdNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmstdHdvALukD75C9Afpo6FpdyfEk/tT6zhkNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmtvbmUtcmVzaWR1ZQDf06trB0J/Fe+ysvDVzjgAg5mOCjQwMDAwIHJpZ2h0LXZlY3Rvci1zZW1pbG9jYWwAHwTlYXD9iOZMUuJSXaaS6fn5vTI0MDAwMCByaWdodC12ZWN0b3ItdGhyZWUtcm9sZS1wcm9kdWN0cwB88rP+2+Byk2qlkDjYkYBHLTQCuDQwMDAwIHJpZ2h0LXZlY3Rvci10d28tZmFjdG9yLWNyaXRlcmlvbgAt3j+8qzP0sXjhrwstSaTc3OwjiTQwMDAwIHJvb3QtcGFpci1maXJzdC1kcm9wLXNlZWQ0OAAbiOkLoDH4NCMA8EwoV/VruXZfTDQwMDAwIHJvb3Qtc3Rhci1pbnRlZ2VyLWNvdmVyLXNlZWQ0NgCPkNDNPs0if87zy/gEJ5SMFO7PJjQwMDAwIHJvb3QtdW5pdC1kZWNvZGVyLWxlbW1hcy1kcmF0ANnhR5T8tIkAHor8Tu9zxENAyM2dNDAwMDAgcm9vdC11bml0LWRlY29kZXItbGVtbWFzAPM8tkvdsZJ4GrII56kWJl92XE8GNDAwMDAgcm90YXRpbmctYWRkcmVzcy13YWxrANJCthQkdxOmSZ8UO9nBtjO3lxuwNDAwMDAgcm90YXRpbmctbm9ybWFsLWNsb3N1cmUA/2dvKdcNVQf80UzSBKqcHLc6UWc0MDAwMCByb3VuZGVkLWJvcnJvd2luZy1jb250cmFjdACcDtNf3VcCaH2/U8zIpQFQAd7DlTQwMDAwIHJvdW5kZWQtYm91bmRhcnktYmxvY2tzAIdiTuE5CPAnINW/cw5iLr84POD8NDAwMDAgcm91bmRlZC1sZWFmLWxhdHRpY2UtY2xvc3VyZQADZ7ZWqNllSf6nYyxReBMZ/dAZ4DQwMDAwIHJvdW5kZWQtcGhhc2UtcmVjb25zdHJ1Y3Rpb24ATM+6HtOMtnLJqm/DyaNjkihQar40MDAwMCByb3ctbGVkZ2VyLXJlYWRpbmdzAC4VZyooqGBL8Jg4y+rOxRsv10y7NDAwMDAgczMtZGlhZ29uYWwtcmFuay1zY3JlZW4AelAgwmdE2wXJd0TPSIXnRvteTWQ0MDAwMCBzMy1zY3JhdGNoLXRyYW5zcG9zaXRpb24tZ2FwAItw4gv/qcbO/AKnW6fjTBzE/JoMNDAwMDAgczMtc2VsZWN0ZWQtYWZmaW5lLWJvdW5kYXJ5AOhiuOr1ZYGcMqultHpm3ULq/sT7NDAwMDAgczMtc2hvcnRlc3Qtd29yZC1yaWdpZGl0eQC0Q9GgTfrL7JyV00IGR3c/uTqjwDQwMDAwIHMzLXN0YW5kYXJkLW91dHB1dC10cmFuc3BvcnQAy95qstRMOQkv/fqnT5nRPMp8smw0MDAwMCBzMy10aHJlZS1yb2xlLXh5eAChzVKLEl0jXPhq49geLarDFNby0zQwMDAwIHM0LWRvdWJsZS10cmFuc3Bvc2l0aW9uLXNlZWRiMjcwAP51mdEEsWmgnqBexzA7j0av33d0NDAwMDAgczQtbWl4ZWQtdHVwbGUtdGlnaHQtd29yZC1zZWFyY2gAgfhvuM+pijRE0+Q7WqsKyswRuuQ0MDAwMCBzNC1taXhlZC12NC1kb3VibGUtdHJhbnNwb3NpdGlvbi1zZWVkMGNkYmI0APVcASBe2HCc30XcUJV/PULbnoCJNDAwMDAgczQtbm9uY29tbXV0aW5nLXRocmVlY3ljbGUtcjQtc2VlZGEyN2IAg3Ui9rjWUoja6RywHEzRsW66RL40MDAwMCBzNC1zbGFjay13b3Jrc3BhY2UtYm91bmQA0TlHOHsPh3w8CM4hIgg8BvigWsI0MDAwMCBzNC1zdGFibGUtZm91ci1jYWxsACBuvzpPG7QNVbW6QtSa11ijOmO5NDAwMDAgczQtc3Vic3BhY2UtY3V0LWJvdW5kYXJ5AFP2H9qJ52avuO4lhSjPuF+b3iO4NDAwMDAgczQtdGlnaHQtd29yZC1zcGVjdGF0b3ItZWxpbWluYXRpb24AIIWLjJKjbSPYulzHrRtxm/A112c0MDAwMCBzNC10d28tcHJlbWl1bS1jdXQtZW52ZWxvcGUAMJ4ofnaPA5kIQWNaOgxiy5y74AM0MDAwMCBzNC10d28tcHJlbWl1bS1yZWdpc3RlcnMAkb/sRxVxv/22FV/vf8xnkwsbLSA0MDAwMCBzNC10d28tdGFyZ2V0LWN5Y2xlLXNlZWQ2ZTUyNQBo4RqezF2ciAaNQxha81p98Ej2pzQwMDAwIHM1LWludmVyc2UtZml2ZWN5Y2xlLXNlZWQ1MmJmMjExYwDxEhOr4mUxttoJw/sPQOfHIX4bYDQwMDAwIHNhdHVyYXRlZC1ib2R5LWJvcnJvd2luZwDjPf/pQkmcZCpLNzt3YxxHyAvv+DQwMDAwIHNjYWxhYmxlLWRpcnR5LWNvbm5lY3RvcnMA7WUDAbouFui0MDEdw1IPNm5Dp5Q0MDAwMCBzY2FsYXItYmxvY2stc2NodXItZGltZW5zaW9uALddffdmEfYT786ydWX5iUj2e8+sNDAwMDAgc2NhbGFyLWZ1c2VkLWR5YWRpYwAKZWuMUqfNfXWzl0WT4Nt1THioAjQwMDAwIHNjYWxhci1waXZvdC1zY2h1ci1kaW1lbnNpb24ADTkLikeH83mZH/9hcvNQ3MwE81I0MDAwMCBzY2FsYXItcmVvcmRlci0yMDI2MTAyMgD0mhqoMUX2TNREXTBvedOMCAFE4TQwMDAwIHNjYWxhci10cmFjZS1jb21wcmVzc2lvbgBAFHxiUlucEbmid0IJ+LPtP9bOATQwMDAwIHNjYWxlLWRlcGVuZGVudC1zZWVkLW1vbWVudC1hdWRpdAAzQg7ZRzGnZ1GE71CCJmLVXw1PQzQwMDAwIHNjYXR0ZXItYWxpYXMtbmF0aXZlLWF1ZGl0AIXCkZ7oh17PFW92H4MqivvJXHLaNDAwMDAgc2NhdHRlci1iYXNpcy1pZGVudGl0eQDtZHUV79oTVmm71y+pLXS0SGa9IjQwMDAwIHNjYXR0ZXItYm91bmRhcnktZGVjaXNpb24A+zdA5sCWpYzjM6sXNsVGVKL6XJE0MDAwMCBzY2F0dGVyLWR1cGxpY2F0ZS1ib3VuZGFyeQCdLy1ydi8+F3n07AbsR9GnOfm77DQwMDAwIHNjYXR0ZXItZXhwb3J0LXBhcml0eS1hdWRpdAD6W/VxLVxEzB0ijNViK7E4PahY+jQwMDAwIHNjYXR0ZXItb2RkLW5hdGl2ZS1hdWRpdAALVDfmiJdYhxnFkpGlJDwQbqYZaDQwMDAwIHNjYXR0ZXItb2RkLXN1Y2Nlc3NvcgBEiiqgy661Aj/qvGBV7RIrij8h8jQwMDAwIHNjYXR0ZXItcGFyaXR5LWNvbnRyYWN0LWF1ZGl0AHMcs2thP+cVHU5Cok2vkjlb0COMNDAwMDAgc2NodXItYmFuZHdpZHRoLWdhcAAoyWveiZsv2H9PGqohhRB7FSKidDQwMDAwIHNjaHVyLWJsb2NrLWNlbnRyYWwtbGF3AD6iPHPKytXlQQj9dZIpCAmXSFjRNDAwMDAgc2NodXItYm91bmRhcnktcmVzaWR1YWwASMOYlRl4OmP8y9C+iv7YHK72HrU0MDAwMCBzY2h1ci1jZW50cmFsLXNwZWN0cnVtALSQhDx2gKql58p1W7evLFza8smGNDAwMDAgc2NodXItY29tbXV0YXRvci1jcml0ZXJpb24A8fzT7bfrSPJ02opvzj7roV+ks740MDAwMCBzY2h1ci1oZWFkZXItY291bnQAZ1Ch+vlROcWdmHgKnyfMYx+rclw0MDAwMCBzY2h1ci1oZWFkZXIta2VybmVsLXNlY3RvcnMA9/AB42T8bJR5AAuIAQl4xC7V+SE0MDAwMCBzY2h1ci1pbnRlcnZhbC1iYW5kd2lkdGgA6Cv7f8TOXmJfqBVcLKY5ZBWFum80MDAwMCBzY2h1ci1pbnZhcmlhbnQtdHJhbnNpdGlvbnMAfLjN6DKd+2amfJkQie1Wo0lFAkk0MDAwMCBzY2h1ci1tYWpvcmFudC1jbG9zdXJlAEmBUt5wbykJdx7qVc+6MQCd7BY7NDAwMDAgc2NodXItbmlscG90ZW50LWV4dGVuc2lvbgAdDrebRXtXQBpUHyEa0SYW0OxfeDQwMDAwIHNjaHVyLXByZWZpeC1iYW5kd2lkdGgAJPuGrHmwJK5oDjla9anpBLN4+Qo0MDAwMCBzY2h1ci1wcm9qZWN0b3ItcmVmaW5lbWVudADcH5gnRBBYMVqBSL74YhZ52CZt1jQwMDAwIHNjaHVyLXJhbmstcGFpci1sYXcAZ6XFhbn8tyyW0SoOZ5GPg0Ma02U0MDAwMCBzY2h1ci1yZXNpZHVhbC1vcmJpdHMAY7EPNe6qK+rErunkfX/BTQTCpig0MDAwMCBzY2h1ci1zcGxpdC1pbmNpZGVuY2UA/Ps4u6OIzxZJo25V2O6yXPdncOM0MDAwMCBzY2h1ci13ZWlnaHQtY2FuY2VsbGF0aW9uACuQJ4Ixse3HqlBzGMXBa+GR39jHNDAwMDAgc2NodXItd2hvbGUtY2VudHJhbC1jbGFzcwC/5i72C1zRGoAbXkiqNkC/3pD6+zQwMDAwIHNlYWxlZC1zdHJpY3Qtcm9vdADybsy12yN03RcfQhncgA502aS0CDQwMDAwIHNlY29uZC1zdGFnZWQtNTQ0ADjtj1I4p++GPLlOJ1Whsf1gD9K9NDAwMDAgc2VlZDAzLWJpdC1waHlzaWNhbC1mYW1pbHkAD4W3pC29ApR0HvmjeavjrMA2Sc80MDAwMCBzZWVkMDUtYml0LXJlcm9sbC0yMDI2MTAxMwB9DSH0ZndYcTZvMndgm0aP17RUPTQwMDAwIHNlZWQxMC1iaXQtc3VwcGxpZXIAZotpu7buEWJNGMgPAHc1qsEWnn40MDAwMCBzZWVkMTgtcjQzOS1iNTA5LWluZGVwZW5kZW50LXJlcGxheQDlcKuZwK+9eX4f/jvlGvzjSaa07TQwMDAwIHNlZWQyOC1jb21wbGV4LXJlcm9sbC0yMDI2MTAxMwCy3ERR6Q8AwdoDZtrMgOO5Wojp3TQwMDAwIHNlZWQzOC1wMTA0LW9yYml0LXJlZ3VsYXJpdHktYXVkaXQAmIemtYa1ZyNzjcBUSYL6CDw+ULg0MDAwMCBzZWVkNDgtcDEyMC1vcnRob2dvbmFsLXNoYXJlZC10b3RhbACmWFKdciS2zMXp6CYEqEhuYOFLjjQwMDAwIHNlbGVjdGVkLWFkYXB0ZXItY2FsbGVyLWVudHJ5AHSNMI7/ER5LdYZN2sRYKd1agq+cNDAwMDAgc2VsZWN0ZWQtYWRhcHRlci1udW1lcmljYWwtbGlmZWN5Y2xlADSjKk1XMOCI9fI54Ngcgf543t08NDAwMDAgc2VsZWN0ZWQtYWRkLWNvbXBsZXRlLWJhY2tpbmcAE9kOD0pSX6ndJ9Zj6oXLPGXPXfQ0MDAwMCBzZWxlY3RlZC1hZGQtY291bnQtcGhhc2UtZW52ZWxvcGUAUR43V4TrdvCzqMvZv0dCfnBhOPw0MDAwMCBzZWxlY3RlZC1hZGQtY291bnRlci1iYWNraW5nAKd1RqZgn5UhtRmOCaQVpYV5Rb/aNDAwMDAgc2VsZWN0ZWQtYWRkLWpvaW50LWJhY2tpbmcAHZRQcsY097e7niNK5oQiLEbkgE40MDAwMCBzZWxlY3RlZC1iaW5hcnktY29udHJvbAAGyVSscyd+AlC5QbE6v8FlM0knjzQwMDAwIHNlbGVjdGVkLWJpbmRpbmctY292ZXJhZ2Utc2VlZGEzNDIAxiovfgFLPzncVuC1PHTyiXBpeg00MDAwMCBzZWxlY3RlZC1iaXQtYWJvcnQtcmVjb3ZlcnkA7fNdWBY0unI1zCenh6ExFOcx6L80MDAwMCBzZWxlY3RlZC1iaXQtYWRkLXJvdXRlLWludm9pY2Utc2VlZDk2ZTRjYwCcmHj5dpm2y/vPGdz0KqjTTV6lfjQwMDAwIHNlbGVjdGVkLWJpdC1iYWQtY2xhc3MtZmFsbGJhY2sAfV7hVs+F5Dti/Q8oRoiufi4jQw80MDAwMCBzZWxlY3RlZC1iaXQtY2FsbGJhY2stYWJvcnQAXc5eF2AIUx4UwTj18KCU0RMI2eU0MDAwMCBzZWxlY3RlZC1iaXQtY2VpbGluZy1mcmVlLXN0b2NrADQwvyM+8F5cR9VE3F1Njb4CqoFcNDAwMDAgc2VsZWN0ZWQtYml0LWNvbnRyb2xsZWQtc3RyZWFtcwCnI3uoI+p08qgCyLeWwdDL0jnW2TQwMDAwIHNlbGVjdGVkLWJpdC1mYWxsYmFjay1zdHJlYW1zAAclNUNbijzbliD8mLvbofZ3aLaANDAwMDAgc2VsZWN0ZWQtYml0LWZhc3QtcHJpbWl0aXZlcwBQ2sNlZM/TBEWk4iYn3eJNcAw4NDQwMDAwIHNlbGVjdGVkLWJpdC1ob3N0aW5nLWF1ZGl0ANAfJhI2DfAD+1+uG0y5fFwrzXXiNDAwMDAgc2VsZWN0ZWQtYml0LWxlYXNlLWVuZC1jYWxsAKUnUtfKXbpvMfWXZvLUd5Ijg1kmNDAwMDAgc2VsZWN0ZWQtYml0LWxvY2FsLXJpbmctc3dlZXBzABaLe3b13jf2rt0wf4apBEXaAYoANDAwMDAgc2VsZWN0ZWQtYml0LW1peGVkLWRlc2NyaXB0b3IA+VD5EMDEYP84RCXj9WSJLm8zObU0MDAwMCBzZWxlY3RlZC1iaXQtbm9kZQCdAZMkDjOLEW94eJkFpFnV8CfsGzQwMDAwIHNlbGVjdGVkLWJpdC1wYXJlbnQtcmVzZXJ2ZQCNo4CBGZpTFvZ3bck9r4GyVykipzQwMDAwIHNlbGVjdGVkLWJpdC1waHlzaWNhbC1jYWxsZXIAFdgNPvZ8G6n9WhUrMqJ6AUj22kU0MDAwMCBzZWxlY3RlZC1iaXQtcWFkaWMtcm91dGUAIu01G7aGdDZMPjHzQVFjkk3vCc80MDAwMCBzZWxlY3RlZC1iaXQtcmVjdXJzaXZlLWNhbGxlcgBMDeipqH82RX/B201kZjYdB5j8CjQwMDAwIHNlbGVjdGVkLWJpdC1yZWN1cnNpdmUtY2xvc3VyZQD/9OK2/DJJakmZ/sr5rt36dEn2rDQwMDAwIHNlbGVjdGVkLWJpdC1yZWdpc3Rlci1wYXJraW5nAPxqE3j+Cnh5DNm0YaTRqLbXZoCcNDAwMDAgc2VsZWN0ZWQtYml0LXN0YWdlLXN0b2NrLWJhbmQA8Ae/jZe06DVpvLeIoNo+AnrLsLs0MDAwMCBzZWxlY3RlZC1iaXQtc3RvY2stZml0AOKHcJalVClH0JTA1aS7k13xm22HNDAwMDAgc2VsZWN0ZWQtYml0LXN0cmVhbS1yb3V0ZXMA9RlNsdfMoFCl0JgF33V0DmKuaRM0MDAwMCBzZWxlY3RlZC1iaXQtd2VpZ2h0ZWQtY2hpbGQArrVNdeFczqa01zBHAlYkJrmidas0MDAwMCBzZWxlY3RlZC1ib2R5LWRlcHRoLWJvcnJvd2luZwCgD6nADK6rJq+Ll64VpIiVo2zTSTQwMDAwIHNlbGVjdGVkLWJvb3RzdHJhcC1yZXNlcnZlLWNvbXBvc2l0aW9uAADWOl6jTN6kJPQjpgsBVWXHhiX+NDAwMDAgc2VsZWN0ZWQtYm9vdHN0cmFwLXN0b2NrLWF1ZGl0ADAeBmt/8qZmTqv82c36a3EJKgsENDAwMDAgc2VsZWN0ZWQtYm9vdHN0cmFwLXVuaWZvcm0tdGltZQCSAHJDO6650RlV2tHmwlXy/uIoWjQwMDAwIHNlbGVjdGVkLWNhbGxiYWNrLXdvcmQtbGl2ZW5lc3MA5ljE81LemR4Plxo7I++hUm3EfxA0MDAwMCBzZWxlY3RlZC1jYWxsZXItY2FwYWNpdHktcHJlZml4AHFlV3FGMJ1MQ0plyuGJ8vTDmWynNDAwMDAgc2VsZWN0ZWQtY2VudHJlLWFkamFjZW50LXBhaXItc2VlZDAxZmNiMQDjQvPuMYilLMJ5AUqve1UkcmxBAjQwMDAwIHNlbGVjdGVkLWNlbnRyZS1icmlkZ2UtcHJvamVjdGlvbgCBcyh+W0mmKMkLiSD7+USQ/gczbzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jaHJvbm8tc291cmNlLWNlbnN1cwDhkfNF33rbJ3+gmZbcgA84Sbx+XzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jb21wb3NlZC1zb3VyY2UtcmFuawAXx51W3BWiK2ebcCuQKbogssNmcDQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jdXRyYW5rLXNlZWQ1MgDQXJsZ0P1UQirM94f+jHNdjM8XOTQwMDAwIHNlbGVjdGVkLWNlbnRyZS1lbmRwb2ludC1lcnJvcgBXCAi8A6oXvPMXwL+U9zgyBT/hhzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1uYXRpdmUtbGlmdAB/HnMxOYlu57Q5nt55R5cjLAhePDQwMDAwIHNlbGVjdGVkLWNlbnRyZS1xdWFydGVyLW5hdGl2ZQDgKDII3TT+JzVtKq1JVQmwhlaPmzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1zdHJlYW0tcmVhZG91dHMAmjaDvddVoArgO83XIf2bjXzPULc0MDAwMCBzZWxlY3RlZC1jaGlsZC1jYWxsZXItbGlmZXRpbWUAxPpSVgMxiz51bj0WZ4u+Xr3koPQ0MDAwMCBzZWxlY3RlZC1jaGlsZC1jb21wYWN0LXJldHVybgCrIVvlq/VSDHaF/UHyoa65hnl/8TQwMDAwIHNlbGVjdGVkLWNoaWxkLW51bWVyaWNhbC1saWZlY3ljbGUAg/Qlp7QsaB9VgFtFW/4dy0Wy3Wc0MDAwMCBzZWxlY3RlZC1jaGlsZC1zdHJlYW0tcmV0dXJuAFx29Vy/FmHSVlL5EhjOY4rnn9t1NDAwMDAgc2VsZWN0ZWQtY2ktYnJhbmNoLW9yZGVyAAHTCarCXHVQSglFnxVdOYM+MLkPNDAwMDAgc2VsZWN0ZWQtY29hcnNlLWRlcHRoLXN0b2NrAGcOXAkf3TOtLbA5pyznTH9w1E6NNDAwMDAgc2VsZWN0ZWQtY29lZmZpY2llbnQtY2FwYWNpdHktcHJlZml4AK/x8YcaAa2pCy/0nVDykeh5oNddNDAwMDAgc2VsZWN0ZWQtY29tcGF0aWJsZS1yb3ctcGFkZGluZwCwSyzCQrEhGNuDVSJYsfRG6uIpbjQwMDAwIHNlbGVjdGVkLWNvbXBpbGVyLXNvdXJjZS1icmlkZ2UApp+hXDFLiuuiOSr98/OFfQArm6c0MDAwMCBzZWxlY3RlZC1jb21waWxlci12aXNpdGF0aW9uLWF1ZGl0ADnTcRuN+NPSPbw0GIIdHNCwFSBDNDAwMDAgc2VsZWN0ZWQtY29tcGxldGUtcmVzaWR1YWwASkLwW7sBGzt7dNWt7VdNrYrW8xU0MDAwMCBzZWxlY3RlZC1jb21wbGV4LWNvbXBhY3QtYWRhcHRlcnMAPx3dgWHov3LA8RQBVKa0nMDeeTs0MDAwMCBzZWxlY3RlZC1jb21wbGV4LWhlaWdodC1sZWRnZXIAmHu6difCNa6UgkazikQ0hvy/UD00MDAwMCBzZWxlY3RlZC1jb21wbGV4LWxheWVyLWNsb3N1cmUATNHeSHMqEgnhBXGTFbLiurhmayc0MDAwMCBzZWxlY3RlZC1jb21wbGV4LXJvdy1jb2VmZmljaWVudAD5mqgZEzfj4xClmvl8omB3IPrFoTQwMDAwIHNlbGVjdGVkLWNvbXBsZXgtd2lkdGgtZW52ZWxvcGUAalkVgXmLpAc/bkZPxdYkbMgo97w0MDAwMCBzZWxlY3RlZC1jb25zZXJ2YXRpdmUtb3V0ZXIA7SJMupUdfDGYYFajVhwpUVoJOXw0MDAwMCBzZWxlY3RlZC1jb250aW51YXRpb24tYmFja2luZwCCPaoSTeINYpH95MrLk2mR5V7fyzQwMDAwIHNlbGVjdGVkLWNvbnRpbnVhdGlvbi1qb2ludC1tYXgAFGNDbPYK+Mt3+GrIBNdeBAo34yM0MDAwMCBzZWxlY3RlZC1jb250aW51YXRpb24tc3RvcmFnZQBhrSpXwydLqcya+98p41Gi/Y+ewjQwMDAwIHNlbGVjdGVkLWNvbnRyb2wtcmVxdWVzdC1tYXNzABErKsbjiEzda59EoqhWjZIJ1k+lNDAwMDAgc2VsZWN0ZWQtY29udHJvbC10YWJsZS1iaW5kaW5nAI0/06Eu+ki/Px/cR89S7mAu01YoNDAwMDAgc2VsZWN0ZWQtY29udHJvbC11bmlmb3JtaXR5ANRwTULANiVImRwEGCZaNg6HFA7wNDAwMDAgc2VsZWN0ZWQtY291cGxlZC1wYXVsaS1mZWVkYmFjawCrXl9Ay7gvjB9KTC48GsaSRFVKZjQwMDAwIHNlbGVjdGVkLWNvdmVyLWZyZXNoLWZpYmVycwDkcP7BCKxRhS0B8C4Qg+mRQvZeNDQwMDAwIHNlbGVjdGVkLWNyb3NzY2FsbC1yYW5rOC1jeWNsZQDhwVmo0qTmmDrIC2XoPVHRKkehZDQwMDAwIHNlbGVjdGVkLWRlcGVuZGVuY3ktaGVhZHMtYXVkaXQA7+kyXHjABaflbU8ER6dhUwIsrp00MDAwMCBzZWxlY3RlZC1kaXJlY3Rvcnktc3RvcmFnZS1yZXNlcnZlAOpmGShJ8KigWIeRSvLCT4nUKHlRNDAwMDAgc2VsZWN0ZWQtZGlydHktcmVhZGVyLXo0AD8rGTK9OCxBW8S4e4hqYuKrdtWzNDAwMDAgc2VsZWN0ZWQtZXh0ZW50LWNvdW50LWJhY2tpbmcASqkDv6MU3NKC0lR9GfA9ujux7Ac0MDAwMCBzZWxlY3RlZC1mYWxsYmFjay1sYXVyZW50LWF1ZGl0ADA6d+f0DO8CsTjQaaY4W4m8Cb0INDAwMDAgc2VsZWN0ZWQtZmFtaWx5LWNvdmVyYWdlLWJvdW5kYXJ5ADWaXxj2pBZftvJNeY+uVTdNkW3QNDAwMDAgc2VsZWN0ZWQtZmluYWwtY2xvc3VyZS1saW51eC1hdWRpdACY28r+EXNIzv2gSb2pkcop/EO5PzQwMDAwIHNlbGVjdGVkLWZpbmFsLXJlcGxheS1jbG9zdXJlAO/iGL6PXUOPnMFqTcLOKLfrigUENDAwMDAgc2VsZWN0ZWQtZmluYWwtc3RhZ2UtcG9ydGFiaWxpdHkA30XRfGIVx5/4uQh5pzh8oLiqkwA0MDAwMCBzZWxlY3RlZC1maXJzdC1wcmVmaXgAc+VQpFXOoBrjO9nrayKWkKX5cQw0MDAwMCBzZWxlY3RlZC1mb3JtLWNvbnN0cnVjdGlvbi1zdG9yYWdlAKQdB+Psa6egDqBmrBYIVfugg+aYNDAwMDAgc2VsZWN0ZWQtZ2VuZXJhdGVkLWlkZW50aXR5LWF1ZGl0AMwIRNVX5zcMREtuQgAqg1fKuMg7NDAwMDAgc2VsZWN0ZWQtaHBlLXRhaWwtZmF1bHQtYXRsYXMAWP1zUVOu8kJupf4AEkDd2YItKIE0MDAwMCBzZWxlY3RlZC1pbnZlbnRvcnktZmFpbC1jbG9zZWQABbge5CePC9hv102r5Egn+pSYOJk0MDAwMCBzZWxlY3RlZC1pbnZlbnRvcnktbmF0aXZlLXJlcGxheQDwHOsyD50x6zYoaRLgZoTzyRfeCjQwMDAwIHNlbGVjdGVkLWludm9jYXRpb24tZnJhbWVzABk/JkNDIwxxDcZsE6sq4+Ep1yNUNDAwMDAgc2VsZWN0ZWQtaW52b2ljZS1yZWZlcmVuY2UtcmViaW5kaW5nAC98guuds2vIWrweVG5T+silfJb5NDAwMDAgc2VsZWN0ZWQtaXRpbmVyYXJ5LWNvbXByZXNzaW9uAC9ESzvFOYg6vxu0Ko2kLsS8HKoGNDAwMDAgc2VsZWN0ZWQtam9pbmVkLWRpc3BhdGNoAMmCFOT4AUVmI54aW5psfkf7qfTyNDAwMDAgc2VsZWN0ZWQtazgtY2F0YWxvZ3VlLXNjb3BlALy58+u2XndpbGh8vmANH4+P3vGbNDAwMDAgc2VsZWN0ZWQtazgtY2hpbGQtcmFuay1ib3VuZAAXLshiG8il2e9/tfdncDhPba30zzQwMDAwIHNlbGVjdGVkLWs4LWVuZHBvaW50LWNvbnRyYWN0aW9ucwBDsqysOs6Hbu/BV8BBuFemyxRFATQwMDAwIHNlbGVjdGVkLWs4LWZyYW1lLWNlaWxpbmcAf8+Ap8gcTK2L7xK8eec+wHjsHdg0MDAwMCBzZWxlY3RlZC1rOC1vbWlzc2lvbi1vYnNlcnZhYmlsaXR5AJ5yCStGGmWg5t1UC9M59vQ4q5rONDAwMDAgc2VsZWN0ZWQtazgtc2lnbi1zZWVkMzgAr78FFKnVXp4AjxSDCXq/C763Xew0MDAwMCBzZWxlY3RlZC1rOC11bmlmb3JtLWZyYW1lLWF1ZGl0AG/vt64Bt7F/Ax8zA3A7RY3RUi1JNDAwMDAgc2VsZWN0ZWQtazgtdW5yZXN0cmljdGVkLWVuZHMAq95zK2Q/EYLAc9VLUAa3qOoK18M0MDAwMCBzZWxlY3RlZC1sYXlvdXQtbnVtZXJpY2FsLWxpZmV0aW1lACJtYhRUGa0jIeXFJOkfIAFZLQqFNDAwMDAgc2VsZWN0ZWQtbGNtLXN0b2NrLXdyYXBwZXItZml0AKjD58n8KuQF7+P+WzDWAaVdvFaDNDAwMDAgc2VsZWN0ZWQtbGl2ZS1yb3ctZGl2aXNvcgD6MGLdAO6xSLQZGbsJfRvv2HwVlTQwMDAwIHNlbGVjdGVkLW1vbm9taWFsLWNvb3JkaW5hdGUtcmVmaW5lbWVudAAtHtgZD2vCFqeMeC3I/iIlceTZIDQwMDAwIHNlbGVjdGVkLW5hdGl2ZS1wYXlsb2FkLWJhY2tpbmcASujCtCeJykchVAxQaHOBPHE2JZM0MDAwMCBzZWxlY3RlZC1uZXV0cmFsLXBhdGgtc2VlZDg5MwCqjXqleL931ZGc8oemDWWZ2UY8+TQwMDAwIHNlbGVjdGVkLW5vZGUtY291bnQtc3RvcmFnZQAbgNh7DycijjNN4vB5UfFxTe41nzQwMDAwIHNlbGVjdGVkLW5vZGUtbGl2ZS12b2x1bWUARucvuNCNSExYUdcbkofVQzKrJuI0MDAwMCBzZWxlY3RlZC1ub2RlLXN0b2NrLXJlZmluZW1lbnQA/7bcOmtNCZX+zg1diULDqsxJMhA0MDAwMCBzZWxlY3RlZC1udW1lcmljYWwtYXJlbmEtYmFja2luZwBvZzqFc+F+BhLE1FJTaJq5MWGfezQwMDAwIHNlbGVjdGVkLW9kZC1wcmltZS11bml0LXJvb3QAiEu5RLqVEseroJEdZJxepspQQg80MDAwMCBzZWxlY3RlZC1vbGQtbGVhZi1yZXNlcnZlAOd3fuSv3nLoF7p4gNXuvtWKzIjcNDAwMDAgc2VsZWN0ZWQtb3V0ZXItYm9ycm93aW5nLXdyYXBwZXIAkv+R1LbsKeilWlqP1gQfEcIKIE80MDAwMCBzZWxlY3RlZC1vd25lZC1xdWVyeS1wcml2YXRlLXN0cmVhbQAfZ9yt0BFkoxAHcO5jo/FY8IiJ7jQwMDAwIHNlbGVjdGVkLW93bmVyLWJvdW5kLXJlcGxheQD9XuOzrBPHA0cB4wtr7oJuJn6iTDQwMDAwIHNlbGVjdGVkLW93bmVybWFwLWJpbmRpbmctZ2FwAK2VYwhZ1Fxsu34x3k3pVTMeAgc0NDAwMDAgc2VsZWN0ZWQtcDEwNC1wb3J0LWFkYXB0ZXIAYG/8yO6g/YbfHeUJIhlE1qvU2ws0MDAwMCBzZWxlY3RlZC1wYWNrZXQtYmFja2luZy1lbnZlbG9wZQDQtHEGEZoOPrSa7JCKQWWWd0qaWTQwMDAwIHNlbGVjdGVkLXBhY2tldC1yZXRhaW5lZC1iYWNraW5nADfFAd7i+OWq0t3u7Sf1SR4/YJmrNDAwMDAgc2VsZWN0ZWQtcHJlZml4LWNvZWZmaWNpZW50LXNpdGUA0eLdQca1gTImnDAgb6GauZOH53k0MDAwMCBzZWxlY3RlZC1wcmVmbGlnaHQtcGF0aC1yZXVzZQBCT/BP4cf/K6cVysi6gNHo0THx8jQwMDAwIHNlbGVjdGVkLXByb29mLWJpbmRpbmcAJbLRHP0d5rTEczUfdL1navywzqs0MDAwMCBzZWxlY3RlZC1xdWFkcmF0aWMtcm9vdC1icmFja2V0cwCUM+VvqQA6Oz01eypqpT0UnkYtxzQwMDAwIHNlbGVjdGVkLXJhbmsyLWludGVydHdpbmVyANgVtt8XcWl9vRLmNCdoNFL7wdq4NDAwMDAgc2VsZWN0ZWQtcmVhZGVyLXByZWNvbmRpdGlvbi1jdXRzABbHsIcTjf5gKvjz2qxZRxIl8/k+NDAwMDAgc2VsZWN0ZWQtcmVjb3JkLXBhcnNlLWNhY2hlAFiqpZqcjc3EukojqaHxTyLUC8SbNDAwMDAgc2VsZWN0ZWQtcmVwbGF5LWZhc3RwYXRoAJbreG16bwTnIqKcLiKK/1k85f5fNDAwMDAgc2VsZWN0ZWQtcmVwbGF5LXRvb2xpbmctcmVjZWlwdAAjNqwpZugBAlYaM6IydcLMk51/nzQwMDAwIHNlbGVjdGVkLXJlc2lkdWFsLWxpdmUtdm9sdW1lAN1jWSv73qvmUdZR5AvJl8YxtKvmNDAwMDAgc2VsZWN0ZWQtcm91dGUtbGl2ZS12b2x1bWUA4WbgjTwCQvqEzuFdlQw7hECnR280MDAwMCBzZWxlY3RlZC1ydW50aW1lLWd1YXJkLXN0b2NrAGUl/CAiXWZT+D6Fh9O4wh+XPc/iNDAwMDAgc2VsZWN0ZWQtc2VnbWVudGVkLXBhdWxpLWZlZWRiYWNrAIlaoCW/DlHwxwJZ3QlD2J5oJN9cNDAwMDAgc2VsZWN0ZWQtc2lnbWEtY2hhcnQtYmluZGluZwBm38bRloOFXdSR/sl6lZvlljOORzQwMDAwIHNlbGVjdGVkLXNvdXJjZS1jb3ZlcmFnZS1hdWRpdAAmEn3lzG8oAlH5sv6g/2f1BcTz+DQwMDAwIHNlbGVjdGVkLXNvdXJjZS1wYWNrZXRzACH6fBcPt1UGJH+cDj1VrNsmWkKZNDAwMDAgc2VsZWN0ZWQtc3BhcnNlLWZlZWRiYWNrLXZvbHVtZQAeDyDZIUAl7SbEeGb1Jcm1Sve73DQwMDAwIHNlbGVjdGVkLXN0b2NrLWVudmVsb3BlLW03MwDwGY3mlW7md0eiZ9zI68TDwgDu1jQwMDAwIHNlbGVjdGVkLXN0b2NrLWxvZ3EtcGFyZW50ALEAuR8mnU7y13QgfptG6lVsQqVFNDAwMDAgc2VsZWN0ZWQtc3RvY2stbG9ncS1yaG8tam9pbnQAKCULHieDqIjQap5USKXqyqFIGXQ0MDAwMCBzZWxlY3RlZC1zdG9jay1yaG8tbGVkZ2VyAEG849Xtj3ikNRlSgkORjKTP2daDNDAwMDAgc2VsZWN0ZWQtc3RvY2stc2hhcGUtYS16ZXJvADa66Aq6DWvm1OsXU1aOst6q8mtjNDAwMDAgc2VsZWN0ZWQtc3RvY2stc2hhcnAtaW50ZWdlcgBgR3IfOlr02BjVMLTece53Yw6/kDQwMDAwIHNlbGVjdGVkLXN0cmVhbS1kaXJlY3RvcnktbnVtZXJpY2FsLWF1ZGl0ALwQnkzaHtRUfpj4SkCzNnnjQFrnNDAwMDAgc2VsZWN0ZWQtc3VwcGxpZXJzLWRlLWRpYWdub3N0aWMAbSnmaz6JPPgX+6Tsj1zhL85te4s0MDAwMCBzZWxlY3RlZC10MTYtcGF0dGVybi1kdWFsAB3/aeQkRqNyzGuVSpY/GpFeU5HTNDAwMDAgc2VsZWN0ZWQtdDE2LXRocmVlLXJvbGUtY3ljbGUtc2VlZGMzNzUAvhcTtLOpK6x24iq7oeXAfURfSGI0MDAwMCBzZWxlY3RlZC10b29tMy10eXBlZC1ibG9jawBl5w839GIIZLi/vU/C3kGfnFtBSzQwMDAwIHNlbGVjdGVkLXRydW5jYXRlZC1zb3VyY2UtZW52ZWxvcGUAdzUr8MWOo1E1gNJbt0/raTWUWVU0MDAwMCBzZWxlY3RlZC11bml0LWZhbWlseS1taW5pbWEAqK6M1+dZCTDTjMrDdYDACP+ozaE0MDAwMCBzZWxlY3RlZC11bml0LXJvb3QtdGFwZS1ib3VuZGFyeQD6cJXEoKQv9SmgEO0RdWalo71PozQwMDAwIHNlbGVjdGVkLXVuaXQtd2VpZ2h0LXJldmVyc2FsAK++jqcb7JdwGiJBV/DtsaKCrdR9NDAwMDAgc2VsZWN0ZWQtdmFsaWRhdGlvbi1udW1lcmljYWwtbGlmZXRpbWUAgO/mPcFx/oWX8dHFUGksofVklEA0MDAwMCBzZWxlY3RlZC13aW5kb3dzLXJvbGUtYWRhcHRlcgA5YUDDUQzZeEHNg5hfQxoO1mDTRTQwMDAwIHNlbGVjdGVkLXdvcmQtcmVqZWN0LWV4aGF1c3Rpb24AJCJxGH9PItfIkjNSTzbAyAkc4E40MDAwMCBzZWxlY3RlZC13b3JkLXNjcmF0Y2gAfVM/Wf9PDD2hhBOXdsoPsLwD2N00MDAwMCBzZWxlY3RlZC13cmFwcGVyLXNoYXJpbmcA5lMVNpEWkF0B5WkMg1pgCODP0AU0MDAwMCBzZWxlY3RlZDEwNDItbGluZWFnZS1yZXNvbHV0aW9uOTgAMVxpsoylDX0ZBr++oB4y8E9Cbjg0MDAwMCBzZWxlY3RlZDEwOTQtY2hhcnQtcGhhc2UAMXqlnScJunYZaJNtbfZDLSGX2Vo0MDAwMCBzZWxlY3RlZDEwOTQtZXh0ZW5kZWQtbGFiZWxzLXNlZWQ2NQCSIuq2wOEoY5Sf+fuX5RgiDAuN+zQwMDAwIHNlbGVjdGVkMTA5NC1pZGxlLXJlYXNzaWdubWVudABvg6f3z4XhH3CPZs335DMssF+i8jQwMDAwIHNlbGVjdGVkMTA5NC1wZW5kaW5nLWF4aXMtYXVkaXQAngI6c3l0/XX6vvWfbaourwQ/qY80MDAwMCBzZWxlY3RlZDEwOTQtcmVsZWFzZS1ncmlkANhmrfs2scrppbPjrHNC0Uf7hhGtNDAwMDAgc2VsZWN0ZWQxMDk0LXdpbmRvd3MtbWFuaWZlc3QtYXVkaXQA066sp1CwH822L3M2mCFhabXmaqw0MDAwMCBzZWxlY3RlZDEwOTQtd2luZG93cy1zdWNjZXNzb3IAkrZrhx44IWHUk27WxzE4hNyDm1I0MDAwMCBzZWxlY3RlZDEwOTQtd2lyZS1wcmVmaXgtYXVkaXQA8AcWUDaNRbv/omE28Jt7INhQxaw0MDAwMCBzZWxlY3RlZDYyNi1saW51eC1yZWNvbmNpbGlhdGlvbgAvHCTm4l0u0PIg/2mAXpD+Ew/1ATQwMDAwIHNlbGVjdGl2ZS1ib3Jyb3dpbmcta2FwcGEAjV5vBB9Y1rNqdisY4wEJZVeEXZw0MDAwMCBzZWxlY3RpdmUtYm9ycm93aW5nLW91dGVyLXJldHVuZQBRPYsBUYpwoc/i4N4P2PBUNRQ66TQwMDAwIHNlbGVjdGl2ZS1wMTEyLWNvZGVsaXZlcnkA52btsSiRmgYJNZGa426gv4fj8Ao0MDAwMCBzZWxlY3RpdmUtcXVvdGllbnQtcG9ydC1idWRnZXQAlWOoEDP1vHsoBPRF6apVFdZHNWs0MDAwMCBzZWxlY3RpdmUyNDktaW1wcm92ZW1lbnQtMjAyNjEwMTMAlL1WZgczltSjCdwa8Ec2+O+Yh340MDAwMCBzZWxlY3RpdmUyNDktcGFja2luZy0yMDI2MTAxMwB2LOLjFfjUzFxkABkLWMbt7SC8bzQwMDAwIHNlbGVjdG9yLWJhdGNoaW5nAG8Z93UeNdd8Sa2gwAAA+f2udEIlNDAwMDAgc2VtaWxpbmVhci1taXhlZC10YXJpZmYAxneEqUSTNGTk6iCyHP6oPvg6QMM0MDAwMCBzZXBhcmF0ZWQtYTItcHIzOTQ1LXRyYW5zZmVyAFiINWhR7XRe8BO/xLv5LeDXCN1hNDAwMDAgc2VwYXJhdGVkLXNvdXJjZS10ZWxlc2NvcGUAkKD7+gQr6qDRnJqdDlNUptV3AcI0MDAwMCBzZXNzaW9uLXJlY2VpcHQtMjAyNjEwMjIAZ5BJ2d+cRtHnFRBE+NIrgLMYSe00MDAwMCBzZXZlbi1jdWJlLWFmZmluZS1zZWVkNDMA25eoG87mV4m6S2Dh6FOYRLy3vVY0MDAwMCBzZXZlbi1xdWVyeS1yLWZsb29yAHyXST03b0xpN3gGd0lXl9HNvLZsNDAwMDAgc2V2ZW4tcXVlcnkteG9yLWZsb29yAOtke+kO8kmrBoZOvv1cNsJwTn/mNDAwMDAgc2V2ZW4tc291cmNlLTE2ZXZlbnQtY29ubmVjdG9yLXNlZWRhN2RlNWUAJEcwfOh7K/733Hb9FO8bTa5Uegs0MDAwMCBzZXZlbi1zb3VyY2UtMThldmVudC1jb25uZWN0b3IAEfvaxMG/slpEB+NmLqVFA9rIxVo0MDAwMCBzZXZlbi1zb3VyY2UtMThldmVudC1wcm9maWxlLWNlbnN1cwCCc6nv9qon7QHvrjPTixqHPZQY6TQwMDAwIHNldmVuLXNvdXJjZS1saWZ0LXJlcGxheQBVDgtf+mDV+nRqClyS7JHUVqEmGTQwMDAwIHNldmVuLXNvdXJjZS1yb290LW1pbmltdW0ASik7qkf9URSwAM2z3jjqSfYKoH80MDAwMCBzZXZlbi1zb3VyY2Utd2VpZ2h0MTIzLWNvbm5lY3Rvci1zZWVkN2RiMzBhAAnPqQit+Z5COt+vAO2VzSe9uyzPNDAwMDAgc2V2ZW4tc291cmNlLXdlaWdodDQtZXhhY3QtZmxvb3IAuOKUQy9qvUzpdNzVKZKALxgviUc0MDAwMCBzaGFyZWQtYWdncmVnYXRlLWZvbGxvd3VwAPpx8TDz4MxMJ7l0h+GueP3FTIUNNDAwMDAgc2hhcmVkLWNhcnJpZXItZGVjb2RlcgDNZz+Y7TltPoNlb0F7x2cSWSWvbDQwMDAwIHNoYXJlZC1jYXJyaWVyLWhvc3QA3la5USCChqfwvZmFfZ0Nqofw0A80MDAwMCBzaGFyZWQtY2VudGVyLWZlYXNpYmlsaXR5AGkRvWviYkvyO/OxarAjkci8WmGkNDAwMDAgc2hhcmVkLWNlbnRyZS1rMgAk92aQt5N/4L2r8IvTkYuPqr9D8DQwMDAwIHNoYXJlZC1jaGFydC1jZW50cmUtdmlzaXQAxJ27wJ/hA7+nG3C6NYrDedtUzFU0MDAwMCBzaGFyZWQtZGlydC13YWxrcy04cQDeHEY5FJuuhy3nQC+ueWOcoDugHTQwMDAwIHNoYXJlZC1keWFkaWMtc291cmNlACCSe6KKbjkjTXpgbq/D2mEkkMgZNDAwMDAgc2hhcmVkLWtlcm5lbC1wYWNraW5nAGZ0DEIxZlPmseFzqpcWoH4lzZxbNDAwMDAgc2hhcmVkLWtlcm5lbC1wYWlyLWNvbmNlbnRyYXRpb24AkbvHdeWoJaVa4f7Z8V6dpeo3u9Q0MDAwMCBzaGFyZWQta2VybmVsLXJlcGFja2luZwDh5J6moRGjrMjpWPRM3LEiVR+f3zQwMDAwIHNoYXJlZC1waGFzZS1yZXBhaXItcmFuawByCMJQDgzZMYKy3sUnNmi7lTruKTQwMDAwIHNoYXJlZC1wb2ludC1kaWdlc3QA9rL5CfiV5RIQOIj+kMm2mdqhyNY0MDAwMCBzaGFyZWQtcG9pbnQtZnJhbWUtY29udGFpbnMASskbRt1t9U7cWwn4yyvp6bmlg3o0MDAwMCBzaGFyZWQtcG9pbnQtaW5pdAA203ZfpwOfJmyFVmqo+FoBO/31UTQwMDAwIHNoYXJlZC1zdGFnZWQtaGVscGVyLWludGVyZmFjZQCsr2rE3oIbe5ZbDxa6f8msWGpzUTQwMDAwIHNoYXJwLWJhbmRlZC1yZXNvbHZlbnQAfX89f9HzFndsrnazizLt2G3a45s0MDAwMCBzaGFycC1pbnRlZ2VyLXNwbGl0LWNoYXJnZQCjj8Co2mEMjyCZN1gyXsi7HOFO1jQwMDAwIHNoZWFyLWVxdWl2YXJpYW50LXJvdW5kaW5nLXNlZWQ3MABodNNL5PVhDdcb2Q0gj2Q1RQbBujQwMDAwIHNoZWFyLW9yYml0LWludGVydmFsLWF1ZGl0AFRwh73JAJmJ1NctluAWgWgRVbcYNDAwMDAgc2hlYXItc3RydWN0dXJlLXBlcnR1cmJhdGlvbgBVVeqFzdl+t0g9tf6ddOog7VBFzjQwMDAwIHNoaWZ0ZWQtZ2F1c3NpYW4tY29uZGl0aW9uaW5nAPXAGSw1VFEEFLabod80MNsl9reSNDAwMDAgc2hvcnRlc3QtY2hhcnQtYXhpcy13b3JkcwCkAqCI10NbqY+mENKTOPrFixMQ0TQwMDAwIHNpZ25lZC1jaGFyYWN0ZXJpc3RpYy1zcGVjdHJ1bQAWBJZqIkfvOJqHWpEstBH3PQEGmTQwMDAwIHNpZ25lZC1jb25uZWN0b3Itb2JzdHJ1Y3Rpb24AEhBOE2joaJNBeyHhNm9LF0HQK0g0MDAwMCBzaWduZWQtY29ubmVjdG9yLXBvcnQtZnJvbnRpZXIAHg2np2jH2Opzs1/gkCTl0+M+56A0MDAwMCBzaWduZWQtY29ubmVjdG9yLXRyYW5zZmVyLW1pbmltdW0AxOnqd8ObA8pcz2gFsKKO6D1B5u80MDAwMCBzaWduZWQtZGVwZW5kZW50LWRlbGl2ZXJ5ANUH8Y0QEh2ABtt+kx8YD9QQF8AHNDAwMDAgc2lnbmVkLWR1cGxpY2F0aW9uLXRhcmlmZgB/2s7Q1ZDpRcFQV9pxqbx7Ia1jcTQwMDAwIHNpZ25lZC1keWFkaWMtc2NhbGluZwCZxTDISzAOMmOK/bxQoH0Dx+sNOzQwMDAwIHNpZ25lZC1leHRyYWN0aW9uLWF1ZGl0AMPqsr/vF+3wWEFnc/nbrC5jMtWENDAwMDAgc2lnbmVkLWdhdXNzLWNlbnN1cwCcU+LbrCe6cfUHQ+8h4Z4ByyLgwDQwMDAwIHNpZ25lZC1oYWRhbWFyZC1iYXRjaC1zZWVkNTUANUDlGVJqKeeuYOjyU/nDOoO3Bmw0MDAwMCBzaWduZWQtbWF0cml4LXByaWNlLWNsYXNzaWZpY2F0aW9uAAh1g55rbCB6BeZbh7KMrB9BIkzPNDAwMDAgc2lnbmVkLXBhdWxpLXBhcnRpYWwtZXh0ZW5zaW9uABHvp9EdEmHn75ncfrdFSihrIoEPNDAwMDAgc2lnbmVkLXByaW1lLWNvbm5lY3RvcgCoioQ5eyh3q0993UAvVgGqYsOXEzQwMDAwIHNpZ25lZC1yYW5rLXRyYW5zcG9ydAAAQuITt8OJLhzUcvBv/X8coL29DDQwMDAwIHNpZ25lZC1yb290LWs0ODAtYXVkaXQADAXArz4omeIQZi5GZWdNs1CH/SI0MDAwMCBzaWduZWQtcm9vdC1rNDgwAG2+dlMA4l2Qi00ht9VHFIhIKOPLNDAwMDAgc2lnbmVkLXJvdW5kaW5nLXRpZS1hdWRpdAC25C3r0umhTybHdP+glBTnDOjgGTQwMDAwIHNpZ25lZC1zaWduLXByaWNlLWVudmVsb3BlAOAZ/2LOP624us0l4mjGkvomjdS+NDAwMDAgc2lnbmVkLXNwYXJzZS1wcnVuaW5nAPcPr+NpGdeyomMP2HfaXNW+meiPNDAwMDAgc2ltcGxlLXNjYXR0ZXItYm91bmRhcnkAcEuVxpDsZKDx5VEM1KK6XeZhP3M0MDAwMCBzaW11bHRhbmVvdXMtZ2F0ZS1yb3VuZGluZwBykIeeoQGYNMmERakOPNwQEAV+iTQwMDAwIHNpbmdsZS1jb25uZWN0b3ItY2FwLW9ic3RydWN0aW9uLXNlZWQ2NTNiZDUAgLLxysSc2hQrOnQyXSNi1q8GBis0MDAwMCBzaW5nbGUtaW50ZXJzZWN0aW9uLXBhY2tpbmcAw49hMnQRRnYGidGgSHJaEPrrTvE0MDAwMCBzaW5nbGUtaW50ZXJzZWN0aW9uLXNwZWN0cnVtLWF1ZGl0AOETSbSPrGkY9kTIalhhJjTmiXlkNDAwMDAgc2luZ2xlLXJlZ2lzdGVyLWludGVydmFsLXRyYW5zcG9ydAA4ggIHdBCVIPtV/wwhwZ0TjWuz2DQwMDAwIHNpbmd1bGFyLXBvbHlub21pYWwtY29zdAAfJ02AS5BID8O38D6alt4MtbHynDQwMDAwIHNpbmd1bGFyLXByb2R1Y3QtdGhyZXNob2xkAPMKrBDH1SgqoWqAUoh0K7glhKqXNDAwMDAgc2luZ3VsYXItcmFuay10d28tcGF1bGkAnoHIrsksor4yax4XyktjKvG+k6c0MDAwMCBzaXgtbGFiZWwtY2VudHJhbC1mbG9vcgC35H48qjpTw4yFM+KoSHe6RT1AIzQwMDAwIHNpeC1vd25lci1yZXBhaXItY291bnQA6UftKQ+lhW8OPZtfGcQq6Q/ozmk0MDAwMCBzaXgtc291cmNlLWR1by1hZGQxNi1mbG9vcgAZIoQD/1/sE9LsHkQb8Mo7FChFnjQwMDAwIHNpeC10cmlvLWNvbXBsZXRlLXByb2ZpbGUtYXVkaXQAPD3/dTLAHSPbwk5FQHpZ4bscUzg0MDAwMCBzaXh0aC1yb290LWNvbm5lY3Rvci1zZWVkMjkASthJhsiNWWe8+BM5drBUtzXUAcA0MDAwMCBza2V3LWN1YmljLXJlc3BvbnNlLWdhdGVzAAY2bY0Tt+oEDbZpRjc90osDS4+1NDAwMDAgc2tpcC1jbG9uZXMAsrAMU+jJbCIOO0zRMSYFC0uYoy40MDAwMCBza2lwLXN0cmlwcwAdXgzAt89dj25cLgWi9j/mIadrdTQwMDAwIHNraXAtc3VmZml4AG7crUvPhKk5bHvRGmLEkCkoJ0RvNDAwMDAgc2wyZjMtYWxsLWRpcnR5LW1pbmltdW0A2MwEMdNxGRZVq9hEvhOXjHYEZb00MDAwMCBzbDJmMy1jb25qdWdhdGUtdHJpcGxlLXNlZWQ1OTJmAH6kxt31KTWkVhahZZ3LyS4uFZg6NDAwMDAgc2wyZjMtZGlydHktcm9sZS1mb3VyAHViO8MzEK6Z0DYB0kQKPHCW9LAeNDAwMDAgc2wyei1iaW5hcnktY2FycmllcgDfouC85QLh81ZGlNx/asajhgn+XDQwMDAwIHNsMnotY29tbXV0YXRpdmUtY2FsbGVyLW9ic3RydWN0aW9uAD0N+Gin8ZhFd0RPqtlJcY/NH7AaNDAwMDAgc2wyei1wYXlsb2FkLWVuY29kZXItc3RvcAB1UmPKcqKrpp3kwlprMt8xVGrAxTQwMDAwIHNsMnotcG93ZXItbGVuZ3RoALkwS1Kn9G7F4nIsQGqLOTBc5xuCNDAwMDAgc2wyei1zaGVhci1yZWN1cnJlbmNlLWluZXF1YWxpdHkAc6INQF4YUnDdNE0JkUPNBNR2Z7s0MDAwMCBzbDJ6LXRyYW5zdmVjdGlvbi1tb21lbnQAFG7l7rBYb+wPvr2rhzQ4KjtPm+U0MDAwMCBzbGlkaW5nLXdpbmRvdy1pbnZlcnNlAO6sM3fqf6SIAF3B4Bv/ueqNgUbBNDAwMDAgc21hbGwtY291cGxlZC1mcmFtZS1vcHRpbXVtAHE0vMUMTGdtlgD7fW/kZnTO1lbYNDAwMDAgc29sMTMzNy1jb250YWN0LWZyb250aWVyAAtJLZZ0Q/0f7qZn07X/5RV9R5ufNDAwMDAgc29sMTMzNy1nbG9iYWwtY2VudHJlLWN1dACUqthM8uQqT6q8iGOjc2IwTJFeWDQwMDAwIHNvdXJjZS1hcmNoaXZlcwBmCFEiOclibLILwa1YkRY7QX9DHjQwMDAwIHNvdXJjZS1ib3Jyb3ctY29vcmRpbmF0ZWQtY3Jvc3NvdmVyAB4AFRWnrZTYArKiOdsmaGAzgVBsNDAwMDAgc291cmNlLWNvZGUtY2hhcnQtb3JkZXIA49WhQJI/m16qFyma+EHyZklFcfA0MDAwMCBzb3VyY2UtZGlyZWN0b3J5LXNldHVwLWNvc3QAwUEqjNHLwCs7Y6kcPGvxLqdNDBU0MDAwMCBzb3VyY2UtcGFydG5lci1saWZldGltZXMAsdLKlpZ6xEcY6nLEqmmdU2YNurY0MDAwMCBzb3VyY2UtcGFydG5lci1yZXBhY2sAXKSkcvUtYpA2NfI2iLbaXYxZR9E0MDAwMCBzb3VyY2UtcGFydG5lci1yZXNpZHVhbC1leGNoYW5nZXMAxhRirQkCG5D287vR36r2OWohbog0MDAwMCBzb3VyY2UtcGVybXV0YXRpb24tYXVkaXQAaZawrJnv32daXoKuZ9EE3PG0E880MDAwMCBzb3VyY2UtcXVlcnktZmluaXRlLWZpZWxkLWF1ZGl0AM31krfZneWH4O2l4KI/GUT46b3LNDAwMDAgc291cmNlLXdpbmRvdy1pbmRleABst4MHDPqx0IZEVIRnNKZmB6AYiTQwMDAwIHNvdXJjZTUyNy1maXZlLXN0YWdlLWNyb3Nzb3ZlcgD+ZxQXWGBc1u+HyBnfKasnbu14yzQwMDAwIHNvdXJjZWNvZGUtY29tbXV0YW50AOhjPwNgMbY9XOJTNGCRYPKTxa0cNDAwMDAgc3BhY2UtY2FwcGVkLWRpcnR5LWVjaG8A08BFeFSrGLzlZgz2hxYwGeufIy40MDAwMCBzcGFuLWVudHJhbmNlLXdpZHRoALHwJ9gCVwxjBN66oeBvfGF1c6dMNDAwMDAgc3BhcnNlLWZ1c2lvbi1vcmJpdHMtcHJvZHVjdGlvbgBeQNnwhLrI38RAe4xnYHZbhWETLTQwMDAwIHNwYXJzZS1mdXNpb24tb3JiaXRzALVYvl1LJq9RP7pOD5e22rIpdg+dNDAwMDAgc3BhcnNlLXJlZHVuZGFudC1kZWNvZGVyAGzKHRQM8MMEFN/pQYcEct6eQXO2NDAwMDAgc3BkLWRpcnR5LWNpcmN1aXQtd2l0bmVzcwD+pXTZfcarv4hWXr7e+L0I4oIr7jQwMDAwIHNwZC1pbnZlcnNlLWNpcmN1aXQtd2l0bmVzcwA/ORJC+5pm7xaP4HlHO+MQoM2SiTQwMDAwIHNwbGl0LWJ1ZGdldC1zdXJ2aXZvcnMAG43nvibeAVlwG81swacBJe1dBWg0MDAwMCBzcGxpdC1jZW50cmVzLWdsb2JhbACSretCyapteQc1hp4yGh59ue5ASDQwMDAwIHNwbGl0LW1pbm1heC1hdWRpdC1zZWVkNjMAPk4MxiWcPeWOJr0HlcmhrzlL1vw0MDAwMCBzcGxpdC1yYWRpY2FsLXBlbmNpbACrePi0IUDzZNRSGP9MXvvz+onExzQwMDAwIHNwbGl0LXNraXAAKJmjCScJUdNkgCX7fkFzp4ZryeE0MDAwMCBzcXVhcmUtemVyby1pZGVtcG90ZW50LWNvbXBpbGVyACzvvQG9qEsH51dnU7grXzjk6P9kNDAwMDAgc3F1YXJlLXplcm8tcmFkaWNhbC1yZWFjaGFiaWxpdHkALAftNifReK62Phrw/P4adSrKSKY0MDAwMCBzcXVhcmUtemVyby10cmlwbGUtZmFub3V0AGbGcakx8QtppHxUt+w1zXCpJ7DFNDAwMDAgc3RhYmlsaXplZC1kaXJ0eS1jaGFydABSDM6MlaTXsrV25GNOaUj6EV9zQTQwMDAwIHN0YWdlLXBhaXItcGVyZm9ybWFuY2UAM32Xr4SQKGeCnBvtAAoX/DkUnbU0MDAwMCBzdGFnZS1yYW5rLXJpZ2lkaXR5NDEA6H9ZA/hdZ7vJhUhsUuYOibGKXp40MDAwMCBzdGFnZS16ZXJvLWNvbW11dGF0aW9uLWF1ZGl0AIXyxXtBO8fFF0l1it6YlefWzohINDAwMDAgc3RhZ2UtemVyby1mb3JjZWQtdHJhbnNsYXRpb24AWwr+b+Nd4yJnW3vaK2+zKFYD8vk0MDAwMCBzdGFnZTItYnJlYWtldmVuADjHtagQaBPpzwdpUQQiCxxJI6RTNDAwMDAgc3RhZ2UzLXN0b2NrLW1hcmdpbgDaMcUDFBtiBL6kIUAa+n87GukmNzQwMDAwIHN0YWdlZC02NDQtNjYwLWluZGVwZW5kZW50LWF1ZGl0ACMCbxhaWnCSecFT8lS2mseWj6m5NDAwMDAgc3RhZ2VkLTY0NC02NjAtbmF0aXZlLWJpbmRpbmctYXVkaXQAwJ17SOb0lvcFEWLz9iU5vTn5+Cg0MDAwMCBzdGFnZWQtY29tcGVuc2F0aW9uLWZvcmVzdHMAcVkQgaxnTOf4/zhU0BCldfyPhVc0MDAwMCBzdGFnZWQtZG9ub3ItcmVsZWFzZQD9ICXvU9tlChvsmxhp6xQjrh/oJDQwMDAwIHN0YWdlZC1lbnRyeS1jZW5zdXMtMzczNAABpP4vPioWn2xXHAylhbXEycDX9TQwMDAwIHN0YWdlZC1lbnRyeS1yZWxlYXNlLWF1ZGl0AA7dbEXQ/JZf6foWnSZzlwnWiNNJNDAwMDAgc3RhZ2VkLWZvdXJ0aC1jZWlsaW5nLWVxdWl2YWxlbmNlAAhajwdh7bMoE3GT7WvGKwSOoCNSNDAwMDAgc3RhZ2VkLWZvdXJ0aC1taXh0dXJlLWNlaWxpbmcAfT61Mk2fyRHaeTPN/8iT617ZqYU0MDAwMCBzdGFnZWQtcGFpci1mcmVzaC1ib290c3RyYXAtcmVwbGF5AM5eGiAZjVm5a+4FMoqfxbwn9sFUNDAwMDAgc3RhZ2VkLXdpZHRoLXQ0ODgAmhLAzWheq964NiEBUsb9fi1i0kI0MDAwMCBzdGFnZWQ1NDQtYTE4NTgtY29udHJhY3Rpb24tYXVkaXQAAc3go0nTGhMJrsAhpXh0ZHtr1Hk0MDAwMCBzdGFnZWQ1NDQtYTItY29tcG9zaXRpb24tYXVkaXQASRue31VaC28BVrMiFub6xYssnNI0MDAwMCBzdGFnZWQ1NDQtYTItY29uZS1jb21wb3NpdGlvbgB5AMUscRyYKHXMFnvtiTGdWST+uTQwMDAwIHN0YWdlZDU0NC1hMi1ncmFwaC1yZXdyaXRlAB2cVgmdbxO7lztFPNAHgyI+MGhaNDAwMDAgc3RhZ2VkNTQ0LWNlcnRpZmllZC1lbmRwb2ludABjy5GeTqaL7gVgCHFSEBglu6NIljQwMDAwIHN0YWdlZDU0NC1jbG9jay1jZWlsaW5nAOhnt28RRi+Kc9ZXqE5dHer+ALF+NDAwMDAgc3RhZ2VkNTQ0LWV4YWN0LXJlc2lkdWUtbGlmZXRpbWUA2mgoEunwFcRolYAWqLcxlEUAb1M0MDAwMCBzdGFnZWQ1NDQtaGVscGVyNjAwLXNpZ24tY29sdW1ucwAyk4Kb4DEV6FiJlAeU+W4m5WLGkTQwMDAwIHN0YWdlZDU0NC1pbnRlcm5hbC1lcnJvci10cmFuc2ZlcgBrjmVJlFvIyCat+DsDSIcafISO3DQwMDAwIHN0YWdlZDU0NC1qb2ludC1jaGlsZC1yYW5rLWludGVyZmFjZQAMcTYRLR4xVUMUEYAGXSuhQQj+8TQwMDAwIHN0YWdlZDU0NC1qb2ludC1wcmljZS1yZWdpb24AmnG9f+Ev4JxbS9TqIOnfjY2YeHM0MDAwMCBzdGFnZWQ1NDQtbG9jYWwtdHdvLWFkZAAkddEaSoIl7noY7n/pY8bPocbYOzQwMDAwIHN0YWdlZDU0NC1sb3NpbmctZmlyc3QtZDIA80GEDdOEl55TMyzzmVaBV3nGnAE0MDAwMCBzdGFnZWQ1NDQtbWl4ZWQtZm91cnRoLWVudHJ5AC0k3XbfUMDph5d/cl0FA5l0rkrqNDAwMDAgc3RhZ2VkNTQ0LW1peGVkLWlkbGUtcmViaW5kAHly/B+uhm8ckp+AGgFDa0yK/GNYNDAwMDAgc3RhZ2VkNTQ0LW1vdmVkLWFkZC1wYWlyAJ72BjPy+6T2BTFN3f5RgR21jeosNDAwMDAgc3RhZ2VkNTQ0LW5hdGl2ZS1xdWFkcmF0aWMtYXVkaXQAE2v3NzDJu8QAFor6nakvLl7Pu3g0MDAwMCBzdGFnZWQ1NDQtbmV1dHJhbC1maXhlZC1kMgA8Tt/eUDEri9wWYYA+SQJ05PywWzQwMDAwIHN0YWdlZDU0NC1uZXV0cmFsLXR3by1lZGl0ADGn66OD/ad+vY5qtD5up5fUYmK5NDAwMDAgc3RhZ2VkNTQ0LXBhaWQtbmF0aXZlLWZ1c2lvbgDk2OGIZMDr4J7UIIsvY113I1v3xDQwMDAwIHN0YWdlZDU0NC1wb29sZWQtY2VpbGluZy1maWxsACkiTQeDoXq0JmyCOfhuNf6rOLxNNDAwMDAgc3RhZ2VkNTQ0LXByb2R1Y2VyLXJldHVybgAO0XPhTqFTrO6D21VQypEW+wy6EDQwMDAwIHN0YWdlZDU0NC1yNDM3LWFkbWlzc2lvbi1hdWRpdADmRM+taFT1oVOSu7+BNcKLRonzITQwMDAwIHN0YWdlZDU0NC1yZWZpbmVkLWVuZHBvaW50AFsDhVS2svea1PGJ2AomGNtt68YXNDAwMDAgc3RhZ2VkNTQ0LXNjYWxhci1pbnRlcmlvci1yZWZpdACIAfeuVC33hR/SLBqiBDvR+s36XjQwMDAwIHN0YWdlZDU0NC1zZXBhcmF0ZWQtYTIAtUpZRGOCA/aYgcEu9RZwH+nCMzI0MDAwMCBzdGFnZWQ1NDQtc3RhdGlvbmFyeS1wYWlycwC0BZtJpVOQoF6USZLciiGekDi+JDQwMDAwIHN0YWdlZDU0NC10Mzg1AGcQTACTEQRca3ERWQGwQvVbov3BNDAwMDAgc3RhZ2VkNTQ0LXQ0ODgACf6uTjh7EyeYNmhAyZtCSKUcvTI0MDAwMCBzdGFnZWQ1NDQtdGVybWluYWwtZXh0ZW5zaW9uLWJ1ZGdldACe24TCgns0AJ8lftyZFDrLk9OC5DQwMDAwIHN0YWdlZDU0NC10ZXJtaW5hbC1nYXAtZmlsbABufgup0uoUvoVq11SWLiLAd2h7xjQwMDAwIHN0YWdlZDU0NC10ZXJtaW5hbC1vd25lci1icmlkZ2UtYXVkaXQAyJi/HFI52vzkeNTY/XI/fXkf+Gg0MDAwMCBzdGFnZWQ1NDQtdHJpcGxlLWVudHJ5LWZpbGwAQZAGdz0RgN3qJVCb9p4q1vBX/3M0MDAwMCBzdGFnZWQ1NDQtdHdvLWFkZC1yZWR1Y3Rpb24tcmV2aWV3AGxtAeKKMhmLfzm9EBS2Jr+UFlUDNDAwMDAgc3RhZ2VkNTQ0LXR3by1uZWlnaGJvdXItaW52b2ljZQCxB0GAXI6Yfd8ZrG6Fc2lzbfu42zQwMDAwIHN0YWdlZDU0NC13aWR0aC1sZXZlci1zY3JlZW4AajxV36BO59dmDxWUH4RPUbasxmc0MDAwMCBzdGFnZ2VyZWQtc2luZ2xlLW93bmVyLW9ic3RydWN0aW9uABJ8P7Ukwv7NY8w3quuPj2neVFbQNDAwMDAgc3RhbmRhbG9uZS1lbGVtZW50YXJ5LWNydC1yYXcAUl5yIZG5M8CCxI9uL1uD9RQH+js0MDAwMCBzdGF0aWM0NC1wYWNraW5nLWNlaWxpbmctdmFsaWRhdGlvbgBdkG0Q5QJMuYTK/+8xMo4ZJH0vujQwMDAwIHN0YXRpYzQ0LXBhY2tpbmctY2VpbGluZwClo2yGgBxadBUueHP5QnnyzfAYUDQwMDAwIHN0YXRpYzQ0LXI0ODAtY29tcG9zaXRpb24AEz5z+B2HKNwo7yz/GO+Oe832Rv40MDAwMCBzdGF0aWM0NC1zZWxlY3RpdmUtdmFsaWRhdGlvbgD/oAZMxvM9PbmMnGf0BsZ+SE+WFzQwMDAwIHN0YXRpYzQ0LXNlbGVjdGl2ZQAVa58KRmKy/RvuqfxuL0sm0DAeOjQwMDAwIHN0b2NrLWNvZWZmaWNpZW50LWFic2VudABKN2yKwbsRlJU5tNkBssqhi+cyUDQwMDAwIHN0b2NrLWNvZWZmaWNpZW50LW51bGxzAOjTm3WWzsIONDZ8tEpncV187iToNDAwMDAgc3RvY2stbWFyZ2luLWNoYWluAJvt3Me7EV/yAI+644CZjNGHCKW0NDAwMDAgc3RvY2stbWFyZ2luLXRpZW91dC1pbmRlcGVuZGVudABsjRkP6Q9xe7/NkOeQ+n3tpDMxADQwMDAwIHN0b2NrLXJoby1sZWRnZXIAmVh6pWVXQA36rg7YpGLyRKE1IS80MDAwMCBzdG9jay1yb3V0aW5nLWZhY3RvcgCPMBWBo22/RjK9VbrUMjwksQI1gDQwMDAwIHN0b2NrLXNhdmluZy1m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ZgAFDTNE/9Wj95hqQmmyASnOQixiKzQwMDAwIHN5bXBsZWN0aWMtZGVmaWNpZW5jeS10d28tc3BlY3RyYWwA67ysHruJ3kkTpilr2vw3WxgZ0FI0MDAwMCBzeW50aGV0aWMtYWxsc2l6ZS1pZGVudGl0eQCXndO6TKGnHrLPRTFhNoIRvygCPDQwMDAwIHN5bnRoZXRpYy1sYXlvdXQtaW5kZXBlbmRlbnQAmghPGHJ868fpY+6AkWy7TDQRPro0MDAwMCBzeW50aGV0aWMtbW9ub21pYWwtcGFja2V0cwDgTMFbvEOaPtZ+eMD/dcKLmehLCjQwMDAwIHN5bnRoZXRpYy10d2lkZGxlLWNpcmN1aXQAMWLGtY8nE43ZEb4vbgeIu3MOzrc0MDAwMCBzeW50aGV0aWMtdHdpZGRsZS10YXBlcwBKezD+53Z46Zj6+D3oHTbg8ZwYvjQwMDAwIHQxNDgtY2Fycmllci1za2lwcwAzIeRr37e6miEkyx9Vfj3T2beCbjQwMDAwIHQxNi1hdWRpdC1tdXRhbnQtY292ZXJhZ2UA8vul6yGRXPmWjM3ixH82PUjdEMU0MDAwMCB0MTYtYnVmZmVyLWNvbmNlbnRyYXRpb24A/UZro/Gq0iU8iFoShCB8BCpTg740MDAwMCB0MTYtYnVmZmVyLXRyYW5zcG9ydC1jdXQAeuptuWRIfcZnvOF4so64dUAJOLs0MDAwMCB0MTYtY29tcG9zZWQtY3ljbGVzAOsw2KtK24tyhPsZqh4n0lyif2lhNDAwMDAgdDE2LWNvbmNhdml0eS1hdWRpdDYxAINNOhomx4akgCtCaQlosCyJ6DYpNDAwMDAgdDE2LWNyb3NzLWNhbGwtY3ljbGUtcGFja2luZy1pbXByb3ZlbWVudAClRA6QrxQ6Zb0kXeP1gAoG1lTFojQwMDAwIHQxNi1kaXJlY3QtY3ljbGUtb2JzdHJ1Y3Rpb24AY8/efEU+2qKzWukl5xsvY7rhT4I0MDAwMCB0MTYtZGlzdGluY3QtY2FsbC1hdHRhaW5tZW50ABLbZ27hubd70jMDacfearXUd7FfNDAwMDAgdDE2LWludGVnZXItcGhhc2UAQYCxwCmZgA73auGqNhMC/LM6st00MDAwMCB0MTYtaW50ZWdlci1yZXNpZHVlLW9wdGltdW0AAFMrO9DjO744ujeVc3OavLh2wvo0MDAwMCB0MTYtaW50ZWdlci11bmlmb3JtABhS6vMUWFk3qL9O7KhqKDFHp6raNDAwMDAgdDE2LWludm9pY2UtYm91bmRhcnktYXVkaXQARXmQOKKkU8cr0kX6RDoXrB0Pm5I0MDAwMCB0MTYtaW52b2ljZS1yZWFkLWNhY2hlAB5s4eXFgL1dEhBOdU5nJtiQhEcTNDAwMDAgdDE2LWpvaW50LXdpZHRoLXJlYWxpemF0aW9uLWN1dHMAwoRnZ2lsKf+fTDzwLpCwAWxHZDk0MDAwMCB0MTYtbW9tZW50LW9yZGVyLWF1ZGl0AKZ30D7pUDaAT5LyX5td5p3hSq0vNDAwMDAgdDE2LW5ldXRyYWwtdW5sb2NrABheix+WgIYVuCoxs0HTZPrt0bV/NDAwMDAgdDE2LW5vbnJlY3Rhbmd1bGFyLXJlYWxpemF0aW9uLWN1dACbwkPVMpifnz/mg1GaKJkmVlB3jDQwMDAwIHQxNi1vd25lci1hdWRpdC1zZWVkNjcAucbSX2vmTuYN6Z/eKZTw/w7l6yE0MDAwMCB0MTYtcG9zdC11bmxvY2stY3ljbGUA2rSE5PoZGc53T41fCej1XzcBslI0MDAwMCB0MTYtcmFuazctcHJvdmlkZXItY29tcG9zaXRpb24AW5bO2RPsCnA/43jyoWnHbM6CjpQ0MDAwMCB0MTYtcmVvcmRlcmVkLWF1Z21lbnRpbmctY2hhaW4AFXUHUlIJeQ87r86KEzQMuBXbtXU0MDAwMCB0MTYtcmVwZWF0ZWQtYXVnbWVudGF0aW9ucwBjMuvqDuik/Fk3ZulvQEag6qNmYzQwMDAwIHQxNi1zaGFycC1wcm9maWxlLWFkbWlzc2lvbgDTouRew7ECSwIf1ZmCRp24sOH2sDQwMDAwIHQxNi10ZW4taGVscGVyLXJlcGFjawCyd+Isxaq/HP+FGZwRWWHcLy6dVjQwMDAwIHQxNi10aHJlZS1oZWxwZXItY3ljbGUAjl1tKtIo+oRjVULGN4LK42V0SYA0MDAwMCB0MTYtdHdvLXJvbGUtbW9tZW50LXN3YXAAMFjwlo7uYuBLFb7bnEb8DQ1Io2M0MDAwMCB0MTYtdW5pcXVlLWNyb3NzaW5ncwAZr0A6OnfuYXYevZgIgKZ0jUMOIjQwMDAwIHQxNi13aW5kb3ctY2FwANNIaBoVvVwP74pMmCj70Ff0+7rWNDAwMDAgdDE4NS1kaXJ0eS1lbnRyeS1mcmFtZS1zY3JlZW5zAG0u2j8QrXJ6Hutq3GRWHHrDyiX8NDAwMDAgdDE4NS1pbnRlZ3JhbC1vcHRpbWFsLWZhY2UA6s8ySiS1LeiU+zu4Qv6128ulOH40MDAwMCB0MTg1LXByZWNpc2lvbi1yZXBsYXkAmrBzounjX+Fdl0Ql+lavIWegVDk0MDAwMCB0MjEtYmlub21pYWwtYXVkaXQAN9WS43X0soKJR8ICmOsLYWT9UUk0MDAwMCB0MjEtaW50ZXJmYWNlLWJ1ZGdldAAxg6P7WWNsoZJI4EPxeuRWfFUGmDQwMDAwIHQyNDgtZGlydGVudHJ5LXJlc2lkdWUAtuzc3ECc6lZOq/lV8Qe8yrktmrg0MDAwMCB0MjktY2FwYWNpdHktYXVkaXQAEzef7T8Wh0fdkbD8cKNF8qtJDMU0MDAwMCB0MjktY2FwYWNpdHktcHJvamVjdGlvbi1zcGVjdHJ1bQADhmwoNY/CglougLG5OqucaksDkTQwMDAwIHQyOS1qb2ludC1iaW4tc3BlY3RydW0AC6sWeFAE+43ktT3yLol2oo5jyB80MDAwMCB0MzYwLWxvY2FsLXJld3JpdGUtY2Vuc3VzAAeU/EKttpo7T0k8GrHgTog/t2XrNDAwMDAgdDM2MC1yb2xlLWdhcADWG7evzko5BEZju1A6zboBSY2e9zQwMDAwIHQzNy1iaW5vbWlhbC1lbmRwb2ludC1hdWRpdC1zZWVkNzgArtiA0LaE/kMetmeoz1cU2SkBkJY0MDAwMCB0MzctYm9vdHN0cmFwLWRlcHRoLXNlZWQ2MABP5OxRx4xKTJIxWB98sqgDRa3JVjQwMDAwIHQzNy1lbmRwb2ludHMtaW5kZXBlbmRlbnQA3hQxZmSZR0ZiZocjxeesgd3hwxU0MDAwMCB0MzctaW50ZWdlci1zbGFjay1hdWRpdAD3LzrTJGVbJPOpGXrEIu0KPE2GOTQwMDAwIHQzNy1pbnRlZ3JhbGl0eS1hdWRpdABhLabuaVhZhxZ79ykLR1hqYzmiVDQwMDAwIHQzNy1sb2ctY292ZXJhZ2Utc2VlZDg2AM7Nxf1oIGchhzupFP/mtkfhj5VHNDAwMDAgdDM3LXJhdGlvbmFsLXJlZmluZW1lbnQAIbHpQy6VZusOidPz6ppqYaAT9KE0MDAwMCB0MzctcmVjZWlwdC1yb2xlLWJpbmRpbmcAHQjKUMW8N2Ot7IP1lVXqkW8pddw0MDAwMCB0MzctcmVzdG9yYXRpb24tZGVmZXJyYWwA8JalbQn5p3p1VGzFgs3VzVYlEuQ0MDAwMCB0Mzctc2xpY2UtYml0bWFwcwCN8V8B4TlOGEIxoCks/JhFtqf2UTQwMDAwIHQzNy1zdXBwb3J0LWF1ZGl0LXNlZWQ2NgCYlm3RfaMQYGUcCBu9hx8SWmTREzQwMDAwIHQzNy1zdXBwb3J0LWludGVydmFsAO3ztC4f5T0iAlKaHQ+yQKTMihZ5NDAwMDAgdDM4NS1yNDM3LWNvcHktYXVkaXQASAg70/M+X/7T3xcfkMjjOGMM5hc0MDAwMCB0NDUwLXJlcGxpY2EtY291bnQAS+RiXJHEhwY9+stN/dj8Wp7iJA00MDAwMCB0NDg4LWF0dGFpbnMtcmV0aW1lZC1wYWNraW5nLWNhcAB57uQ0bswGRoUUx4ER6863BSdSETQwMDAwIHQ0ODgtY29tcG9zaXRpb24tYXJpdGhtZXRpYy1hdWRpdADe0A9CbnE5GHEeqBTYU13Z28iUEDQwMDAwIHQ0ODgtaW5kZXBlbmRlbnQtYXVkaXQAI2637QRBBm4QpjiFXyGrJn4eKlM0MDAwMCB0NDg4LW1vbWVudC1zdHJhZGRsZQBr0YUegmNDwSAnc9AwgYUfHzByVjQwMDAwIHQ0ODgtb3duZXJzaGlwLWludm9pY2UA3cudDBfZ6QphsX4apM1a3soNGS00MDAwMCB0NzQtMjMyMi1tb3ZlLXByaWNlcwBiKmA2PXQkMGvVHKKss/kRVTjedzQwMDAwIHQ3NC0yNDM1LWZpbGwtaW5kZXBlbmRlbnQtY2hlY2sAV7A7VORyx9VawJV5C1nZ5ZRxVm40MDAwMCB0NzQtMjQzNS1vcHRpbWFsLW93bmVyLW1hcABS62FertSvAf22Tj9OS1Cm+QXg/jQwMDAwIHQ3NC0yNTMwLXNvdXJjZS1wYXJ0bmVyLWF1ZGl0APGCCz/euOSEITNs0FRVjZfvhM0yNDAwMDAgdDc0LTI3NTEtam9pbnQtdHdlbHZlLWF1ZGl0ADy5j3pTDhwdw486V1S8c1rCplw3NDAwMDAgdDc0LTMwMTUtcmVzdG9yZS1lZGl0LWF1ZGl0AOBr1i02kvdIiDhwagwTc762esLCNDAwMDAgdDc0LTgwYWxpYXMtb3duZXItZmlsbAA7goBBoXfCbred+UW97hPomSFpRTQwMDAwIHQ3NC1hbnRpY2lwYXRvcnktbmF0aXZlLXByZWZpeADrYsyHYO7PxVpkY2cMiOrT+RXKpTQwMDAwIHQ3NC1ib3Jyb3ctcmVwYWNrZWQACGNt7efzeGLHP5CliuKQCErlBbg0MDAwMCB0NzQtYm9ycm93NDMtaW5kZXBlbmRlbnQtY2hlY2sAx/E4McqWb1Zd7srru+4T5b32bZI0MDAwMCB0NzQtY2xhaW0tbGluZWFnZS1sZWRnZXIAuw3e5dALXKzN7TnfVvoaJZ1K9KE0MDAwMCB0NzQtY2xlYW51cC1idWZmZXItcG9vbGluZwD8YvWtH89BxZgzQXDLSm26eJHdyzQwMDAwIHQ3NC1jb2xkLWhvc3QtcmVzdG9yYXRpb24AxAAzz7vadBprRh6YTbI8XAQNaME0MDAwMCB0NzQtY29sZC1yZXN0b3JhdGlvbi1zY3JlZW4Ai7eLNmIxks3douvkgQVZwTPd1OA0MDAwMCB0NzQtY29uY2VudHJhdGVkLXNvdXJjZS1wYXJ0bmVycwCGcRCxyuFroaF/zAWc4mnJjg8QRTQwMDAwIHQ3NC1kaWFnb25hbC13aW5kb3ctYm91bmQAwU6N2k4uLUKuAGNpoXuoT625wH00MDAwMCB0NzQtZW50cmFuY2UtcmFpc2UtcHJpY2VzAINTypjqE6AD0UGefgwZ5M5L4OoyNDAwMDAgdDc0LWVudHJhbmNlLXdyYXBwZXItYXVkaXQAIqEd0c9f2MSr7J+i6a2suG76I100MDAwMCB0NzQtZXZhY3VhdGlvbi1wb3dlci1hdWRpdAAh0B3X7sXn0fuut4kFh5JTdi3o6DQwMDAwIHQ3NC1leGFjdC1jb2Fyc2UtaW50ZWdyYXRpb24AmtMuxyH7/Qtw8AOWgLKIpJWAQ9U0MDAwMCB0NzQtZmluZTEyMC1vdXRlcjE0MAAQkRg0maU896D3EsjpAqYXi9qoLzQwMDAwIHQ3NC1maW5lMzAwLW91dGVyMzIwAEQ7atiZ0qV5npRGzXyNvIWXzZi4NDAwMDAgdDc0LWZpbmU0NTAtb3V0ZXI0NzAACiBwpcVd11O71L6OyLv2FAtT5/Y0MDAwMCB0NzQtZmluZTY0LWVuZHBvaW50cwA8xHJ7yua3L4whKtmB5Qh6WLLkZDQwMDAwIHQ3NC1mb3VyLXJvbGUtbGVkZ2VyLWF1ZGl0ACHJeyNQuhEAFcsYogFcp82XavNmNDAwMDAgdDc0LWluaGVyaXRlZC1jZW50cmUtZmxvb3IAxB4bosoILErm7e1EiXvA6L+ddR00MDAwMCB0NzQtam9pbnQtb3duZXItaGlsbGNsaW1iACpptS7QbafZ/YPh7Tf/bR09nHiENDAwMDAgdDc0LWpvaW50LXR3ZWx2ZS1yZXRpcmVkNwDEGZInfUY26tWo4AlD1edSihQFKjQwMDAwIHQ3NC1qb2ludC10d2VsdmUAbYoIKDYf8mawr0jcaWXt6pqpyAE0MDAwMCB0NzQtazU1NC1sb2NhbC1leGhhdXN0aW9uAPow+1dqlTXtQr/1y6BV4k66BEhMNDAwMDAgdDc0LWs1NTQtcm9vdC1lbmNsb3N1cmUAJ7Q+jMzzWqfLxffPmC+maALZ16w0MDAwMCB0NzQtbG9jYWwtc2VhcmNoLXJldGVudGlvbgBSO1GZEPECaREcGxMDIwpYugSTlTQwMDAwIHQ3NC1sb3ctYWxpYXMtYm9ycm93aW5nABecIhc3twogzV+mnCP5YV24XUEENDAwMDAgdDc0LWxvdy1hbGlhcy13aWR0aC1jYXAAoFbHZuFcSCVtkJ055/6OVG11cPs0MDAwMCB0NzQtbmF0aXZlLWZhc3QAFMJwhFe8oUSC9StYI0EDetyiAu00MDAwMCB0NzQtb3V0ZXItYm9vdHN0cmFwLXJlZmluZW1lbnQATRMD19fpp+uakfdnPytDX5Rk/CI0MDAwMCB0NzQtb3V0ZXItZm9ybWF0LXBsYW4Aatih7K60XDx7XixX0zENJ26gJRw0MDAwMCB0NzQtb3duZXItYXVnbWVudGluZy1wYXRocwCu6jHsrLdB20qCR7Yn0am7ZDfiijQwMDAwIHQ3NC1vd25lci1jb25zb2xpZGF0aW9uADl3Li16vMN6zXXlFssior1OAXD/NDAwMDAgdDc0LW93bmVyLWZpbGwtb3B0aW1hbGl0eQBHOhu8+zSWXamQTJX28kirOeUvsjQwMDAwIHQ3NC1wNTU0LXNpZ25lZC1yZXN0b3JhdGlvbgBa/QPQRhLesxGdXxytnYU/16xtajQwMDAwIHQ3NC1waHlzaWNhbC1sYXllcgBu8nsNKRTZ59pT8JUjB3G0afp15DQwMDAwIHQ3NC1waXZvdDU2Ni1rZXJuZWwAjiPbSS0NQ5AwRvaqBiTz1OpUm3s0MDAwMCB0NzQtcHVyZTQ0LWtlcm5lbC1jb21wb3NpdGlvbgCT+33xY0b3b/2xqd6CGYJJpbBHejQwMDAwIHQ3NC1yZXBhaXJlZC1vdXRlcjIxMAAlZLzetY1tEvPdn3k9CNA10XrXajQwMDAwIHQ3NC1yZXN0b3JhdGlvbi1jbGltYi1wcmljZXMAX+SSWZwj9pUB5BkAh9XGt4hivR00MDAwMCB0NzQtcmV0aXJlZDctaW5jcmVtZW50LWF1ZGl0APWtYOGIQwQ3rteQTxa6nDwXKm2wNDAwMDAgdDc0LXJldHVuZWQtb3JkaW5hcnktbGF5ZXIAgVyWGBOhtHC5F0gpSyUpBQTSeSA0MDAwMCB0NzQtcmV0dW5lZC1waHlzaWNhbC1sYXllcgBRfvFWQOt5S7/wqAjhB2x/AA5gpTQwMDAwIHQ3NC1zaWRlLWNvbmRpdGlvbi1jb3ZlcmFnZS1hdWRpdADj80pMXpLFc5bdZYc3hPFz2ySZbzQwMDAwIHQ3NC1zb3VyY2UtcGFydG5lci1jdXQtYXVkaXQAFcEnlQofPe/RVu1rTt/SpOB2+Vg0MDAwMCB0NzQtc3BsaXQta2V5LWtlcm5lbC1zZWFyY2gAmTA+37zbtUorJvR4Zxy6w1HDgvc0MDAwMCB0NzQtc3RhZ2VkLWNvbGQtaG9zdC1ib3VuZGFyeQA/VqGkWBMQ6Pxiu92bTURlmgJlaDQwMDAwIHQ3NC1zdXBwb3J0LWNvbXBvc2l0aW9uALvoQBOnFDvhkNWDOFEck7loF/x9NDAwMDAgdDc0LXN3YXBwZWQtYWxpYXMtZnJhbWUtYXVkaXQAZZmpFv544UdLzm0iJkKkR+YecMM0MDAwMCB0NzQtdmFyaWFibGUtZnJhbWUtY2FwAIsS29u53dtr/DddMeHAffhXkK2UNDAwMDAgdDc0MC1hbGwtY29udGV4dC1ub3JtYWxpemF0aW9uAL/qyI9cnzNWOKg9gfKhLqU7+IapNDAwMDAgdDc0MC1heGlzLXJlZGlzdHJpYnV0aW9uLW1pdG0tb2JzdHJ1Y3Rpb24AzCXDz4Uvf/BSfAwwfSUIoA2rzkE0MDAwMCB0NzQwLWNvbXBsZXRlLXBoYXNlLW1hcADcqWgY0Zj8kw3W5ggKzcqdEr7fWTQwMDAwIHQ3NDAtaGlzdG9ncmFtLW1hc3MAQsLNIfDUZ8xMghB4QwyEkJ1JSx80MDAwMCB0NzQwLWhvc3RlZC10cmFuc3BvcnQtYXVkaXQA6EwMYGrLk4EUI/cosGrHD2ewEHk0MDAwMCB0NzQwLWluZGVwZW5kZW50LXBhY2tpbmctY2FwAE7r15O5hJUpNO96nowHmd2/CmFHNDAwMDAgdDc0MC1qb2ludC1heGlzLW9wdGltaXphdGlvbgDVuPQHRkJYy1xCfZrxzp2hIeyNMDQwMDAwIHQ3NDAtb25lLWRvbm9yLW9wZXJhdG9yAHqHJWHsXdh3gFKIQriHhQrCjw0TNDAwMDAgdDc0MC1waGFzZS1tYXAtcGF0aC1hdWRpdAARGQ+tyUysZDm3ZMfQLS9Twfvd2jQwMDAwIHQ3NDAtc2l4LXNraXAtcHJlY2lzaW9uMzAAv6u8PQSCfTVbdQmtBuerURzfp5k0MDAwMCB0NzQwLXNpeC1za2lwLXByZWNpc2lvbjM1ALh5h60mTPljKJYhzLG1D+2fdAEgNDAwMDAgdDgtcmFuazctZHVhbC1zd2FwANGTmY74mNyokO68nJ0J7JVAfpFfNDAwMDAgdDgtcmFuazctcHJvdmlkZXItY29tcG9zaXRpb24AHY5DjZvFgqlAc25sryzOiY+yxQw0MDAwMCB0OC1yYW5rNy10d28tc3dhcHMAzYKF4LtuejjXwzNHsZKxslfQO9w0MDAwMCB0YXJnZXQtd3JpdGUtZmluaXRlLWltYWdlAF8q35/4ECbtXxrKTkkmXkyUc7FSNDAwMDAgdGFyZ2V0LXdyaXRlLXJvdy1jZXJ0aWZpY2F0ZQC6nflwUFQhAgv9HxTCj1BIUIrN4TQwMDAwIHRhcmdldDExNC1waHlzaWNhbC1jYWxsZXIAu+9CTAuNW7tSf00qJJZCjdrNMx80MDAwMCB0ZW1wb3JhbC1nYXVzc2lhbi1yb3VuZGluZy1zZWVkMjIAhVXZ9jzSUGLfUVyEQccdb+Vg5pw0MDAwMCB0ZW4tdGVybS1jb3B5LWNvc3QAiUq6sfRpaCYWJIQ+DstzxrcZ0E80MDAwMCB0ZW5zb3ItYmxvY2sta2FwcGEAXcZJecU1W1S2SMw3VP6MN/IMbbE0MDAwMCB0ZW5zb3ItY29tcHJlc3Npb24tZXJyb3ItcmVmaW5lbWVudAAFlEZPWac0+ajF9UK+BAU6MRhm+TQwMDAwIHRlbnNvci1lOC1jb3B5LWZsb29yAFBsm5OihaqbAoxO9MogfnaqUqFANDAwMDAgdGVuc29yLWU4LXJhdGUtYXVkaXQA4rfgh4Y1KmFenHrBN0/3kvP+kLI0MDAwMCB0ZW5zb3ItZXhwYW5zaW9uLWFjY3VyYWN5ALS7UrWZNyyL7Hs9fnxFydmsEMKiNDAwMDAgdGVuc29yLWZyYW1lLWNoaWxkLWludGVyZmFjZQDIgOn7YUomoVM3UlVXbHGcWhJW2zQwMDAwIHRlbnNvci1pbnRlcm5hbC1jb250cmFjdGlvbgB1c7Jw8sZ55kAktvg1sIckKr0YrzQwMDAwIHRlbnNvci1ub25yb290LXBhaXJzAOlDEMfCZC4qlwH65U/bTz7o6qFuNDAwMDAgdGVuc29yLXBhaXJpbmctY29tbW9uLW1hcC1yZXZpZXcAZppukzv+KipkMiYbcGI35Yrbl4o0MDAwMCB0ZW5zb3ItcGFpcmluZy1lbWJlZGRpbmctYm91bmQAGpHFBCHlrQquDrxlLY75cgnz5Es0MDAwMCB0ZW5zb3ItcmVzdG9yZWQtZXJyb3Itam9pbgDxa9DE5STwlDsCrSwcSkQfGBWIGjQwMDAwIHRlcm1pbmFsLWFwcHJveGltYXRpb24tZmxvb3IAzlnlBqa/ydRNJVdncOr1s6/hK0A0MDAwMCB0ZXJuYXJ5LWNvbm5lY3Rvci1pbmRlcGVuZGVudC1zZWVkODQAfMkkPL3DwmCmYHOWu2LzmA9hZzM0MDAwMCB0ZXJuYXJ5LWNvcmFua29uZS1wYWlyLWxhdwBbiOHx9LmVrpto5wa1uhJgOgxjzjQwMDAwIHRlcm5hcnktZGlydHktY29tcG9zaXRpb24A6rRVdkM63qF7n1QWyagAjCpN5JA0MDAwMCB0ZXJuYXJ5LWRpc2pvaW50bmVzcy1yZXBhaXIAj8EozboZUBDjfuBp2Ysgcwo8oeQ0MDAwMCB0ZXJuYXJ5LWZyYW1lLWNhY2hlALyCLuc0UyHWV9CfYAD8QOOFI/eINDAwMDAgdGVybmFyeS1mcmFtZS1jbGVhcmVkLWNhY2hlAFU3X017x40OQqnqu30owHj+43ZuNDAwMDAgdGVybmFyeS1wcm9kdWN0LXRocmVzaG9sZC1jb3VudAAU3iGC8X8L0rIG4VI79RBwORmAYDQwMDAwIHRlcm5hcnktcTgtbmVnYXRpdmUtcGFpcgCz0AjPoU78k/L6d7awsocLd1wc8zQwMDAwIHRlc3Qtc3VpdGUtbG9jYWxlLXJlYWRzAEkDjtwR+KwHUaH5oVo2p7Nld+chNDAwMDAgdGV0cmFkLWVmZmVjdGl2ZS1yYW5rANtznOW3WPIfkdOou0oodGCvBy2rNDAwMDAgdGhldGEtcXVlcnktY2FwYWNpdHkAP+l6cwyDLVGIJYJIVJbL/L5nFu80MDAwMCB0aGluLXF1ZXJ5LXNoZWFyLWZsb29yAHnQ6tLWyNvADn5HKCfkyNB2O6nxNDAwMDAgdGhyZWUtYmFuay1yZXN0b3JlZC11bnBhaWQAwRp61y/voO2XoOKOQqgo65IPtQ80MDAwMCB0aHJlZS1iYXNlLWNlbnN1cy1yZWNvdW50AML99bS/nYgQqquaeEutlrgfAJpmNDAwMDAgdGhyZWUtYmFzZS1wYWlkLWNlbnN1cwDrT9bGssjHMwCm5FpKT1qLNiOTlzQwMDAwIHRocmVlLWN5Y2xlLWFkZHJlc3MtZmxvb3IAdKWZ8sRIEGsd7Ag2Pswj5O7At1g0MDAwMCB0aHJlZS1jeWNsZS1ib29sZWFuLXJvdW5kaW5nAN815wE1hQe99DcGwv1NZu4Yv1ccNDAwMDAgdGhyZWUtY3ljbGUtY3V0LWNlaWxpbmcAyfjlagmv3AwLScVrjUJKiRumhm40MDAwMCB0aHJlZS1kYXRhLWF1eC1kaXJlY3QACcwEllarH1X1Ci7VdPquifTHVcQ0MDAwMCB0aHJlZS1kZW1vdGlvbnMtdDM3LWNvbXBvc2l0aW9uAGPxsk5ixjTBvhvdCcqzmDQTSA3tNDAwMDAgdGhyZWUtZnJhbWUtc2hhcmVkLW1hcAAq8SKQPzMrK3lYbvRn4UbXfUNo9TQwMDAwIHRocmVlLXBsYW5lLXJhbmstZHVhbAC2FWly3OSkNuz6FXUmpWrYxImpCjQwMDAwIHRocmVlLXJlZ2lzdGVyLW1vZHVsYXItYXVkaXQAVkL8pXqLqFRUyCwqJKi5rf2TjC80MDAwMCB0aHJlZS1yZWdpc3Rlci1uby10YXJnZXQtZmxhZwCWqvPl6kyk2tX2zZBYAi0pnMYMcDQwMDAwIHRocmVlLXJlZ2lzdGVyLXRocmVlLWN5Y2xlcwB0gTe+CfrA5qOS2H5FNlcWSkBq4TQwMDAwIHRocmVlLXNob3J0LXJvdy11bml0cwCycYug1sc1Y9od2kRWaTmc4lPyTzQwMDAwIHRocmVlLXNvdXJjZS1lbnZlbG9wZS1mbG9vcgC5cqTemqZNNMomxPZPew6ZwV5uZjQwMDAwIHRocmVlLXNwZWN0cnVtLXNoZWFyAMkVYCE/vCUjU08pkjQH/P33IxpmNDAwMDAgdGhyZWUtc3dhcC1jYXAyLXBoeXNpY2FsLWNlaWxpbmcAEwxhkFX558+RrKIMWztnhSOgV0M0MDAwMCB0aHJlZS1zd2FwLWNub3QtY2Vuc3VzADWs7rzEKu2nByNxCkaeS3ClM2TDNDAwMDAgdGhyZWUtc3dhcC1jb21wcmVzc2lvbi1zZWVkNgDFuwe9IMvRX2eeNZBU6WiTtTvYsDQwMDAwIHRocmVlLXRvdGFsLWNsYXNzaWNhbC1jb25maWdzAKD+4rYYAnFkZGP3ZNpZ6QCQgtt6NDAwMDAgdGhyZWUtdG90YWwtZGVjb2RlcnMAzn7cdWDxxur1tAJvDRosutE6AlU0MDAwMCB0aS1sb2NhbC1yZXNwb25zZS1zY2hlZHVsZXMAZhhHJP01IiqAX3+PF6GUALyhjJw0MDAwMCB0aWVkLXdpZHRoLXR3by10cmFuc2Zvcm0tZXhhY3QtY2FsbC1jb3N0AM/nFdALuR3/KJSj31Na25Bo9NNcNDAwMDAgdGludGFnZWwtc291cmNlLWxvb2t1cADAp64/Qu6A5nzFEwMoIwXBUPJaxzQwMDAwIHRyYWNlLWN1cnZhdHVyZS1wcmVsb2FkAIJMGne93X8PUwffc9RyIa7KLdGaNDAwMDAgdHJhbnNmZXItY291cGxlZC1hbGwtc2hhcGVzLTdxAGqWtZypLrr3+tZNLl25Fc2Sj1JVNDAwMDAgdHJhbnNmZXItY291cGxlZC1vbmVyZXBlYXQtN3EAMJb9rtqBJgsrs92ti6OaLk6ErLE0MDAwMCB0cmFuc3BvcnQtZG9tYWluLWNvbmNvcmRhbmNlLXNlZWQ5NgBrcyPl5u/8bOj7nVAjgOWZg8z47jQwMDAwIHRyYW5zcG9ydGVkLWZyYW1lLWNhbGxlci1wcmljZQDjs6x5wns4kh2urKI/m9WWlyZv4jQwMDAwIHRyYW5zcG9ydGVkLXdhcnAtZnJhbWVzAAs1J17p1MFiHytaRNEIhORYUgUSNDAwMDAgdHJpLXBsYW5lLXBvcnQtcDExMi1zZWVkZGIwOTMwMjYAx0HTH+E2KAOBVysVKay3Pq6HwKo0MDAwMCB0cmlhZGljLW5vbnVuaXQtbG93ZXJpbmcA+PKr1HRqZjEH+t2fotEzNmjAqHk0MDAwMCB0cmlhZGljLXF1ZXJ5LXBhaXIAGMoC13bAhXNlPL38tMlZwvYYHwM0MDAwMCB0cmlhbmdsZS1lcXVhbGl0eS1hdWRpdABUPgrnBhL4gCHbTj7WcV5JUyiD5jQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWJpbm9taWFsLXN1ZmZpeABeo7Hg5/ct84dg0ZH+FadWjPKwUTQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWRlZ3JlZS1maXZlLXNpZ24AsUpDKYF0dwUWCbkLO15Ral02AwI0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1kZWdyZWUtZm91ci1zaWduAGuk7Z/Rq5qsd5Mm87uWYtphOgs9NDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZGVncmVlLXNpeC1zaWduAOoSNRtT17E7RAeFh4Xf6CCYK1wTNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZGVncmVlLXRocmVlLXNpZ24A+ec8DTnls7vnmMcJVW5OiRg+CNg0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1kZWdyZWUtdHdvLXNpZ24Afdm5cYi9uUFlCeRYhGv0YjKM3540MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1maXZlLWVudHJ5AHjMpMfoFeEkegP+NducHQj0FaExNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZm9yd2FyZC1ib3VuZADELH5O8ACsk9lCAN3yXqX5XZZOQTQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWZvdXItZW50cnkAVlmpuIpfF0mj1m2btDx6Z8ng/N00MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1sZWFkaW5nLXF1YXJ0ZXIAgwpPmIuSfKbVg1N83p3RMsJCoVs0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1uOAATZa5WtnoVEXz5UwFmRQnEZ+VBGzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LW5lZ2F0aXZlLXF1YXJ0ZXIAkvYIT4NhaiOvjVGx9m8xFtFVBGU0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWRlZ3JlZS1maXZlLXNpZ24A2jjglLkQWP1oHQFzwFkh0vTBs4A0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWRlZ3JlZS1zZXZlbi1zaWduAJntfxHW+4z0zyrG5pC0HEebxSBbNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1kZWdyZWUtc2l4LXNpZ24AMBeJFu93pATcL2t+F/wvTV3nF2s0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWV2ZW4tc2l4dGVlbnRoAHnB08ay9DUa5ve0NLhy+qnsWAJkNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1vZGQtc2l4dGVlbnRoAOdc8UxBrnIMxks2pi0Lee+widIHNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1zaWduAOyyqM+5nd49wavWusqS0Cs1nUAANDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcHJlZml4AMxTKlgvRtT3jF/aZfOB9mxR0tQqNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1kZWdyZWUtZml2ZS1zaWduAIfs7Xs3PkCfySwjhC/3YRv6iwuTNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1kZWdyZWUtc2V2ZW4tc2lnbgBzYljNT3gE0N84jMRiL612oQN/4TQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItZGVncmVlLXNpeC1zaWduAKOMsYVcppeYIbcb7/AD6diU0BD4NDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1ldmVuLXNpeHRlZW50aADu7TNg60fLLN3QL78pO6cucIp8KzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItb2RkLXNpeHRlZW50aACxAtZyTu7l/acPNrT84bueEx9J4jQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItc2l4dGVlbnRoLXNpZ24A1v9T8livbED72kWdG1O22P4vOZ00MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1xdWFydGVycwBBCRAVZlBc8/b+xeYSt73OUvQiUzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXNldmVuLWVudHJ5AMgrJCiND9itOZ6yYQGKW6l9PF/pNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbi1jdWJlAP1Fx5/CJBZ+yBJLu0W+tEPjKS+gNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbmVkLWVpZ2h0aAAzthJZCbfW8A5wDyrHhiV3ARr7OzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXNpZ25lZC1maXZlLWVudHJ5AHhhyYN7rGDEdgLcgxCDOy2GsVTjNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbmVkLWZvdXItZW50cnkAYiYGDB8QmLZxFt7cV+prFUeaQRw0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1zaWduZWQtc2V2ZW4tZW50cnkA3uthMKq/gCHPi98PEDLHQCsZp6c0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1zaWduZWQtc2l4LWVudHJ5AC7/cj2Cgpj+L5tyD1K7waO9uzafNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2l4LWVudHJ5APy7o6UadCY/Oyc6dsU0xEiqZWxwNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktdGFpbC10aHJlc2hvbGQA5ImgIBfi5nBzjsolfRVdt7abEmE0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS10aHJlZS1laWdodGhzADLcH6Yi5gTeIm3OExyJ79cUD57MNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktdGhyZWUtZW50cnkAzUU4vhNUQNHnJFpR6vdBXBGPIhA0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS11bmlmb3JtLXByZWZpeADzsXDzA+6h7XQXEO+SvHtvR3W9pjQwMDAwIHRyaXBsZS1zaGFyZWQtZnJhbWUtdGhyZXNob2xkNDYAUvU23TzJy/l0aDGVrzxHuguiJLA0MDAwMCB0cnVuY2F0ZWQtdGVuc29yLWNoYXJhY3RlcnMAI/arUatS6Q8f++vYWptvl7HGdrU0MDAwMCB0cnVuY2F0aW9uLWZyYW1lLXRyYW5zcG9ydAA8nyLvjo2PK1ucJvPK5HizAESxsjQwMDAwIHR1cnluLWNvZGUtc3BhY2UA8mAyY/o+Y8xqpP4tpbNAJZSkIdk0MDAwMCB0dXJ5bi1wb3J0LWxhYmVscwAmQJSlwZlMWGUbdeobFzoYNTOP+zQwMDAwIHR3ZWx2ZS1jYWxsLWNlbnRyYWwtdHJpcGxlANBMppFEG7ygRYRLUOHEs4dAI8IENDAwMDAgdHdpZGRsZS1hZGRyZXNzLXN3ZWVwAJdSjaS+1tfCq2gc3keK1fQLwlrBNDAwMDAgdHdpZGRsZS1jdXQtc3RhdGUAizPals7JRz559EUvpx9CrxF91C80MDAwMCB0d2lkZGxlLW1hdGNoZWQtbGF5ZXIAxczUPQWj2orn/JDlmM7MqJjrFK40MDAwMCB0d28tYWNjdW11bGF0b3Itc2F2ZWQtYXJtcwBTtFYQjMViO+2DT6PMF4Mi8AggBzQwMDAwIHR3by1heGlzLW93bmVkLWNvbnRhY3RzANfgoB2NI7Oj0ZNBfqTlwGBGhuElNDAwMDAgdHdvLWNlbnRyYWwtbGF1cmVudC1jb3ZlcmFnZQBRlCCuSTQpCTse+X5WU7nRa0XkvjQwMDAwIHR3by1jb25uZWN0b3ItZWlnaHQtdHJhbnNmZXItY2Vuc3VzLXNlZWQ1OABzeeOY2Q8hLT6NEgFSfIMMNs+fZTQwMDAwIHR3by1jb25uZWN0b3ItZWlnaHQtdHJhbnNmZXItdGhyZXNob2xkAEbEmMEGU3wDhMAB+zMlBVHGc6DTNDAwMDAgdHdvLWNvbm5lY3Rvci1mb3VyLXRyYW5zZmVyLW9ic3RydWN0aW9uAFC0G0krwzBZuH6nfgp/o94LNuM8NDAwMDAgdHdvLWNvbm5lY3Rvci1zaXgtdHJhbnNmZXIA/ixy3MvI+gsPkTajd42uMmn6mJs0MDAwMCB0d28tY29ubmVjdG9yLXRyYW5zZmVyLWJvdW5kYXJ5AL+gRdMz6ceMWieY0+5Ws9ZI7EORNDAwMDAgdHdvLWZhY2V0LWRvd25zZXQtaW5lcnRpYQDNoKlen1PzTV8HgBEFWhadPlnExzQwMDAwIHR3by1mbGF0LWNvdmVyLWJyYW5jaGluZwDjQjV+PJ7jSDqlp0AhUHjtcJgkuTQwMDAwIHR3by1mdWxsLWJvcmRlci1wYWlkLXByZWNpc2lvbgDZZZUJcMWhP/ZTY2aA+uU+oiuhsTQwMDAwIHR3by1mdWxsLWNlbnRyYWwtb2JzdHJ1Y3Rpb24AtuyN+Ih1Kk02DM8Ljnd7z2ahZ9w0MDAwMCB0d28tZnVsbC1kaXJ0eS1zdGFiaWxpdHkAUKJcdIUb76x4ar++0jqT1SSYrtA0MDAwMCB0d28tZnVsbC1mcmVzaC1kLWNvaGVyZW50LXBhaXIAe4qfXVihNa3dwea4xydJ4lZp1Bg0MDAwMCB0d28tZnVsbC1yZXRhaW5lZC1oZWxwZXItY2VpbGluZwCPu66Z2a8P5ITe8h7I9WWbkAZpUzQwMDAwIHR3by1odWItdGFyaWZmLTU0APF31xO6XfpMAsRUESPpY2DvUTJ8NDAwMDAgdHdvLWh1Yi10YXJpZmYtbWluaW11bQD8XmO6fCSMDnkshR3ERAKdvWq5MTQwMDAwIHR3by1pbWFnZS1jb21wZW5zYXRlZC1wYWlyAMDtNq9jcOZHD8PsfsJFLPPMGonJNDAwMDAgdHdvLWltYWdlLWRpcnR5LXZvbHVtZQARbpXH8HXdGHe7S4qq0RY+bYGIUDQwMDAwIHR3by1pbWFnZS1pbnZlcnNlLWxhdHRpY2UA8aZmM/3A+XBvwuTlqB/9JiPDz4A0MDAwMCB0d28taW1hZ2Utdm9sdW1lLWluZGVwZW5kZW50LWF1ZGl0AOP5AF65N/0sWPoeVn5+CjQBxLUONDAwMDAgdHdvLXBpdm90LWNhbGxlci1yZWFkZXJzAI96e9Mp2n0lylVAZgysFQnwWJpTNDAwMDAgdHdvLXBsYW5lLWNvcHktZmxvb3IAnR8tDhPdlV89jfwJryVk+rE3dtA0MDAwMCB0d28tcHJvamVjdGlvbi1ib3VuZGFyeS1vcHRpbXVtALxQuzwaxXXo1mFnh1ytOhzijLPmNDAwMDAgdHdvLXByb2plY3Rpb24tY29ubmVjdG9yLXNlZWQ1MWE1AEnIeArrixN3knAmWcTXQE0pZvTRNDAwMDAgdHdvLXJlZ2lzdGVyLXRocmVlLW1peAAB5/ajoPETWtKKr3+7M4UoQAwLTzQwMDAwIHR3by1yZWxhdGlvbi1wYXR0ZXJuLWNlbnN1cy1zZWVkNTIAmO6OKskmAaI0nX1GFUFQfcPGPY40MDAwMCB0d28tcm9vdC1zaWduZWQtY29ubmVjdG9yAMjj+KIALjZYfuOW0jhsDgGQFIWTNDAwMDAgdHdvLXJvdy1ub251bml0LWZhbm91dACj70RvwwjV8sjv9s9/zrcLm6/PqzQwMDAwIHR3by1zaG9ydC1yb3ctY29lZmZpY2llbnRzAAfhLXdj5pPNR6s0Zapk2irusrLNNDAwMDAgdHdvLXNpZGVkLWhlbHBlci1leHRyYWN0aW9uAOvKu862/eMj2ZeQ1hWb0gKpgCD8NDAwMDAgdHdvLXNpZGVkLXRlbi10ZXJtLWZsb29yAAMD2PFbjQDKjirVj9ya3TqN4PjHNDAwMDAgdHdvLXNpdGUtY2FsbGVyLWZ1c2lvbgBYYu585qxsRzZM52mu3tVdZk4IMzQwMDAwIHR3by1zdGFnZS1jb2RlZC10ZXJtaW5hbAACJK/80kGq95mlj75ge6E+4ETyEDQwMDAwIHR3by1zd2FwLWFkZHJlc3Mtc3BlY3RhdG9ycwAHqaAlMuF+numS1xlZ9/6yMyGL2zQwMDAwIHR3by10aHJlZS1jeWNsZS1hZGRpdGl2aXR5AMHs3i7m5sBDhV77xkFnKYJmYyNINDAwMDAgdHdvLXVucGFpZC1pZGxlLW1hc3MAtKfTlg8hIzmitILPbl5/GLMYNE80MDAwMCB0eXBlZC1hY3R1YWwtd2lkdGgtaACKX1LzBc1xQbFS2rIH58sApC7XfzQwMDAwIHR5cGVkLWFjdHVhbC13aWR0aC1waHlzaWNhbC1oAL4ZntfOMK8iN/BplPPUUsR/QMwRNDAwMDAgdHlwZWQtcHJpbWl0aXZlLXByaWNlABbRD0PTjbh5Ho2aNeLPXGJ1SQZdNDAwMDAgdHlwZWQtcXVvdGllbnQtcGF0aAAs83/Xr9N0IocqYb+ez0hVqkhg8zQwMDAwIHR5cGVkLXdpbmRvdy1mdXNpb24tYXVkaXQAlz9oTIT/q6GtrlBVoJ0B9tzL/U00MDAwMCB0eXBlZC13aW5kb3ctcGFydGl0aW9uLWZsb29yAA9KzJYF2oIUSnybyMsAzRFOjJPsNDAwMDAgdTgtYi1jYW5jZWxsYXRpb24tc2VlZDMyAIOXirKM9AomGkGZXgZjNSZ5aWefNDAwMDAgdTgtY2xlYW51cC1tYXJrb3dpdHotbHByLXNlZWQzMAAF2v3BHuDDv/WEX+SpIbnukdfN+DQwMDAwIHU4LWU0LWdhcC1maWxsAF3U13Mq09rqmPN9FEW5LPLIfwJQNDAwMDAgdTgtaW5kZXBlbmRlbnQteGNoZWNrABtY2r9HpxDlbX1DRZYopaI/RLOoNDAwMDAgdTgtc3VwcG9ydGluZy11bmlmb3JtAHZ0FCwx1ByDGEltdTJf7Agh4hoWNDAwMDAgdTgtdGVybWluYWwtY29uZS1jZW5zdXMABPKWelg0HMkky5spxCnfj2Xs4PM0MDAwMCB1OC10d28tc2lkZWQtYmlmb3Jlc3Qtc2VlZDM1AH3H2CMrceOivvwYF5xxP6geU+oHNDAwMDAgdW5jb25kaXRpb25hbC1iYXRjaGVkLWNydABJTMITzwjqzKE7UH53mAcxkDK1nTQwMDAwIHVuY29uZGl0aW9uYWwtbW9tZW50LWNyb3NzY2hlY2sAeWxOvgZs0XYqGSpoPpzCGwwJa140MDAwMCB1bmVxdWFsLWN5Y2xlLWZpdC1yaWdpZGl0eS1ib3VuZGFyeQCOikUPZhygRRqaxDmGvOI+MX68OjQwMDAwIHVuZXF1YWwtY3ljbGUtcGF5bG9hZHMANCXqSvElADYQKcZgq21XY+CEUnU0MDAwMCB1bmVxdWFsLXBpdm90LXNjaHVyLWRpbWVuc2lvbgBw5S5Sj4Q5KeGjWKKhQ886x/93vDQwMDAwIHVuZXF1YWwtcm93LXJlc29sdmVudABEi/g2HQM/QQDOoaSqWJrI+K314jQwMDAwIHVuaWZvcm0tY29tcGxleC1leHBvbmVudABdr7wPVdcZ3c/tNJx5hmBAj7W+JzQwMDAwIHVuaWZvcm0tY292ZXItY291bnRzAD16Z12sEL2MDIg9nx2KexiUe7pNNDAwMDAgdW5pZm9ybS1leHBvbmVudC1ib3VuZAAYSEbeSHnKQb1BjYv0RRN8Sct5ujQwMDAwIHVuaWZvcm0tcGFya2luZy1wc2kAdthnWWjfSJoE3R6h44W9O9Wd1P80MDAwMCB1bmlmb3JtLXctYm91bmQAGNLSsou72eqkBKlcexI3gLJN7jk0MDAwMCB1bmlvbi1oZWFkZXItZW5jb2RpbmcApoNLcSkZ841/Fq1L8vxqslUuu4Q0MDAwMCB1bmlwb3RlbnQtb3JkZXJlZC1zY2h1cgA0Gl1gI9ErTUBk0MKb8V9w+lzMuTQwMDAwIHVuaXBvdGVudC1wcmVjaXNpb24tY3V0cy1zZWVkNTUATIhl28fTbVWnrEreeDi902cX2yE0MDAwMCB1bmlwb3RlbnQtcmVzZXQtY3V0cy1zZWVkNTcAh3BFc9XgQLwhvTUAIaZ09ZwQW5c0MDAwMCB1bmlwb3RlbnQtcmV0dXJuLXNlZWQ1MwBg3mPzfxq0304j2Xfp9wDjAFFqoDQwMDAwIHVuaXQtcmluZy1kaXJ0eS1mYW5vdXQACsD15Dfp04JusKBnAR+J/GZYrTQ0MDAwMCB1bml0YXJ5LWN5Y2xlLW9wdGltYWwtY29uZGl0aW9uaW5nAIZ32mrfcWdrTrnDEBB2lRdHDr9UNDAwMDAgdW5pdHRlc3QtcmVjZWlwdC1jb21wYXJpc29uALtVO16i5d0aoK6R1zG8DhHv/SCPNDAwMDAgdW5pdmVyc2FsLWNvbm5lY3Rvci1ib3VuZGFyeQCXOqJUWMqkxNIdLSY/iTaIVmskXzQwMDAwIHVuaXZlcnNhbC1jb25uZWN0b3Itc2l4LXNvdXJjZQBTcjhbNxjA1AH8/Hmc2gqyCw8gYzQwMDAwIHVuaXZlcnNhbC1kaXJ0eS1jZXJ0aWZpY2F0ZXMAZSGjUZaWIxJX8wpoh6r6LByVuEc0MDAwMCB1bml2ZXJzYWwtZGlydHktcGhhc2UtaWRlbnRpdGllcwDhZVCMvOgXHFd+CjdZnzFz6y4IAjQwMDAwIHVuaXZlcnNhbC1mNy1zaW5nbGV0b24tbDIwLWNlbnN1cy1jb21wbGV0ZS1zZWVkZmQ5MzhmMzAAb3ERmq7rZgHzXE1+QrfyhcCdUr80MDAwMCB1bml2ZXJzYWwtZjctc2luZ2xldG9uLWwyMC1zZWVkMDY3MDRjMzkAyZ0f8ejd7UOJgBAk45/XlWmeEPU0MDAwMCB1bml2ZXJzYWwtZjctc2luZ2xldG9uLXNlZWRiODU5NTE3YgADuhdIR4ABp7VG0Hs8JWoI6Jt0kjQwMDAwIHVuc2lnbmVkLWNvbm5lY3Rvci1jaGFyYWN0ZXJpc3RpYwDvGyoenhX/PO8l5uhU2gEsHPLkpTQwMDAwIHVuc2lnbmVkLWNvbm5lY3Rvci1yZXNpZHVlLWNvdW50AKlx3zrtZQ/e9v0P3U8A4JKFzuKgNDAwMDAgdXQtc2lnbmVkLW1vbm90b25lLXRhcmlmZgDbr2BlZ+6GVCjF2uq4HO/Q6drl7zQwMDAwIHV0My1jZW50cmFsLWNvbW11dGF0b3ItaW5kZXgAWnkt21M79vLVw6ILAmO+B8YuvIM0MDAwMCB1dDMtY2VudHJhbC10cmlwbGUtaW5kZXBlbmRlbnQAX5TW3/52P7qowDMjJkeni5LBtJ40MDAwMCB1dDMtY29tbXV0YXRvci1hbGwtcmVnaXN0ZXJzAJT+9ULo5DRAbgC0CAzw1po09eTzNDAwMDAgdXQzLWNvbW11dGF0b3ItcmVnaXN0ZXItYm91bmQA90cnbqo207Z/pPHqst7X1AcDlic0MDAwMCB1dDMtY29uY2F2ZS1yYW5rLXRhcmlmZgDjijYevYXQD1An+9T3HNKvlQcShDQwMDAwIHV0My1mNC1jZW50cmFsLXBhaXItc2VlZGZjZDc4NWEyAJISahLmsuPYMWUWHC9KADbJVglXNDAwMDAgdXQzLWY0LWRlcGVuZGVudC1jZW50cmFsLXRyaXBsZQCRIF9/ZH3RMDFaFP7DlHi5UwIP5TQwMDAwIHV0My1mNC1uaWxwb3RlbnQtdGFyaWZmAE+wnwbYN2oZmTqLmPNc+Yohw7loNDAwMDAgdXQzLWY0LXcyLWxpZnQtb2JzdHJ1Y3Rpb24AWftCgnUrJqR90laT2JJKm14LgU00MDAwMCB1dDMtbWl4ZWQtdGFyZ2V0LXRhcmlmZnMACPguIs4ON+XuIZ640xvzcyhbZts0MDAwMCB1dDMtbW9ub3RvbmUtcmFuay10YXJpZmYAt04BBJsYkjAPmtFamWMVGfEIhrI0MDAwMCB1dDMtcHJpY2VkLWNlbnRyYWwtY2FsbHMAsudLPPzzEUN+PJOr6Tm1yUS1g5c0MDAwMCB1dDMtcmFuay1ib3VuZGVkLWJsb2NrLWNhbGxzAN+QLJ02RiK0f5D7MTCiOFGi08zxNDAwMDAgdXQzLXR3by10YXJnZXRzLWFueS1yZWdpc3RlcnMAASOTAIGgZ9K/a1y/8XF4MJzUq0Y0MDAwMCB1dDQtY2VudHJhbC10YXJpZmYtcmVsYXhhdGlvbgB/DFMc0lJvBbVsIjUTcdeTXNl9RzQwMDAwIHV0NC1maWZ0ZWVuLWNhbGwtZml2ZS1iAPEb3fRVZH3RKSd97xp3g49oTOv7NDAwMDAgdXQ0LWZpdmUtYi1jb3ZlcmFnZS1hdWRpdAC20D29HtoARHDdZO3ep3iaHBP80DQwMDAwIHV0NC1taXhlZC1jZW50cmFsLW1pZGRsZQBgktNhdI2mY9piHBSYHsYHO0kHyDQwMDAwIHV0NC1taXhlZC1yZWxheGF0aW9uLW9wdGltdW0AE/OLOVDaUZd/woptviuH2ZsRJGw0MDAwMCB1dDQtbWl4ZWQtcm9vdC10YXJpZmZzACjSrEJezTEbAeLDpgY96RxtD25mNDAwMDAgdXQ0LW1peGVkLXdlaWdodGVkLWJvdW5kYXJ5AHRuQkbcDsvwLJFrybsZpZgJ5hYQNDAwMDAgdXQ0LW5vbmNlbnRyYWwtY29tbXV0YXRvci1zZWVkYmZlNTkAu46lVeJW/js1gPJjLxoqh8Mcf7Q0MDAwMCB1dDQtbm9uY2VudHJhbC1zaGFyZWQtbWlkZGxlAMxiDqeaNJ0MoKd0mIQHSju480V/NDAwMDAgdXQ0LW9uZS1zbGFjay13b3Jrc3BhY2UA9S6lMluZ01vT7BT6FG4gQ4kaf2I0MDAwMCB1dDQtdHdvLXRhcmdldC1maWZ0ZWVuABWDdAaCOEBJOXh/sejaFLFodxwsNDAwMDAgdXQ0LXR3by10YXJnZXQtbmI3LXJhbmtzLTIyAIz63dZQIh5iPfCcGiaDrB5s5MiiNDAwMDAgdXQ0LXR3by10YXJnZXQtbm8tc2l4LWIAjMrlifNOYFwyKunhojpFTT72Jyw0MDAwMCB1dDQtdHdvLXRhcmdldC1yMgA8reTfb+5CUihNkF8Z7cAfLBQW4DQwMDAwIHV0NS1mb3VyLXJvbGUtbWl4ZWQtcm9vdC1zZWVkZTJhOABHptBaWxYC6uzwRpHcaCiEoATq9TQwMDAwIHV0NS1yZXBlYXRlZC1yb290LWhlaWdodC10d28tMjAyNjEwMTcASNvBJyn90ZuZrWXSyuv6DZHcX7I0MDAwMCB2NDUtbWFyZ2luLWxhZGRlcgA9tWDJqZy91x5hD0cKZIYTAgF69TQwMDAwIHY0NS10cmlwbGUtaW50ZXJzZWN0aW9uAAu5zkyf2ugG1MShZJNUlw9+woYDNDAwMDAgd2FycC1pbnRlcmZhY2UtMjAyNjEwMjIAuUgN5Tbcmc/qGS1PkcHW6tSKNFw0MDAwMCB3YXJwMC1lbnRyYW5jZS1jYXAAxODJgsIJAlObmcXM+9D8qCt08j40MDAwMCB3ZWlnaHRlZC1jYWxsZWUtYm9vbGVhbi1ub3JtLWludm9pY2UADKnqS9KTNxJ+TxbhiTrbGOcxu480MDAwMCB3ZWlnaHRlZC1jb25uZWN0b3ItcmVhZG91dHMtc2VlZDEyNzUzMDk0OTIAgIO1QomO82EI8R/rfvD4c/otNEs0MDAwMCB3ZWlnaHRlZC1jeWNsZS1wb3dlci1hdWRpdACNRGnlmbMQDecGOIN+20LvuDFY+jQwMDAwIHdlaWdodGVkLWZvdXJpZXItbGF5b3V0AG0Ku/lGzBWd92erQJc4wX2x8D9KNDAwMDAgd2VpZ2h0ZWQtZ3JhbS1ib3gAKm+frap+ci5IwuNZDiRKN92q6ww0MDAwMCB3ZWlnaHRlZC1wYWlyLW1hc2stdG91cgCaFIoAqXUE9SRJV3Bfi8yhBR8hJzQwMDAwIHdlaWdodGVkLXBhdGgtdmFsdWF0aW9ucwCLtmd3faUW5GMsvp+0JnPCRXMuNjQwMDAwIHdlaWdodGVkLXJldmVyc2FsLXJlc2NhbGluZwD8q3w49slSrXSWtexg4FkxqDHDrjQwMDAwIHdlaWdodGVkLXNpZ25lZC1jb25uZWN0b3Itc2VlZDU4AB2/lz6RkGWmNeCRWYu+w1lRVAPnNDAwMDAgd2VpZ2h0ZWQtd3JhcHBlci1jb250cmFjdAAwM90ZV/G0pHb+tCWFKattJu+wCDQwMDAwIHdpZHRoLWstcG93ZXItY3V0AOTevptzbb3rnatO03608jueV8PDNDAwMDAgd2luZG93LWJyZWFrLWV2ZW4tNDQ3MAB5EIv2xSyLDCzoLYbMFovlTofY6zQwMDAwIHdpbmRvdy1jaGFpbi1zb3VyY2UtY291bnQAqUctlZ2wYsLDVFc8r26SHpnj5IM0MDAwMCB3aW5kb3ctY29tcGFyaXNvbi1iYXJyaWVyAFeFTyqUjHqj4jD8yIWMVoz84AhxNDAwMDAgd2l0bmVzcy1zcGVjLXRvb2xzAOxOdoc7bTvqDoq3N5SXFTuJ2uf4NDAwMDAgd29yZC1wcmVjaXNpb241MwDgrDwRo+X3iDP1N736CJdD6455ETQwMDAwIHdvcmQtcmFtLXRyYW5zZmVyAKp//lgDwx3UQ47SBnJ5RgriKzWGNDAwMDAgeDQtZmlmdGgtam9pbnQtZXhjaGFuZ2Utc2VlZDMyAKbcYJEnNm3+5TbWGR5/xym2KGydNDAwMDAgeDQtZm91ci1zb3VyY2UtaG9ybmVyAPs9UZbVlPpJL9sR1xKyVRYcQhB1NDAwMDAgeDQtZ2Fpbi1hZGRpdGl2aXR5LWF1ZGl0ADa842bN1b60dmoSGURBrdLV32oeNDAwMDAgeDQtam9pbnQtaG9ybmVyLXNlZWQyOQAbNcdOMbpMhJ/k3YaRensqzMxz+DQwMDAwIHg0LXByZWNvbmRpdGlvbi1zZWVkMjIAUelcAenC7LuCPeFcDNW4FXq97e00MDAwMCB4NC1wcmltaXRpdmUtYWRtaXNzaW9uAAc8rLK9OvanMbBeWsz+qm/fzBRPNDAwMDAgeDQtdHdvLXNoZWFyLXNlZWQzMQAB9l2JOzoFtYPjSNW57lCjbE9b4zQwMDAwIHg1NC1taXhlZC10MzctZnVzaW9ucwBMi/EdhdH9J6RU/7ZabZw6X2hItDQwMDAwIHhvci1hZmZpbmUtYWdyZWVtZW50LWF1ZGl0AJ6Clv51vZcG1QgpkcFkVLF6rE/YNDAwMDAgeG9yLWVuZHBvaW50LXRhcGVzAGQKEF0yXkY8VZ4vkfiedeAryXLfNDAwMDAgeG9yLW1hc2stbGRzALF0w2ONmu1iU5tHGl/kLsvpXzZ9NDAwMDAgeG9yLXByZWZpeC1zdHJlYW0tbGlmdGluZwDSiAYG1KCX7TWvI+XFxheflqjsujQwMDAwIHhvci1zY2F0dGVyLWJvdW5kYXJ5AN+cHGWIyXbcxS7xKIVoHdGB+T/HNDAwMDAgeG9yLXNjYXR0ZXItbmF0aXZlLWF1ZGl0AEBMvERf9aJPlWgQ29+7HUCyahvoNDAwMDAgeG9yLXN1YnNlcXVlbmNlLWVudW1lcmF0b3IAHUxsWfOLn/fYAzbGcygYM4B14lw0MDAwMCB6NC1jYXVzYWwtZXJyb3ItZ3VhcmQAhkeGXd3wsRywPGikX02h/1GivKU0MDAwMCB6NC1jZW50cmUtdHJhbnNmZXItYXVkaXQAdFHNflu6ODFV6uMT1+Vm0fDm4qM0MDAwMCB6NC1kaXN0aW5jdC1zb3VyY2Utc2VlZDU1AN3NknhEM4316a1LID3acdM77Ml6NDAwMDAgejQtaGV0ZXJvLXR3by1iYW5rLXNlZWRiYTE4AMRsMwuGwZ7OPdVJ9hRMaS7XQwvyNDAwMDAgejQtaGV0ZXJvZ2VuZW91cy1wYWlyLXNlZWQzeDcAcU04wsX/dU9dy2GpduqLIa9YNk00MDAwMCB6NC1wYWlyZWQtZnJhbWUtcmVzdG9yYXRpb24tc2VlZDU2AAtRL2aK5ey1/LxcdlJHXuS305I2NDAwMDAgejQtcGVyc2lzdGVudC1lcnJvci1lbnZlbG9wZQDAGg1xAfCrFdRHx16ktPflesEBATQwMDAwIHo0LXBlcnNpc3RlbnQtcGFpci1zZWVkNTcAvQ7xJmvAK+VG3maX/Q2PqKQmtxE0MDAwMCB6NC10eXBlZC1lY2hvLXN1cHBsaWVyLWluc3RhbmNlAAE2kCL2upfeRbJ0x92D0AnSP7lGNDAwMDAgejQtdHlwZWQtd2luZG93LWFkbWlzc2lvbi1rYjFjAFKJrmEh0IMxGpg7MdPKtx1bhJsiNDAwMDAgejQtdHlwZWQtd2luZG93LXNjaGVkdWxlLXNlZWQyNWFkAHMIDP/KyKnY/QBLdP+LayeFEwDdNDAwMDAgejYtaW5jb21wYXJhYmxlLWZhbm91dACnYSfP08DwRO/1UFK2w9KbekUU9zQwMDAwIHplcm8tZXhjbHVzaW9uLXByb29mLWF1ZGl0AHm5pHi4bBxtb51N8Tqj78MVnQ2ZNDAwMDAgemVyby1yZW1haW5kZXItY2FsbHMAOTAlzrrXQXyxb49b7Id95rV7jJk0MDAwMCB6ZXJvLXNhdmluZy1jZW50cmUtbW9tZW50AHlHU8wjl2yljraVO3z6GG4gBZRANDAwMDAgemVyby14b3ItcmV0dXJuAFgTv33W4ukfV1AdRSnOfqJZLcu7" + }, + "8bed1ecc75af648c4b5fbf888b902e89ea94de00": { + "kind": "tree", + "bytes": 663, + "base64": "MTAwNjQ0IElOREVQRU5ERU5ULVJFQUwuanNvbgBxA5lplpUhnI+60kgMX1ANU69zpTEwMDY0NCBJTkRFUEVOREVOVC1SRVZJRVcubWQAQksNDWcb1SDarNJBuYIiRFQJdpExMDA2NDQgSU5ERVBFTkRFTlQuanNvbgAP8tJoAyGzSo3lIlM3rnLAi6RBtDEwMDY0NCBNVVRBVElPTlMuanNvbgApLD5dxoU0MQYbg+i8r7KV4JCF6jEwMDY0NCBQUk9PRi5tZABpwzencEzliXmCaatLhgYYnAcMTjEwMDY0NCBSRUFETUUubWQA53GncLQqxFjDmgLjS7N1Mlv4AkoxMDA2NDQgUkVTVUxULmpzb24AaUKDodIpIg9417Wwi3i+rlogvTwxMDA2NDQgU09VUkNFLVBJTlMuanNvbgA0m5s9jMU71YS1WQkJ7AXVGHfC8jEwMDY0NCBTT1VSQ0VTLmpzb24AxiYEhEoXuHbLPiYLUyDHWSMHfNkxMDA2NDQgVEFTSy5qc29uAHGIpGAzCvKQHIAbeyEEyRLhxuFhMTAwNjQ0IFZFUklGWS5qc29uAPEMX8+5Za8yFrppyzzho7Ft7qqcMTAwNjQ0IGluZGVwZW5kZW50LnB5AHiUcOll7fOuBjgJ/k6aN07vMA0jMTAwNjQ0IGluZGVwZW5kZW50X3JlYWwucHkA1dxX3/kgAwilemK7hQ5hvVIgvmMxMDA2NDQgbXV0YXRpb25fY29udHJvbHMucHkATRWgm94uR2zVX0m+eU2Q9nMRdEY0MDAwMCBzb3VyY2UAFGTq9+v3tjMrlJPbKgYBeedoqsgxMDA2NDQgdmVyaWZ5LnB5AINEMXGzlwdOF1a5kWmANOggUyNg" + }, + "aa1dcd2b4b0a2d5c26940ad29e76603ef1827099": { + "kind": "tree", + "bytes": 382, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzACQ1v99jau9QZgS4y/bxFYqo+URxMTAwNjQ0IFBSLURSQUZULm1kAIvO1PJY0XaBsnrRDYu6fcukQbJlMTAwNjQ0IFJFQURNRS5tZAAKc2yonh6vtzow4fJYnMRea192wzEwMDY0NCBSRVNVTFQuanNvbgDmaznGdAKK39IvDeMXBVXczaUvajEwMDY0NCBTT1VSQ0VTLmpzb24A/PuoqjHisVvnq+shkcnjX6DXkZsxMDA2NDQgVEFTSy5qc29uAGdMjpK8jGuKP+pGBOeHlNmwC00aMTAwNjQ0IFZFTkRPUi5qc29uAGd2ILubFyINGHy2/ROB7M7977/IMTAwNjQ0IFZFUklGWS5qc29uAG9yQPEzELxpSCk0CCPafPDfOqVMNDAwMDAgdmVuZG9yAHI9eFVMs5iRIyG8zyCZUB58ripCMTAwNjQ0IHZlcmlmeS5weQBLJKUJYVRzbOBgR064xy3GTDA2mQ==" + }, + "93c3da5da0a527baf42dbbe76e7af010384def87": { + "kind": "tree", + "bytes": 599, + "base64": "MTAwNjQ0IENPTlRST0xMRVIuanNvbgBJovBnWBn53u6iftd74sK2/y6H5TEwMDY0NCBESVNDT1ZFUlkuanNvbgBT99ECj+xPgrXgLA9B0Sl6n7gqgDEwMDY0NCBGUk9OVElFUi5qc29uAJ4FtOAlcLgknsaYtmLNUhLbyD25MTAwNjQ0IE5BVElWRS5qc29uLmd6AAkQ90E43s9Jjn/ERcwtr/Q5AWnWMTAwNjQ0IFBBVENILmpzb24AUTBKZgEGHtTmmPkQsJE17xCVVeMxMDA2NDQgUFJPT0YubWQA5BEGAx2kH63np0GcF6MsG9mqEDsxMDA2NDQgUkVBRE1FLm1kAIyb1pzURb0F8Y/8+G1v61VtY0sUMTAwNjQ0IFJFUExBWS1MT0dTLmpzb24AOKfZUA4K3WCzOyU5PKAVfdHHhSsxMDA2NDQgUkVTVUxULmpzb24A7fQaSaA1CGLCM3j4N8c5f8XcdZYxMDA2NDQgU09VUkNFUy5qc29uAALo926rELoAmiJrvaOHNt4LvaE2MTAwNjQ0IFRBU0suanNvbgCqASOsPqE6UFTREJVZ5i/r0o+OfzEwMDY0NCBWQUxJREFUSU9OLm1kAN6h+xR5Ea1s6RaJFjCrtrlNuWBtMTAwNjQ0IFZFUklGWS5qc29uAHJY9QAMq87JywOFQf7zo4AHV2gDMTAwNjQ0IG5hdGl2ZV9qb2ludC5weQADFfgOL9714O7xPj6bj3IGYjgWTTEwMDY0NCB2ZXJpZnkucHkAAAbdFcpVl+36UGVZEk0s3zxJOuQ=" + }, + "74c4ba5ee249a16c2dfa2f82925166545463855a": { + "kind": "tree", + "bytes": 80, + "base64": "MTAwNjQ0IFJFQURNRS5tZAAVV7J1kmp3Hp/RO1vZ8/TTUacjxTQwMDAwIGJ1ZmZlci1ib3Jyb3dpbmcAm0r1mbVUCx3dRcheN6QoI+opOUg=" + }, + "9b4af599b5540b1ddd45c85e37a42823ea293948": { + "kind": "tree", + "bytes": 85, + "base64": "MTAwNjQ0IFNPVVJDRVMuanNvbgAun5s+0s3zOm75Fx2kDv9cj31wujEwMDY0NCB2ZXJpZnlfYnVmZmVycy5weQBaVQNOyeYYXZgeFsKOHi5FUGniyw==" + }, + "5eb7366e5276e445e0298498d2115d8302a17dee": { + "kind": "tree", + "bytes": 662, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAOEccrVfBuZI+askOwWyEPW9w6QgMTAwNjQ0IEFSSVRITUVUSUMuanNvbgBYA3g6Y4hMjFDPE1EBHfzd6wd4jjEwMDY0NCBQUk9GSUxFLmpzb24AH6jWXtzFZq3WKidoYQcB2RdlQzYxMDA2NDQgUFJPT0YubWQAIToLAGlh90cVCyKxIzECQSkqmbwxMDA2NDQgUkVTVUxULm1kALZEpZldLofegiLwdg0OAMj7QGpEMTAwNjQ0IFNFU1NJT04tVkVSSUZJQ0FUSU9OLmpzb24ARI2aWE69wASUJuZLwh1fe/Ge040xMDA2NDQgYWJzb2x1dGUtcGhhc2VzLmxvZwBGXLFvhH8H8+d4a0q3Rh/JP4psXjEwMDY0NCBpbmRlcGVuZGVudC1hdWRpdC5sb2cAuGG/KN/+kCie+fYhG7FIHUw8ifAxMDA2NDQgbmF0aXZlLmxvZwApsg0g9qWveWjeB5S6aHDJeyRzMjEwMDY0NCBwcmljZV9wcm9maWxlLnB5AB2T5D0cuIjRKML6or6DqW2FuEKVMTAwNjQ0IHJlZ2VuZXJhdGlvbi5sb2cAmakx2P8VqzILS5iQl9l69lILil4xMDA2NDQgcmV0YWluZWQtZGVwZW5kZW5jaWVzLmxvZwBSnhnSsiGn4d1Kuw/xwZ4kr211VjEwMDY0NCB1bmlmb3JtLWdhaW4ubG9nAMvYjAikwrm+olQ/+n/O5kJIMrsXMTAwNjQ0IHZlcmlmeV9yZXN1bHQucHkACtbO2px5Lu4sTC1WMNa7RQxlIRsxMDA2NDQgd2hvbGUtYXJpdGhtZXRpYy5sb2cATPM9ggMcSeDDSHb5NKmFOjw7xwo=" + }, + "665cbf769f1a354fc6d5f0472d838d6167db6052": { + "kind": "tree", + "bytes": 641, + "base64": "MTAwNjQ0IENMQUlNLmpzb24A9JC9osSPdUYdaOrNzyXS7bl1XdgxMDA2NDQgTElURVJBVFVSRS1BTkQtUFJPQkVTLm1kAKiqPUg3N8BLc6rfAD3VI/L/sZUfMTAwNjQ0IFJFQURNRS5tZADc0dblMubJftWolzhdSuiSQyQhFTEwMDY0NCBTT1VSQ0VTLmpzb24A+i8oal/auWUbqC1pqcYpnA+e/kUxMDA2NDQgVEFTSy5qc29uAFGrhZaFxUv1Iy6w5HvFH97nP9OvNDAwMDAgYXJjaGl0ZWN0dXJlAG0ACrCUc3y0fN2Y0HvQbRnRPdpSNDAwMDAgYml0ACGIOAbuNwIDWxeMZd77ta6X/cXFNDAwMDAgY29tcGxleADmrn+39u7hRltUmJ6TfwvICxw6djQwMDAwIGNvbnRyb2xsZXIAlEkTtKQDl1Z2NPlghMW3x8XbZ5ExMDA2NDQgZXh0ZW5kX2N1bXVsYXRpdmUucHkASChdczDmFQ0Eu2iMYPMs+F8CVvc0MDAwMCBwcm92ZW5hbmNlAL15ChF/dVLfgnMo/LQ2ceSsSlGfMTAwNjQ0IHJlY29yZF9jbGFpbS5weQCV+J6sNhmsU0pKRhCnLZHbuUie4zEwMDY0NCByZXBsYXlfY3JpdGljYWwucHkALiE46at50Yug3BlYywhzoi+Ula00MDAwMCB0cmFuc2Zlci1hdWRpdADJ6BYnh+DmrJ09qMWziPzajntf2DQwMDAwIHZlcmlmaWNhdGlvbgCzkjwZ0rL9xU747uB0WHRfR2aBzDEwMDY0NCB2ZXJpZnlfc2NvcGUucHkAe9FFDBcCK6c0ACESpCIest6XLtY=" + }, + "6d000ab094737cb47cdd98d07bd06d19d13dda52": { + "kind": "tree", + "bytes": 1527, + "base64": "MTAwNjQ0IEFHR1JFR0FURS1ILVBST0JFLmpzb24ArqhPuWG35fSea7DX8ljrZiq60FYxMDA2NDQgQVJUSUZBQ1QtTUFOSUZFU1QuanNvbgBuKUb4tapV3Q1S/46sRVb3YHiu1TEwMDY0NCBCRVNULVA0LVA1LVdJREUtU0VBUkNILmpzb24AHnKOCU8H+b1fTTmxJP+/diYKdmIxMDA2NDQgQ09OVFJPTExFUi1NRU5VLVNFQVJDSC5qc29uAC+bGGjfFfiDxfhF9dypmrzvNcvdMTAwNjQ0IENPTlRST0xMRVItUDYtVEFSSUZGLVNFQVJDSC5qc29uALwkI3yANAUeSwWdA8bqo/YcRuNzMTAwNjQ0IEZJTklURS1QUkVDT01QSUxBVElPTi5tZABLrbQPCRnFFYI8sH5ExkcNTWRpyjEwMDY0NCBGUkVFLUlOVk9MVVRJT04tV1JBUC1QUk9CRS5qc29uAF4gsQeMnjPCanNATgNRsEwTlwdBMTAwNjQ0IElERU5USVRZLU1JWEVELUNFUlRJRklDQVRFLmpzb24AviBG22okG+Ien3/gC8kR1ExCSmwxMDA2NDQgSURFTlRJVFktUFJFRklYLUNVVC1DRVJUSUZJQ0FURS5qc29uAPo2DNAsgpu7yPInlsu4Cog5yZXAMTAwNjQ0IEpPSU5ULUJPVU5EQVJZLVBST0JFLmpzb24ApuNS3jJf12Fxp7gAdvumuxRD2FwxMDA2NDQgTElURVJBVFVSRS5tZADKEHRytVYs40FPYmtqT3CsWbFN7DEwMDY0NCBNSVhFRC1GT1JFU1QtU0VBUkNILmpzb24ACo3B3qrqxRrp38YWyxcIBGcmaWwxMDA2NDQgTUlYRUQtRlJFU0gtR1JPVVAtU0VBUkNILmpzb24AVeKLvjyWIULxfLCX+BNE/VqdAJYxMDA2NDQgTUlYRUQtUFJFRklYLUdST1VQLVNFQVJDSC5qc29uADNj/aePiUvaJNfJYJSCLmhqnF3sMTAwNjQ0IE1JWEVELVRBUkdFVC1QUk9CRS5qc29uAKVaNS6HCz3D5Qyl+Mkx+NcSOLX3MTAwNjQ0IFAzLUNPTlRST0xMRVItVEFSSUZGLUNFUlRJRklDQVRFLmpzb24ARmAwfyjIZjkyBnic6ed2VFPBtJAxMDA2NDQgUDMtQ09OVFJPTExFUi1UQVJJRkYtU0VBUkNILmpzb24AZgk1Ts5orC6gCjNEGvUt2mHwVOcxMDA2NDQgUkVBRE1FLm1kAEyvOd0Gbushl2bNG/YiYmkeCia5MTAwNjQ0IFNJTkdMRS1GSUVMRC1QMy1UQVJJRkYtU0VBUkNILmpzb24A7td80T+jAy1WVp/4Lm35o+BknMwxMDA2NDQgU09VUkNFUy5qc29uABUDao+b075ds/gXvLpIk+gwVtoWMTAwNjQ0IGFnZ3JlZ2F0ZV9oX3Byb2JlLnB5ADbFYwwOEjbyBYA7iS2LnWNNGLurMTAwNjQ0IGNvbnRyb2xsZXJfbWVudV9zZWFyY2gucHkAQDtIQD5+FII2MiKRyDBcfUb5agoxMDA2NDQgY29udHJvbGxlcl90YXJpZmYucHkAIf5HmffZ258y8OktuK48HJJdy3YxMDA2NDQgZnJlZV9pbnZvbHV0aW9uX3dyYXBfcHJvYmUucHkApCMCMUC5x28+8tVwAYfp4YUuySQxMDA2NDQgaWRlbnRpdHlfbWl4ZWRfY2VydGlmaWNhdGUucHkA9LUbNY7/PMQ+ogBQPRbnt19nx7wxMDA2NDQgam9pbnRfYm91bmRhcnlfcHJvYmUucHkAQ/OtNpb6ZgXTLpPKTL0OtI2iq5MxMDA2NDQgbWl4ZWRfZm9yZXN0X3NlYXJjaC5weQCbUhO/PxZGZKNvgVknQIAfebPJfTEwMDY0NCBtaXhlZF90YXJnZXRfcHJvYmUucHkAT8BasIE4IYup8J5cibZJr658kU40MDAwMCBzb3VyY2VzABVpPWkeBSP358eucECy1uYdVaCj" + }, + "e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76": { + "kind": "tree", + "bytes": 740, + "base64": "MTAwNjQ0IEFSVElGQUNULU1BTklGRVNULmpzb24ANaJ6XTcRPDGRs6HwpalA7bLqgDUxMDA2NDQgQ09NUE9TSVRJT04tQ09OVFJBQ1RTLmpzb24Abdw3MrD8UlePvsmpGKQ6lxhGLIcxMDA2NDQgRlJBTUUtQ09OVEFDVC1JTkRFUEVOREVOVC1BVURJVC5qc29uAJ9RZBZu4ShkYvzjyNlZljgcCpFCMTAwNjQ0IEZVTEwtSURFTlRJVFkubWQA+Xoj19Ib1/ecnQyxTYxrRP3dPyMxMDA2NDQgUkVBRE1FLm1kAFoTfn8rfvKVPV/H/BJLqUYVwSw2MTAwNjQ0IGF1ZGl0X2ZyYW1lX2NvbnRhY3RzLnB5ABTG3jDRckO1cnhMUCTgLv6cXJ5CNDAwMDAgYmFsYW5jZWQtY2VydGlmaWNhdGVzANv1T/gLIInYtzy8boYswtZOeaHJMTAwNjQ0IGNvbXBvc2l0aW9uX2NvbnRyYWN0cy5weQAhChTp98zTqzba/W3BbXGBbVvhKDQwMDAwIGV4dGVuc2lvbi1jZXJ0aWZpY2F0ZXMAASJnKwmEqlqxkNZaGZ172hSs9lk0MDAwMCBmcmVzaC1jZXJ0aWZpY2F0ZXMASX4GISM+2oqfrQ3JDfmhcjHJdAY0MDAwMCBmdWxsLWlkZW50aXR5LWNlcnRpZmljYXRlcwA+9BEMhhb36VJFk7Xel4lCAv18aDEwMDY0NCBmdWxsX2lkZW50aXR5X3JlYnVpbGQucHkAfP+b/w9h6bOHreUSjf6rkmXv5tkxMDA2NDQgbmF0aXZlX2V4dGVuc2lvbnMucHkAf4SJTvwwlUapA9MUx6wUc+f1lKgxMDA2NDQgcG93ZXJfdHdvX2JhbGFuY2UucHkApVrgznihhhll+JmoJgSydiYPY2wxMDA2NDQgcmVidWlsZF9uYXRpdmUucHkAeKexsObkOhNH+zYfRcbg6v+N0ns=" + }, + "db06c76a46083783b675e5a5ce418c52a400d350": { + "kind": "tree", + "bytes": 1307, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAJOIm40/H9KatHLRHBoGPBIWPoLPMTAwNjQ0IC5naXRpZ25vcmUAWBe/uzjKNJSZ3sHHKrGnw2fh8nkxMDA2NDQgQUNUVUFMLVdPUkQtRlJFRVpFLmpzb24AY5B3fx1gChuR3OIb+8oc4iGa1vgxMDA2NDQgQUNUVUFMLVdPUkQuanNvbi5negBG2Snfg4F7haU4e825dF4GJ9Y2bjEwMDY0NCBBUklUSE1FVElDLmpzb24AyJ4AnKSlrTFsafA3HYhdcgRbpBUxMDA2NDQgQk9USC1DQU5ESURBVEUtV09SRC5qc29uLmd6AFCq7IsN3WmIWwUyQsjR42Jf/Z89MTAwNjQ0IEJPVEgtQ0FORElEQVRFLmpzb24A45UHTi4NRApgsXZejWdevYF7FT4xMDA2NDQgQk9USC1NSUxQLU9QYWxsLmpzb24A45UHTi4NRApgsXZejWdevYF7FT4xMDA2NDQgQ0FORElEQVRFLVdPUkQuanNvbi5negDVD6itnbICQeQtLVNFRY2e/PtmHjEwMDY0NCBDQU5ESURBVEUuanNvbgBjNwY3wENWf3Q5yGGztApMCWnLpzEwMDY0NCBDT01CSU5FNjIxLVNDUkVFTi5qc29uAMAAdtbrZ4ODIvjpYC/C4J5dB/6BMTAwNjQ0IE1JTFAtT1A0Ny5qc29uAJ7xNKUFb28YvFaH51rn5PFLCnpPMTAwNjQ0IE1JTFAtT1BhbGwuanNvbgBjNwY3wENWf3Q5yGGztApMCWnLpzEwMDY0NCBOQVRJVkUtVkFMSURBVElPTi5qc29uANii4KkV7c5oz+dHK5S7h9+53CTAMTAwNjQ0IFBBVENILmpzb24Adj1lITZpMRha0+XpzwR74SQocUoxMDA2NDQgUEhBU0UtVkFMSURBVElPTi5qc29uLmd6AKx3t4VH1tvy5r0QLhBHxbFsG8qIMTAwNjQ0IFBST09GLm1kAJfx0ZrUI/5VQMwphvtRrySiUdV8MTAwNjQ0IFJFQURNRS5tZADkwY6gkm4FAubc5jehWhBMzPBWJDEwMDY0NCBTT1VSQ0VTLmpzb24ATmCosKXM1LgWelL+tg+74BUJFkoxMDA2NDQgYm90aF9ib3VuZGFyeV9taWxwLnB5ALlUOIgV2Pe74Z7nVx8rsDqaIW5lMTAwNjQ0IGNvbWJpbmVfNjIxLnB5AD9/Pd2+HN2m9La4rY9oE+UqPnDUMTAwNjQ0IGNvbnN0cmFpbmVkX21hcC5weQCyEqLNkgRMZejmrG0FzRK/DuffmzEwMDY0NCBmcmVlemVfY2FuZGlkYXRlLnB5ALgH9qiI+46CLvkxT4DYtOoTAh5IMTAwNjQ0IGhlbHBlcl9saW5lX21pbHAucHkAxXMEJikXuKBWUHxCDhrJUU/qvAoxMDA2NDQgaW5zcGVjdF9vY2N1cnJlbmNlcy5weQBbfrwhr+Az99XIyM1O82sI1IvaODEwMDY0NCBsaW5lX2ZyZWVfbWlscC5weQCruZiH9qYUyPE4RdJj6L4upIgVWTEwMDY0NCBwaGFzZV9jaGVjay5weQCf2//BTt+Kq6zlNmw5QeeDgfYYYjEwMDY0NCByZWdlbmVyYXRlLnB5AKQQjxTyubToNAc3+ur/Nynxde6FMTAwNjQ0IHZlcmlmeV9jYW5kaWRhdGUucHkADpz/a9r1YrQuu4X9eECZ4J88LX0=" + }, + "33bac32f5e5cef7bfd90295ddaf387a692c0b13b": { + "kind": "tree", + "bytes": 1264, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAKeS92Qt9jvKcYtMnmaK/K1aBWIGMTAwNjQ0IC5naXRpZ25vcmUA3QuQdMidLc0gSG1HoJRHyWPxc3oxMDA2NDQgQVJJVEhNRVRJQy1TT1VSQ0UtUEFUQ0guanNvbgBEDcxxlQ0o5IDPXw5IrMq7kD6khjEwMDY0NCBBUklUSE1FVElDLVRSQU5TQ1JJUFRJT04uanNvbgDYU4KGziW2Np6AslEMdPC56o99zTEwMDY0NCBBUklUSE1FVElDLmpzb24AD9tl+UbVV8E9jieBuRUeKo3e5cMxMDA2NDQgTEVBTi1WRVJJRklDQVRJT04uanNvbgAhSQzNQDXct4PzcM9nOScf3mvUdTEwMDY0NCBQTEFOLm1kAOOxpzgliEf/rXzXUA00FTccLrgfMTAwNjQ0IFBST09GLVNPVVJDRVMuanNvbgDXs/mJgTEWLWFM2GDvwC4HLCrEBzEwMDY0NCBQVUJMSUNBVElPTi5qc29uAP38Z2oVbxmOSrivEQ80Uuin/D2XMTAwNjQ0IFJFQURNRS5tZABvgi8zzFwpqf5KLKQxK3rL+9AR4zEwMDY0NCBUaWdodGVuZWRBcml0aG1ldGljLmxlYW4AzMd9X6KlxQC/Mz4mKmVMiOB4AncxMDA2NDQgVGlnaHRlbmVkQXJpdGhtZXRpYy5sb2cADBoPvh//7k8hlSwKqi5At6SxG1gxMDA2NDQgVGlnaHRlbmVkQ2FwYWNpdHkubGVhbgCCCPx3eXk4aHTq0avKZAv2H4jXGDEwMDY0NCBUaWdodGVuZWRDYXBhY2l0eS5sb2cAqoosAnLOuoCS/OSD/PasvL0CbIcxMDA2NDQgVGlnaHRlbmVkTnVtZXJpY2FsLmxlYW4A95lKZyQj8YaXztfBekOq0Rx11QYxMDA2NDQgVGlnaHRlbmVkTnVtZXJpY2FsLmxvZwC5ZW26qm22DgDJpLfd95eBo58yvDEwMDY0NCBUaWdodGVuZWRWZXJpZmljYXRpb24ubGVhbgBflX36niTm42ej5YVtCdXxyCp9CTEwMDY0NCBUaWdodGVuZWRWZXJpZmljYXRpb24ubG9nAM38i9AqOGjnyEGah096QVulVUr4MTAwNjQ0IGFyaXRobWV0aWMtZ2VuZXJhdGlvbi5sb2cAIpvzdlD8xxGHqcUbhFpMlNKTMmgxMDA2NDQgYXJpdGhtZXRpYy5weQASr2qpN3+gq4TUhaN98P5Z6QfgPDQwMDAwIGF1ZGl0AEuY5JEbpNDoxIdg7Hd85IuasR6mMTAwNjQ0IGNoZWNrX2J1bmRsZS5weQAHmzPjnhVdZYEFxDDql+L1PCwRRDEwMDY0NCBnZW5lcmF0ZV9hcml0aG1ldGljLnB5ACy/eXMudWZP8w+MsUeqHW/zkYeWMTAwNjQ0IG51bWVyaWNhbF9nZW5lcmF0ZS1vdXRwdXQuanNvbgCATjhWchO4Ah7NS8cytZzT+oBtsTEwMDY0NCBudW1lcmljYWxfZ2VuZXJhdGUucHkAwh/DSRxq9tz0PihvqTAX3Eijv8gxMDA2NDQgcHJlcGFyZS5weQA8aEEunOUip4nzTdrlPvOV951FQDEwMDY0NCB2ZXJpZnlfbGVhbi5weQC2kATIV52G83ymTaLHZMClbxjtrw==" + }, + "3e58974508669b0b52f53c56371b5f9c253ece4b": { + "kind": "tree", + "bytes": 797, + "base64": "MTAwNjQ0IEVORFBPSU5ULm1kAIZnSC9jCGcJClfpyHCSXNQRtxg4MTAwNjQ0IEVYUE9SVEVELVNPVVJDRVMuanNvbgBDmgbpvL9E/Hsela4uAF4MIdDBWzEwMDY0NCBGT0xMT1dVUC5qc29uAA71cApwILQ9lK2y4bInVTuoBpXqMTAwNjQ0IEZPTExPV1VQLm1kAGDkrpyBaslY0cfcNZGXx2lP4Ee6MTAwNjQ0IE5BVElWRS5tZAA5TZoDwWUzbRz7zUGSHJN0EEI5OzEwMDY0NCBQNy1GQUNUT1IuanNvbgAEx+9iDnYMyPF2S78MzX8yxqW9hjEwMDY0NCBSRUFETUUubWQADtvDoQEkuZ194U/vJWGDFoIjo3sxMDA2NDQgUkVTVUxULmpzb24A67MKmzuU+xWaMWNQ99pXveSjDCUxMDA2NDQgU09VUkNFUy5qc29uAPz7qKox4rFb56vrIZHJ41+g15GbMTAwNjQ0IFRBU0suanNvbgCwKlroGyxIz6I0xwrXJBpFCDWcdDEwMDY0NCBURU5TT1IubWQAjs/T5NC8tEnsseFQxPH0+7OcplYxMDA2NDQgVkVSSUZZLmpzb24AsAzhMtq+vgrRqgnGJqcxIDKle7Y0MDAwMCBkZXBlbmRlbmNpZXMApFv5tRY5klqX4m6cvZhwRLWIs4MxMDA2NDQgZW5kcG9pbnQucHkAMtJIIbBOglDxGRuF0U3Zc+J3LBYxMDA2NDQgZmFjdG9yX3JlY2VpcHQucHkA4XEzuB4ouxMxIlJs0oVBj4ZgvesxMDA2NDQgbmF0aXZlX2ludmVudG9yeS5weQCNLZbjmYJUwjM8Q/5Hzf0HTL2BHjEwMDY0NCBzY2FuLnB5ALrmTwtmn2loPdw+dmAkW9f324VANDAwMDAgc291cmNlAHTnxYWn88hTopJ6UCjbN5rIa0o0MTAwNjQ0IHN0cmljdGlmaWNhdGlvbi5weQCpbJhVNSpiUkMK7kKHESxHFIxP9zEwMDY0NCB2ZXJpZnkucHkA5JHknVpYVSbogWX2eJHp1hujUVQ=" + }, + "a45bf9b51639925a97e26e9cbd987044b588b383": { + "kind": "tree", + "bytes": 91, + "base64": "NDAwMDAgY29tcGlsZXItcmVmaWxsAKGXIFVQ988vtORzAfPaxvb3k5taNDAwMDAgdGVuc29yLXN0cmljdGlmaWNhdGlvbgDTYPJcESQZAZ9NGyzZdHu34Okx+Q==" + }, + "a197205550f7cf2fb4e47301f3dac6f6f7939b5a": { + "kind": "tree", + "bytes": 84, + "base64": "MTAwNjQ0IGVuZHBvaW50LnB5ADQOHw/7ihqcOPu9kRlYC20j4BtZMTAwNjQ0IHRlbXBsYXRlX2JvdW5kLnB5AN3IUsT6K7BzmvAc2sbdZeDASfdW" + }, + "368780035287bad0b8e9cd1a9f7da73223dfa456": { + "kind": "tree", + "bytes": 445, + "base64": "MTAwNjQ0IEJJVC1DT05UUk9MTEVSLmpzb24AicQA1ZcAJLPevocMNs5DiJvu0AExMDA2NDQgQ09NUExFWC1DT05UUk9MTEVSLmpzb24AOTGPatm68IOKJ0yhBCseO6DnS/kxMDA2NDQgUFJPT0YubWQAkGj0KYlhEggmZEVasAurCDyZ0dgxMDA2NDQgUkVBRE1FLm1kAG0QmemlTFLan+T1OKbeoxkjuKAcMTAwNjQ0IFJFU1VMVC5qc29uAOBpUVLJjXJ+39DSA0tYocfoaCwMMTAwNjQ0IFNPVVJDRVMuanNvbgAPBhyH/4fEP/HqD8QYWC6czqO8HTEwMDY0NCBUQVNLLmpzb24A67pJoJx2OWWBvURlgTHAhl4eOh0xMDA2NDQgVkFMSURBVElPTi5tZACOlZjs55KtakoSlPHJK0WPVlxQpzEwMDY0NCBWRVJJRlkuanNvbgB2iq1taOFyUx7SoOpguSCZ1kO+AzEwMDY0NCBjb250cm9sbGVyLnB5ANRVfgjPuf5XzBrkAkcFpy3JXzWDMTAwNjQ0IHZlcmlmeS5weQDxEUA2//ZvVwFOXBJWFB+3j/TEqQ==" + }, + "4bd6efa51a495a7c7b7754915cf0244e7e60969e": { + "kind": "commit", + "bytes": 341, + "base64": "dHJlZSA3Yzg4MTgxNzhiMDU3MzNiNWQwOWE2ZGVjYzM0ZDUzYjg0ZmRjMjEzCnBhcmVudCAxZWMxMTE5OTcyYzlhZWZlNDI1MjUxNzJkMDdiMzMyZmNmZjgxY2I0CmF1dGhvciBBbGkgUm9tbWFuIDwyMjY4NzczMzcrYWxpcm9tbWFuQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4gMTc5Mjc4ODU0NSAtMDUwMApjb21taXR0ZXIgQWxpIFJvbW1hbiA8MjI2ODc3MzM3K2FsaXJvbW1hbkB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+IDE3OTI3ODg1NDUgLTA1MDAKClJlc2VhcmNoOiBlaWdodCBqb2ludCBoZWxwZXIgcmVsYXRpb25zIGltcHJvdmUgY29uZGl0aW9uYWwga2FwcGEgdG8gMC4wMDMwMjY2Ngo=" + }, + "7c8818178b05733b5d09a6decc34d53b84fdc213": { + "kind": "tree", + "bytes": 969, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzAP9s+hjrGHqk/wQ4sDx2urOjeOUZNDAwMDAgLmdpdGh1YgDFVqeGTx2rA2PiOhpE+GgliOwfdjEwMDY0NCAuZ2l0aWdub3JlAAxe+/HUWqdKo4X1hrBTxw4XCoMkMTAwNjQ0IEFHRU5UUy5tZACupVc9G2XO99ngjO1G2GnnXagUWzEwMDY0NCBDSVRBVElPTi5jZmYA2A9rhmDWyqqCyxlPwi0IF9ZC0EMxMDA2NDQgQ09OVFJJQlVUSU5HLm1kAP5U8j8ZsIKp+N89qbLiBffiMKzzMTAwNjQ0IENPTlRSSUJVVE9SUy5tZACeT8VVOPITLO3KyJNjiS8KH1BQZzEwMDY0NCBMSUNFTlNFACYe656fiytLDRGTZt2pnG/X01xkMTAwNjQ0IE1ha2VmaWxlAHFwhBqtabk6reiSRWDgTtfie5VWMTAwNjQ0IE5PVElDRQBZ2ODPMQLhW9EdtDCDg2VTHi1/GDEwMDY0NCBQQVRDSElORy5tZACgLiMCVrlZJBa4jA8zLfbxxMZNUTEwMDY0NCBSRUFETUUubWQAl/fqkXvPmStgBsb/phXI7gBgDU4xMDA2NDQgU09VUkNFUy5qc29uANOR/BBmaeIoXYZgAIp9XYrM+rb/NDAwMDAgYXJ0aWZhY3RzAH1xehYTIN883i0WIrYNqiDacVN/MTAwNjQ0IGF1dG9yZXNlYXJjaC5tZAAv6Ep7MLHibmDODsR3WJTrGDHF1jQwMDAwIGNlcnRpZmljYXRlcwCSvSgaJ0GRJC8YNUT166skt/YRJzQwMDAwIGRvY3MAJYqqh27LUwxMFzyOPvk8z4fIFnM0MDAwMCBmb3JtYWwAcRgvjgdslCM1X93qv0UbDK3oxa40MDAwMCBtdWx0aXRhcGUtb3JpZ2luLXJldHVybgDsWA2gJBrTevnqTkHd3N3Fhx6zhDQwMDAwIG5vdGVzACJq93deUetstz9oSViWj3cuFOZjNDAwMDAgcGF0Y2hlcwCUv/pZg/3pj+XV4/WMSMPsYbKkTzQwMDAwIHJlZmVyZW5jZXMA5N7hHbn8OUTOd9ezLdHDrSLRGsA0MDAwMCByZXNlYXJjaACzq+GmP4C0U6EYI9cMg2uRmefFVjQwMDAwIHNjcmlwdHMAaBri6Iyu9jVhvuQLwaaRbLozXws0MDAwMCB0ZXN0cwAz/HuAfenor2M+8cRFovHB9YBqBDQwMDAwIHVwc3RyZWFtAORNOWIbWOKzUfkQe5+hcNao1P4c" + }, + "b3abe1a63f80b453a11823d70c836b9199e7c556": { + "kind": "tree", + "bytes": 219675, + "base64": "MTAwNjQ0IC5naXRhdHRyaWJ1dGVzALWAbDWMZij/xmJq7eL+KTUz9etuNDAwMDAgYTE4NTgtc3VjY2Vzc29yLWZyYW1lLWNsaW1icwCyCU3OzP9ZiH4ggM/oA2ZbgXkpzDQwMDAwIGEyLWU2LW5pbmUtbm9ybWFsLWZsb29yAFbZFMExnEYwotY2pRpOq4nmQIUwNDAwMDAgYTItZmFtaWx5LWItbG9jdXMAkQPIVTYOkRIM7NJocgGBHUvMvfE0MDAwMCBhMi1mYW1pbHktZGVjb2Rlci1mbG9vcnMA5XIkT0GOgasw8RnFyGpuobucQrg0MDAwMCBhMy1kNS1kZWNvZGVyLWZsb29yAFMgrw0/hFUn5yrdBAbMZafsGiheNDAwMDAgYTQtY29tbXV0YXRvci1mb3VyLXJvbGUtc2VlZC1kY2JmABy029eKEi/O7aJ4GoFaFz3HQoVyNDAwMDAgYTQtZGlydHktd29ya3NwYWNlLW1pbmltdW0AVkbvs3iivre54O4Azdbjgr8683I0MDAwMCBhNC1zZXZlbi1jYWxsLXJhZGljYWwtcmFuawA7bLDAl1wDRn4E3eA22RZJ+TsHbjQwMDAwIGE1LWFmZmluZS1hZGRyZXNzLW1pbmltdW0AX6EdvFrJUbLOYTyWH6Tdv9CKVsU0MDAwMCBhNS1jb25qdWdhdGUtNWN5Y2xlLXNlZWRkMzE2ZjgALek3S7lAAKVvrvfKnco0+2IUlC00MDAwMCBhNS1jb25qdWdhdGUtYW55LXJlZ2lzdGVycwCBn/vjTUcUySTiDibz3Gd966nwuzQwMDAwIGE1LWVpZ2h0LWJpdC1jYXJyaWVyAEnJminxDGhuAe4/uOo9LUP3K+uwNDAwMDAgYTctYTEtZGVjb2Rlci1mbG9vcgAfppI2PYoS4VjYr22hMdcXM7soRTQwMDAwIGE3LWExLW5vbmxpbmVhci1jb3B5LWZsb29yAH63doHjL7Y7V9ZMp/xhSeR/Bsg3NDAwMDAgYTctYTEtcHVuY3R1cmUtb3B0aW11bQBT7n+Sc4YCwPgtIF18aunJqEJFoTQwMDAwIGE4LW9uZS1wYWlyLWZyYW1lLWZsb29yALiTy/BiXrpe/tWl2P0JVDjaDOVPNDAwMDAgYTgtcDExMi1kZWNvZGVyLXNjcmVlbgBxo9FPGEIBdGVRR5ua2C319Drh2jQwMDAwIGE4LXAxMTItZmFuby1mcmFtZS1mbG9vcgDbmp+Du2bcyxfB+A0rkYzaV/2tATQwMDAwIGE4LXNpbXBsZXgtZGVjb2Rlci1mbG9vcgA86MNYi6cCb8nIsAGq8zLxNhiJJTQwMDAwIGFiZWxpYW4tY2F5bGV5LW1ldHJpYy1zY29wZQBJOnlqJegCQigOhdjGD+oK69YOhTQwMDAwIGFjdHVhbC1ib2R5LWZpdC1jdXRvZmYAb2vgRAYCRXfakP4+xi/uKy2sGN80MDAwMCBhY3R1YWwtY2VudHJlMC1zb3VyY2UtYXVkaXQAq59jcycU5QU9gOPz4XiygYzgzaA0MDAwMCBhY3R1YWwtcXVlcnktaW5mb3JtYXRpb24tYm91bmRzANGh1le+IvXJ9/Wo+MG/i5SgWU67NDAwMDAgYWRhcHRpdmUtY2FuY2VsbGF0aW9uLWF1ZGl0AI68ThkF3LEAvxYiSV8aFtVEO07zNDAwMDAgYWRhcHRpdmUtY2hyb25vbG9naWNhbC1iYXRjaGluZwAuUpbObB4P/DJDjyC1bFcIZ+cDFjQwMDAwIGFkYXB0aXZlLWdhdGUtZXhpc3RlbmNlACxf1PHV1E6rwcB8zsXSMTerOUDLNDAwMDAgYWRhcHRpdmUtZ3JpZC1pbmplY3Rpdml0eS1hdWRpdAC91TP0uhrdPcSR+knaeHkQ5u0wLzQwMDAwIGFkYXB0aXZlLWtlcm5lbC1kZW1vdGlvbgDkzX+sakDsBp0+YXdbTk7Wkns3HzQwMDAwIGFkYXB0aXZlLXRhaWwtZW50cm9weQA3kFqZvAbagODPpSIpPSYpGwmURDQwMDAwIGFkYXB0aXZlLXdpdG5lc3MtcmV0dW5lAIYFBomfSkOy/a7j6JFmcn2t4YAbNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3Rvci12YWxpZGF0aW9uADguSsvLIiKZTZXVqsMlbnSU9nfmNDAwMDAgYWRkaXRpdmUtY3ljbGljLW5vLWNvbm5lY3RvcgAoyIqVTDbOGDbCIAOpEocmLevoHTQwMDAwIGFkZHJlc3Mtb3BlcmF0b3ItY29tcG9zaXRpb24AyoCWjavDPdVg9fSEiBivMKz0bNc0MDAwMCBhZG1pc3Npb24tY29uc3RhbnQtZGVyaXZhdGlvbgC2NEhY2qnXB9E/YBtStOuwhDxgYjQwMDAwIGFmZmluZS1ib3gtaW52ZXJzZS1wcmVjaXNpb24AwtkhQinHRcNyF/Uk5JxmQUFpIgg0MDAwMCBhZmZpbmUtY2VudHJlLWFjY2VzcwCNJazWReZPXvTyhvcvF17Jr4roUTQwMDAwIGFmZmluZS1sYXR0aWNlLWludmVyc2UtcHJlY2lzaW9uAEGGDqK+/SuMrOG+akHD0HrnzYwZNDAwMDAgYWZmaW5lLW1peGVkLWZvdXItdGFyZ2V0cy1zZWVkNTYzOACdfSIwOA+KbV5SbwHFetdc+SUQvTQwMDAwIGFnZW50LTA3LXZlcmlmZW5nLXNlZWQ4OACNhWSWG4g7b86j3+sA1WqYZ69paTQwMDAwIGFnZ3JlZ2F0ZS1wYWRkaW5nLXRhcGVzAIoCrrKAlTQWCOojZnQtgnkBR9jHNDAwMDAgYWxsLWZpZWxkLWlkZW50aXR5LXNjaHVyAOFD69+v5oqYVQDJS6myjrMmw+7yNDAwMDAgYWxsLWZpZWxkLXMzLXNob3J0ZXN0LXJpZ2lkaXR5AAviu9Lbul9+8Uj5Zm7TuLE/sUdYNDAwMDAgYWx0ZXJuYXRpbmctc2hlYXItZXhjaGFuZ2UAXHTHfD1dFTRNbH37hns6xM2uJXo0MDAwMCBhbHRlcm5hdGlvbi1sZW1tYQBhVClbVZS8p39U+bSjHNo+Hb7R3DQwMDAwIGFudGljaXBhdG9yeS1kaXJ0eS1ib3Jyb3dpbmcAIPIukJH/3xm72Pe4ic1NOqMeINs0MDAwMCBhbnRpY2lwYXRvcnktbGVuZGVyLWNsZWFudXAAYz3j8krJrTTC5u4whrkvwzDKT3E0MDAwMCBhbnRpZmFuby1zdWJzcGFjZS1hdWRpdABsdMicdF0LLu7FuGW5PsUIIuCv0zQwMDAwIGFudGlmYW5vLXRpZWQtbWluLWNvc3QxMi1zZWVkMjJhZTFmOTUANu144SGuTx+iziDUcepm66PYofc0MDAwMCBhbnRpcG9kYWwtc3Bpbm9yLWxwLW9wdGltdW0APHYbrDU6gFwlU//c/1ty2NqQUbw0MDAwMCBhcGhhc2UtcmVzaWR1ZS1jb21wb3NpdGlvbgATBo2ehtaQmukQl9QxHtSF2hAOzjQwMDAwIGFyYml0cmFyeS1waXZvdC1zY2h1ci1taW5pbXVtAPwR/JMcQNCXFDhW3kXgUsPJ9olvNDAwMDAgYXJjaGl0ZWN0dXJlLW5pbmUAeMxu7YdI4fTqnCI5FZXauDtVHBE0MDAwMCBhcmNoaXZlLTI5NzktcmVjZWlwdABoRovpa1+sZx82r5X9cikaJPzP7zQwMDAwIGFyY2hpdmUtMjk4MC0yOTgxLXJlY2VpcHQADEKXHgVcwFRiSLgWC31hW3GGkSk0MDAwMCBhc3RyYS11bHRyYS1ob3N0aW5nLTIwMjYxMDEzAKnJHENyaQmlvQrxlmlY8NqQxb4cNDAwMDAgYXN5bW1ldHJpYy1oeXBlcmN1YmUtZGVjb2RlcgD2a7WMQ/6B8V/4I/DRuCS1MFi6+zQwMDAwIGFzeW5jLWludmVudG9yeS1yZWNvbmNpbGlhdGlvbgAOK9ZbHK5n3D5RQ3X4Bo+XjtcYhzQwMDAwIGF0bGFzLWZyb250aWVyLWFwcGxpY2F0aW9ucwAio6ZHqU/mmFcgBFztYzx7wUJ4LjQwMDAwIGF0b21pYy10cmlvLWNvbm5lY3RvcgCr2b/ZZjhUZPcbsj0HhmfxVsKDUTQwMDAwIGF1ZGl0LWFsbGNvbGQtZmFzdC1jb3B5ANg40Jdu4Ze5lo84J1QtgNNKb8iONDAwMDAgYXVkaXQtZnJvbnRpZXI4OTAtZW5kcG9pbnQtc2VlZDczAEzG1gyrAub/jP22jPwaRzKhehjUNDAwMDAgYXVkaXQtaGVscGVyLWVuZHBvaW50LWluZGljZXMAAwbXRnwh+6iLg4n2i+hPsTNYLFQ0MDAwMCBhdWRpdC1rYXBwYS1mbG9vci1zZWVkNjcAQLSCn+w6t0HvKVjTdGxTqpNvG0c0MDAwMCBhdWRpdC1sb2NhbC1jdXQtY2VudHJlLWd1YXJkAH4zDWpjbEj1ISJMG67ElFfsaSX9NDAwMDAgYXV4aWxpYXJ5LXNwYW4tc2l4LWN5Y2xpYy1saW5lAK2g2KtJFs4vjBx8vuFLsv5ItpTpNDAwMDAgYXV4aWxpYXJ5LXNwYW4tc2l4LWZsYWcAv0HlBGsfvWFaeUDnN1Jrf4bZTCE0MDAwMCBhdmVyYWdlZC1jeWNsb3RvbWljLWhlaWdodC12YWxpZGF0aW9uAB3NfmFm/W4a4+/wdlpepW4xuEtWNDAwMDAgYXZlcmFnZWQtY3ljbG90b21pYy1oZWlnaHQAWEsWK4bxqTvA5stom3JJ4kmoFVY0MDAwMCBheGlzLXB1bmN0dXJlZC1yb290LWNvZGUtZmxvb3IA08hIxfIy0bAc6eWQsFZO23L+Vjo0MDAwMCBiMi1tYXMtZWRnZS1mb3JtLXNlZWQzNjA5MjQ5ZACdPTV5aHYiNXnTRkjorz+RO0pm3TQwMDAwIGIyLXRyaXBhcnRpdGUtZWRnZS1jb3VudGVyZXhhbXBsZQAyRimHDulym8AI9yWbhY90E0RVUjQwMDAwIGJhbGFuY2VkLWN5Y2xpYy1saWZ0ABeeOZYS0CQ6k3k3PX8UoD1MuWzENDAwMDAgYmFsYW5jZWQtZGVzY3JpcHRvci10cmF2ZWwA+bhR85l13rk3wmO2HhEa/YfKMMU0MDAwMCBiYWxhbmNlZC1mYW5vLXBlcmZvcm1hbmNlAH4Taphf3ZT7sMuwDb28m6w5524ONDAwMDAgYmFsYW5jZWQtZ2F1c3NpYW4tZW52ZWxvcGUAMbyogo0SWL4dYH4LmlJQVsjWeP00MDAwMCBiYWxhbmNlZC1udWxsaXR5LWJhbmtzLTE2MwCeiiKYdwxuZ9ftN7b0Ghkgy9H41DQwMDAwIGJhc2lzLWdhcC1taW5pbXVtAOiWPC/6bs7t9tIhqRKB+HflbJReNDAwMDAgYmF0Y2gtd2lkdGgtcmVjb3VudACYPN2+6NXWieC2+x5K5dZ87Bth1TQwMDAwIGJhdGNoZWQtbW9tZW50LXRocmVzaG9sZADet04Iy/sNTubX7pm/22G5CtMabTQwMDAwIGJhdGNoZWQtc3BhY2VkLWxpZnRpbmcAZiSnySUiLmcceiqsrUEgQsnJYLI0MDAwMCBiYy1kZW5zZS1yb290LWNvZGUtZmxvb3IAz7x2anFBhN8kROYg8PwDxCzijjs0MDAwMCBiaWRpcmVjdGlvbmFsLWNvbm5lY3RvcgBxsODgXcu+N6RwiqC5q5BOmPstYDQwMDAwIGJpZGlyZWN0aW9uYWwtZml2ZS1zb3VyY2UtY29ubmVjdG9yAHnTEV7TyUOi7Sxb2lYhs5IZdo/INDAwMDAgYmlkaXJlY3Rpb25hbC1mb3VyLXNoZWFyLXJpZ2lkaXR5AI0eMmivtQGZx6swF5mEM/rGYtaSNDAwMDAgYmlkaXJlY3Rpb25hbC1yb290LW9ic3RydWN0aW9uLXNlZWQ1MABmSkRHkiqm/0YwcT3w50L6qbAGuTQwMDAwIGJpZnJhbWUtZGVjb2Rlci1sYWRkZXIAA6+lkVgdCLXvXNKFFISw2pNNMZo0MDAwMCBiaW5hcnktYWRkLWNvc3QtYXVkaXQA9TNd/ij4fW3YUk0olVR6JUfRnVY0MDAwMCBiaW5hcnktYWZmaW5lLXJlZ2lzdGVyLWJvdW5kAF5uNjSELFC8ZZD4WnBsHFUXPr0gNDAwMDAgYmluYXJ5LWNoYXJhY3Rlci1yZW1haW5kZXItZ2FwAOaIOKCTKqZZC3w19/fasU6j8TfXNDAwMDAgYmluYXJ5LWNvbm5lY3Rvci13YWxrAKXVyKwfk7pnry6HI8Pvcl9k1m0BNDAwMDAgYmluYXJ5LWRpZ2l0LWNvc3QtYXVkaXQAY3PdiEE3q9FK1JH2VE8/n3O8NUI0MDAwMCBiaW5hcnktZWxlbWVudGFyeS1pbnRlcmNoYW5nZQByulBeAzpmwZPTomxx5Wdigl9ZwjQwMDAwIGJpbmFyeS1nbDItd2lkdGgtb25lLW1pbmltYQA2AiqGMj65xR8ub+JvccrKL3urGjQwMDAwIGJpbmFyeS1wcm9qZWN0b3Itc2hhcnBuZXNzANcT9gStduEcaeJmjsQ5P7H1gLotNDAwMDAgYmluYXJ5LXJlc2lkdWFsLWV4aGF1c3RpdmUAyw4XvcctooQBqsF0s6Ti1/TdNoE0MDAwMCBiaW5hcnktc2NodXItbWluaW1hbC1kaW1lbnNpb24AE8Ne49XuEGj7ej2Uz2/sSppT4340MDAwMCBiaW5hcnktc3BlY3RhdG9yLWNvbXBsZXRpb24A8HjUAypY4tWPEUNrJNmGVENRrS00MDAwMCBiaW5hcnktc3RyZWFtLWZhaXRoZnVsbmVzcwCus701KcAuPEu3C2jyxGe+AEzc9jQwMDAwIGJpbmFyeS10aHJlc2hvbGQtZml2ZS1oZWFkZXJzACxKC6rToc2/1x2WNivjl0+d5FkfNDAwMDAgYmlwYXJ0aXRlLXF1ZXJ5LWNhcGFjaXR5AEDEmKoryCms9/htwUjNpgu+CU/7NDAwMDAgYml0LWFkZHJlc3MtdHdpc3QtcmVnaXN0ZXItZmxvb3IABKzdzhbDFLwsnWACqQ5AuQWjU/40MDAwMCBiaXQtYWRkcmVzcy10d2lzdC1zZWNvbmQtb3JkZXIAizrHRNFVXVNhDKeXD5BkwQHkkfw0MDAwMCBiaXQtYWZmaW5lLWdlbmVyYXRvci1zaGFyaW5nAO5l7mx/CxGvsFOFF7MFg703C5HiNDAwMDAgYml0LWFmZmluZS1taXhlZC10YXJnZXQtdHJpcGxlLXNlZWQ4MThkYmYAn49d4jFV1OOC93QqMD4Naa5JJSQ0MDAwMCBiaXQtYm91bmRhcnktcGVyc2lzdGVuY2UA4L6ISXYymUCLGzh7suyqZegqtWA0MDAwMCBiaXQtYzQtcm9vdC1saWZ0LXNlZWRjYTQ2YmMARVdFMpW3Mj8XtiaeCMEnoUhy7W00MDAwMCBiaXQtY2Fycmllci1vd25lci1hZG1pc3Npb24Ag1xBwE8ws15XARdLzI0g1pMQp+w0MDAwMCBiaXQtY2xlYW4tYW5jaWxsYS1yZWdpc3RlcnMAzURaoGEQ7N+IvVDkSjznoTLQAco0MDAwMCBiaXQtY2xlYW4tZXh0cmEtcmVnaXN0ZXIA6sYnpUPS0DpYoZnNP9mVeLKw1Pc0MDAwMCBiaXQtY2xlYW4td29ya3NwYWNlLWNvbXByZXNzaW9uAOt8wjujyiJoI4o+zRYUPvjEeF9xNDAwMDAgYml0LWNsZWFudXAtZnJhbWUtb2JzdHJ1Y3Rpb24As+cjvtEbvEmuXwSRR6gqlVqgF7Y0MDAwMCBiaXQtY29tcGFjdC1jYXJyaWVyLXJldGlyZW1lbnQAcdLJVVMRO1TZ6/zm/qFeWNCwwpw0MDAwMCBiaXQtY29tcGFjdC1wcm9kdWN0aXZlLWNvbnRyb2xsZXIAGXW1zAfMtN1snNpSkCua72dtj3U0MDAwMCBiaXQtY29tcGxldGVkLWJhY2tlbmQtYXBpAIb1kADN7ePirHFfmobVEutVKIDbNDAwMDAgYml0LWNvbXByZXNzaW9uLXByb3ZlbmFuY2UANni1lySQpJjMz+QdB+M7m4WP3GU0MDAwMCBiaXQtY29weS1saXZlLXN0YWJpbGl6ZXIAvZVmai2fvGOOcl2ac8JZYEpkbA00MDAwMCBiaXQtY29weS1wYXRoAGYPjjwQiPPTEKrd7NFzh+zGbr5qNDAwMDAgYml0LWNvcHktc3VwcG9ydC1hdWRpdABuZcwlrN973au5RLOkNfQI6jrKEDQwMDAwIGJpdC1jeWNsaWMtcm9vdC1iYXJyaWVyAG+eQQpmfaTClcTm1fEH6iBSTincNDAwMDAgYml0LWQxNi1jZW50cmFsLXBhaXItc2VlZDFmOGIAy8w+wNKOEdfiMr3nnmUcVGYj6sg0MDAwMCBiaXQtZGVsYXllZC1jYXJyaWVyLXJldGlyZW1lbnQA/46VpbvYss2dtYhC6F6qONRIJd00MDAwMCBiaXQtZGVsZXRpb24tbGFkZGVyAHKx7D+X+9vEqb6yX1ClBdudC/zTNDAwMDAgYml0LWRldGVybWluaXN0aWMtYmFkLWhlYWRlcnMAwgKaszjqwRSfcBljGKvKLCT8XsI0MDAwMCBiaXQtZGljeWNsaWMtZGlhZ29uYWwtc2VlZDYyMGNhAEqYsYJON2O0GaF1u7TcewW9QscGNDAwMDAgYml0LWRpaGVkcmFsLWNvbW11dGF0b3IAM+uI2JIb0NJLZWxGsd0liddk/xY0MDAwMCBiaXQtZGlydHktYXV4aWxpYXJ5LXJlZ2lzdGVycwDOXlq5I0+IjN2jz9/yCzk06rEOnDQwMDAwIGJpdC1keWFkaWMtdGVybmFyeS1jYXRhbHlzdAAQLmRbLe0xwZMMHqaijTwacj6QNzQwMDAwIGJpdC1lYXJseS1yZXRpcmVtZW50LWN1dAAILNZE+4dWJhE+53t0BNb5pYpi+zQwMDAwIGJpdC1lbGltLTE0NABwz6XM0oQXjCqoQvLCU82/CifRAjQwMDAwIGJpdC1lbmRwb2ludC1mcmFtZS10eXBlcwBOWug7YwCbOpe2Fp/Q/JZUiPWzrTQwMDAwIGJpdC1lbmRwb2ludC1sZXZlci1idWRnZXRzAIPZiJgKBkdCxwaCjITsvHd1IcHtNDAwMDAgYml0LWV4dGVuc2lvbi1vbmUtcmVsYXRpb24tc2VlZDE3ADRywNLbExRuAfYdjmvjzYy2NpnJNDAwMDAgYml0LWZhaXRoZnVsLWZpbml0ZS1hZGRyZXNzAH8RFsYM1ti3kovuYLtKE+75XYbYNDAwMDAgYml0LWZhbWlseS1wcm9qZWN0b3ItYWxnZWJyYS1zZWVkMTAAbpiIrlLqyQARJda1xTWeA/A2CiI0MDAwMCBiaXQtZmlmdGgtZnJhbWUtZGV0ZXJtaW5hbnQtb2JzdHJ1Y3Rpb24AXjsouQvj6jgKEjoIsrgRhF6tFF40MDAwMCBiaXQtZmlmdGgtcmF0aW9uYWwtZnJhbWUtc2l4LWNhbGwtc2VlZDBkOTg4OGE2AE421YOHjWQShg74sXcKimiDqLjHNDAwMDAgYml0LWZpbml0ZS1vcmRpbmFyeS1ib290c3RyYXAAD+eZ0dliOJ+81Z8DeSBzBcBqNxQ0MDAwMCBiaXQtZml2ZS1yYW5rNC10ZXJtaW5hbHMAelpY54Fg0aJWewSUKZOMTmDke3I0MDAwMCBiaXQtZml4ZWQtY29udHJvbGxlci1yZXBhaXJzAM+ELwACZe+3oPD9eMyBYokKifcrNDAwMDAgYml0LWZpeGVkLXBsYW5lLWV4cG9zdXJlALrJs6kLwkX96DIF7BOLbK4KQoJxNDAwMDAgYml0LWZvdXItcmVnaXN0ZXItcmF0aW9uYWwtZnJhbWUtZmxvb3Itc2VlZDM1NzNlMTJlAB8d/Ck54g48MmnkvKeDBU/eNYTkNDAwMDAgYml0LWZvdXItcm9sZS10d28tcGF0dGVybnMA9AzV4yvcNBdM912e2tZMJOC+BUc0MDAwMCBiaXQtZnJhbWUtY2xvc3VyZS1iYXNpcwA/qY58lUenP5/uBzznHQT4ZoowITQwMDAwIGJpdC1mcmVlLWNvbXBsZXgtc3VwcGxpZXIA7tgwDCNrDnc13Z7ZWwLuRbQOlbI0MDAwMCBiaXQtZnVsbC1ib3JlbC0yYWRpYy1mbG9vcgC7F44H9bWVQDR2BOLRVeQ2NUkB1TQwMDAwIGJpdC1nZW5lcmF0ZWQtbGF0dGljZS1wYXJpdHktY3V0cwBodyJgVrmCuVLxW8BVrT8w6fMjuzQwMDAwIGJpdC1nbDMtbWl4ZWQtdGFyZ2V0cy1sZW5ndGgxMADr9vBytN3wHe1FmFRZJp+4YkNMOjQwMDAwIGJpdC1nbDMtbWl4ZWQtdGFyZ2V0cy1zZWVkMTgAtHdASMWAas1oyP5CyLx72+5l1hg0MDAwMCBiaXQtaDgtcmVjZWl2ZXItY2Vuc3VzAF6WTSreGtGVTraeXQzSbMPg30rNNDAwMDAgYml0LWhlbHBlcjQ3MC1uYXRpdmUAJlH++tAtXKibB9iYXh45fFx8pfM0MDAwMCBiaXQtaGVscGVyNDcwLXdpbmRvdy1wbGFjZW1lbnQtc2VlZDE0ANQ1PcH6hqO58ff2KnbE3Ezx36CvNDAwMDAgYml0LWhvc3RlZC1kaWdlc3QtZmFzdHBhdGgAFuAQU43yUfxVDyJsL7yC8jWNBQY0MDAwMCBiaXQtaWRlbnRpY2FsLXRocmVlLXRhcmdldHMtZGlydHkAItExYC5dNQOV9Ih/gKASdDjyMwU0MDAwMCBiaXQtaW5wbGFjZS1yZXRpcmVtZW50LXNlZWQxMQCRoWO6UAkYcQIxydSs42XJl+BMaDQwMDAwIGJpdC1qMy1wcmVjaXNpb24tc2VlZDExAEB+sHqe56GxFSJEmTjMdxKMPR1xNDAwMDAgYml0LWpvaW50LWRpcnR5LXBhaXIACsetN4a0k+7Njuzdr1VLF6YqzKE0MDAwMCBiaXQta2VybmVsLWVudHJhbmNlLXNlZWQxOADaceyY1dHJQV/mSi1jDR97cew+xzQwMDAwIGJpdC1sZWRnZXItZnJhbWUtcmFua3Mtc2VlZGZlYjIA10P2AC4j2NjTDTr6+kPkfqtK+kk0MDAwMCBiaXQtbGl2ZS1jb3B5LW9wZXJhdG9yLWludGVydHdpbmVyAHvaaG+z8hC1TF1jP6nR1DFX1B3cNDAwMDAgYml0LWxvdy1jYXJyeS1sb3dlcmluZwBFGoWlQa8UBc6CX53Feewb+xXGPzQwMDAwIGJpdC1taXhlZC10YXJnZXQtcmVnaXN0ZXItY29tcHJlc3Npb24AbiY0lR8W4/AwI/OtRxsxKxlhyAI0MDAwMCBiaXQtbWl4ZWQtdHJhbnNwb3NpdGlvbi10cmlwbGUAcJ9/N51aqXmWQGENBz4L2A0HZR80MDAwMCBiaXQtbWl4ZWQtd2lkdGgtcHJvamVjdG9ycwBzjs5t88nHiBJJ7frUkVMpsOcMRDQwMDAwIGJpdC1vZGQtY2hhcmFjdGVyLXNjcmVlbgANbZagak1jHYXmeAIi8ZAEdINMJTQwMDAwIGJpdC1vZGQtZGVub21pbmF0b3ItcmVnaXN0ZXItZmxvb3Itc2VlZDE2Yzk0NgDtAqd4+RK5pR/eG5YTzzlIF9liuDQwMDAwIGJpdC1vbmUtcmVsYXRpb24tYW55LXJlZ2lzdGVycwAj/Dcb3fwhYk3bwI9XlGvZE0PzrTQwMDAwIGJpdC1vbmUtcmVsYXRpb24tc2VlZDA0AIsNQFijySfBlsdJLAkyBt+M99xuNDAwMDAgYml0LW9ydGhvZ29uYWwtcGFpci1kZWNvZGVycwAW2PO3R6aXsF2J5SaHKFIE528TAzQwMDAwIGJpdC1wMTExLXI0MzctZ2w0NjQtNDcwLTIwMjYxMDE4AGzck0Mz27QiMdc8B5ECKMSf+ZZRNDAwMDAgYml0LXBhaWQtb3duZXItYmluZGluZwARgnnAtSTTUprYtfKZ+JOHJEGOkjQwMDAwIGJpdC1wYWlyZWQtYm91bmRhcnktZ2F0ZQBCsXeXHQdItP+wCAO6EPzuqJufFzQwMDAwIGJpdC1wYWlyZWQtaGVscGVyLWJvdW5kYXJpZXMA+b8CKftDwF2xc0IG/+2FbCy9Cjw0MDAwMCBiaXQtcGFyaXR5LXVuaWZvcm0tdGFyZ2V0cwDKNtpcWz1mVUrLIR54zEhD00hEDDQwMDAwIGJpdC1wYXJ0aWFsLXdpZHRoNy1vcHRpbXVtAGz0mqRLDEP25RJnLtBEIAgsjBKiNDAwMDAgYml0LXBpdm90LXBvbGljeS1mbG9vcgC8QTek2yL5N9EVFYrLfGY6quYttTQwMDAwIGJpdC1waXZvdGVkLWZhbGxiYWNrAJVvSB51EojGsVWqQLD6hhvI8XvYNDAwMDAgYml0LXBsYW5lLWZvdXJzZXQtYm91bmQAyMs7CMo4BGhy1OQcKuoZNgfUhms0MDAwMCBiaXQtcHJlcGFyZWQtZ2VvbWV0cnktc2VlZDcAxjfLd11B1fE+A1cbP2o57qOv6U80MDAwMCBiaXQtcHJvZmlsZS1wYWlyLWF1ZGl0AA7UXNB72klwe08U2AA4NHiHQ00GNDAwMDAgYml0LXE4LXRocmVlLXJlZ2lzdGVyLXR3by1jYWxsLXNlZWQxODlhZDc0AMGE58v9Lk8Z0xUbaiyHAEAj7ezUNDAwMDAgYml0LXF1YXJ0ZXItdGVybmFyeS1jYXRhbHlzdADMv9sbZurjw45hIr2tXMTKTFdsXjQwMDAwIGJpdC1yNDM4LXNvdXJjZS1jb2RlAHYt1D1oYtGAbz9Jn4fwnxGg2fAoNDAwMDAgYml0LXI0MzgtdHJhbnNwb3J0LXJlaG9zdABCXz9wrAeWbv6UkucF44yhzYwiwzQwMDAwIGJpdC1yYXRpb25hbC1yYW5rLWN1dC1zY3JlZW4AwA/Vpdz1aviEsRMvU+lX2MQWosI0MDAwMCBiaXQtcmV0YWluZWQtdG90YWwtbWl4aW5nAFvyFcNln1QsHWPp8po2v0rEPmbzNDAwMDAgYml0LXJldGlyZW1lbnQtcHJvZmlsZS1yZWJ1aWxkALWr3ibsT+0Gknz4fMv6Geh05mnBNDAwMDAgYml0LXJldXNlLTE0NwCJJL1Kx1bHF2OdHinn/9csKq7JfDQwMDAwIGJpdC1yZXZpc2lvbjMtbGV2ZXJzLXNlZWQwMwCqdUGNcNxOSg2R+Wi1kM0h4f3QwDQwMDAwIGJpdC1yb2xlLXNoYXJpbmctYnVkZ2V0AB7LxceY4Tz8KAbF2+OkDbfWiQ4BNDAwMDAgYml0LXJvdy1hbGxvd2FuY2UA1/h3f5VgFOlrxpUCDGUoJAT+tjA0MDAwMCBiaXQtcm93LXBhZGRpbmctcGh5c2ljYWwAOdyJiBrFxTaNReaP/EsgIhFihK40MDAwMCBiaXQtcm93LXJvdXRlLWdlbmVyYXRvcgBXcpTCBrwZirS0GCjQgMYi9+f4czQwMDAwIGJpdC1zMy10d28tdGFyZ2V0LWNlbnN1cy1zZWVkMzY1MDEAKjWMRPZU66cjSqVtl7LSjaPuQ7Y0MDAwMCBiaXQtc2VsZWN0ZWQtY29weS1zZXBhcmF0aW9uALiq9c9ueBSauPiEr4ZT8fUf81WiNDAwMDAgYml0LXNlbWlkaXIyMS1vcmJpdC1zZWVkOGY4OQCfVEv2Kci9kc1v491q7+cBWBHmrzQwMDAwIGJpdC1zaGFyZWQtc291cmNlLWNvbXBlbnNhdGlvbgD0w2opU2RKGz/3whxAMz4RR8pLNTQwMDAwIGJpdC1zaGFyaW5nLWhvc3RpbmctZ2F0ZQADX+EyH5tFTpGdOMTAC0xCsgEeczQwMDAwIGJpdC1zb3VyY2Utc3Bhbi1zZWVkMDIAgQqbQi7j/SQjAtOVIvb/W662Lro0MDAwMCBiaXQtc291cmNlLXN1YnN0aXR1dGlvbi1zZWVkMTEATH6veoCfmF8YNpfJdy+DZj2YhL00MDAwMCBiaXQtc3BhbjQtYXV4aWxpYXJ5LXN0cnVjdHVyZQDcoODnHP32wdXZQwzqV2cOk+k8cDQwMDAwIGJpdC1zdGFnZS1taXhlZHdpZHRoLXBhY2tpbmcA+eQ9dxAqZTRJWlilO6hlEsB7VJ40MDAwMCBiaXQtc3RvY2stcmVjdXJyZW5jZS1hdWRpdABCqRla5UZc5JrO4pmdnKSRwLDuVzQwMDAwIGJpdC10ZXJuYXJ5LWNoYXJhY3Rlci1zZXBhcmF0aW9uAJtvtfH7ZsfFFAtupTN4dkWHulOmNDAwMDAgYml0LXRocmVlLWFjdGl2ZS1vbmUtcmV0dXJuZWQASu93zpup8vm26NwhT2a0qjwy62E0MDAwMCBiaXQtdGhyZWUtcmVnaXN0ZXItbG93ZXItYm91bmQAUzjX8YsffVtuQ/uuO0csOFbOXM40MDAwMCBiaXQtdHdpc3RlZC1mZWVkYmFjay1jb250YW1pbmF0aW9uLWxlbW1hAE8WqmUFWw0QBgpY00gBxyof8Dp7NDAwMDAgYml0LXR3aXN0ZWQtZmVlZGJhY2stZm91ci1yZWdpc3RlcnMAgoLjDY5Xb7lQmdn4OUC2SFmLAIE0MDAwMCBiaXQtdHdvLWNvcHktYmFuay1ib3VuZGFyeQC69gCIA0uo8G5IMH04KS6OIpDSYjQwMDAwIGJpdC10d28tY29weS1waHlzaWNhbABOh9BkLWQcT2Nw1kI8XBTZc1fmcjQwMDAwIGJpdC10d28tY29weS1zY2F0dGVyALot223Smu72xhCAFXyyslxwWS3CNDAwMDAgYml0LXdob2xlLXBhY2tldC1zdGFnaW5nAMc/LwMWsZrK3d51d/JCIW7DMxdkNDAwMDAgYml0LXdpZHRoLXNldmVuLWJvdW5kYXJ5ALEUdn4GRDsH9WL1L7y1bLyJuLj5NDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stM3g0AJCZSwptQ61e1pZTwcE4hKBhX84JNDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stNHg0AIBwS1eaBAtFcgKLKsMVnunMSiZCNDAwMDAgYml0LXplcm8tZnJhbWUtZmVlZGJhY2stdG8tOC1yZWdpc3RlcnMA4gASyB5f02+kGGV08zOUrZySe1I0MDAwMCBiaXQtemVyby1mcmFtZS1mZWVkYmFjawDNasjhuo241l1xymey5dMmnKMxszQwMDAwIGJpdDAtYnVkZ2V0LWdhcAB+E0cf4A/7owqefWAqzeAsCgO4gzQwMDAwIGJpdDIyMzQtYm9keS1zdG9jay1hdWRpdAAZeYL98dkv6yxHN4+Pxhk+CQ0AWzQwMDAwIGJpdDIyMzQtY2FsbGVlLXN1YnN0aXR1dGlvbgAFUHzoa8vUMYaYjcM6K8Bujy1HSDQwMDAwIGJpdDIyMzQtc3RvY2stdGhyZXNob2xkAE3smBMW7dmhXOLluke/mt8lckLxNDAwMDAgYml0NTg5LWJvdW5kYXJ5LWFkYXB0aXZlLXI2NTktc2VlZDA1AGgo42fJgFaA2YcMfoxnZ+Qzpg4/NDAwMDAgYml0NTg5LWNoZWNrZWQtY3BwLWludC1zZWVkOTIAx/lGbFAIA0R5IDfrVlsMpHpuaPI0MDAwMCBiaXQ1ODktZml4ZWQtb3B0aW9uLWNyb3NzLXBhaXJzLXNlZWQxNgCmKYkwbvzWI1ToafQzGZkVIp/6ZzQwMDAwIGJpdDU4OS1mcmFtZS1vcHRpbXVtACmg2lgRt5ay/Xp3bLHjn3X7M8SBNDAwMDAgYml0NTg5LWd6aXAtcmVwbGF5AD2eU566//zyIm7sVW0WuRgUG/AXNDAwMDAgYml0NTg5LXByb2plY3Rvci1sZWRnZXIAxctA+gUBromrxmV/Cc7HxqDMKQ00MDAwMCBiaXQ1ODktcmVjaXBlLWZsb29yAHwFDkWJ9DMoE7+3Y7+QzjGHTIBnNDAwMDAgYml0NTg5LXNoYXJlZC1yZWdpc3Rlci10cmlwbGUtc2VlZDA1AFnppHTRLJnA55gu0fAJqRkVi5csNDAwMDAgYml0NTg5LXN0ZWluYmVyZy1mYW4tc2VlZDA2AIs0C4vTNKKuDXJejVPQDhW5yHdfNDAwMDAgYml0NTg5LXRyYW5zcG9ydC1yZWZyYW1lAPYo9Hx2OZTcfGbRcNvu6a6SrO2eNDAwMDAgYml0NTg5LXdpZHRoLXBhY2tpbmcAvsqACRxG+WvJXeLJCIFRvc9B2OU0MDAwMCBiaXQ1ODktd2lkdGg3LXdpbmRvd3Mtc2VlZDcyABmdyXfgjwsmAVp1o4t2JUWT7lmvNDAwMDAgYmxvY2stc2NodXItY29tbXV0YXRvcgC3N6r8/+om44mM1YdA0vZUuqoFkzQwMDAwIGJsb2NrMy1ob29rLWVycm9yLXNwZWN0cnVtADhMeSo7JOfXYRpj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YWxpdHktc2l4LWN5Y2xlcwAGVW6FXV1Igtpgu7cL7DWggx0ypjQwMDAwIGNlbnRyZS1mYW5vdXQtdHdvLXBhbmVsLXNlZWQ5NjIzMDIApovkmRbhc0JVwdekrW7A2rUdIwc0MDAwMCBjZW50cmUtZmlmdGVlbi1vd25lci1lcXVhbGl0eQAunnezrH8GKD6BnSQaNqBMUlW1aDQwMDAwIGNlbnRyZS1maXZlY2FsbC1jb3Zlci1hdWRpdAC21Z6diKGjLFWPQyLJLT/l3Srs+TQwMDAwIGNlbnRyZS1ncmFtLWRlZ3JlZTQxMACZtzeOyraVai0IfBWT4Em0I2yo9zQwMDAwIGNlbnRyZS1oaXN0b3J5LWlubm92YXRpb24AD2o2n4Bg5al12K/LehU5taYpZ8Q0MDAwMCBjZW50cmUta2VybmVsLWZlZWRiYWNrABDF6zU81hBb1VbMa0b7Q5L+qLeGNDAwMDAgY2VudHJlLW1ldHJpYy1lbmNvZGVycwBULFmgmy/fKInNNiwxoN1v1usBtzQwMDAwIGNlbnRyZS1uYXRpdmUtb2JzZXJ2YXRpb24tZGltZW5zaW9uAFcyyz+6fs3xcfErxpavP1LN/ZqiNDAwMDAgY2VudHJlLW5hdGl2ZS10ZXJtaW5hbC1mYWN0b3IAGlNg1P9/SeZArP6Wr66s5jjimyk0MDAwMCBjZW50cmUtbm9ubGluZWFyLWZyZXNoLWZsb29yAD8L7jedqIB271FwakjOn1P7BPOmNDAwMDAgY2VudHJlLW93bmVyLW9ic2VydmF0aW9uLWZsb29yABltTlYYPFXu3NaPO0fgN561+iWoNDAwMDAgY2VudHJlLXBvbHlub21pYWwtY2FjaGUtbGltaXRzANA7ze7TwhDjyhjZrTvSPyEp6JWtNDAwMDAgY2VudHJlLXByZWZpeC1mYW5vdXQtb2JzdHJ1Y3Rpb24tc2VlZDI4MDNiNwAKJXp1LpJkAwO/ynq7ZFZeA5h4TTQwMDAwIGNlbnRyZS1zZXZlbi1vd25lci1mYW5vLWluZGVwZW5kZW50AFtpqmZuxrJf4JO4j3ANCLrxDbvONDAwMDAgY2VudHJlLXNldmVuLW93bmVyLWluZm9ybWF0aW9uLWZsb29yAO7Bn/dMSdNOHjtFjr1pIokV4h6nNDAwMDAgY2VudHJlLXNoYXJlZC1rY2FsbC1jaGFyZ2VkLXNlZWQ2MTU0MTUAKMbYtGAjeoe9kZx4NiMq/9d/9hI0MDAwMCBjZW50cmUtc2hhcmVkLXJldHVybi1ndWFyZADEoIGKLLoHdITFPxq0lJUEbDUUvDQwMDAwIGNlbnRyZS1zaGFyaW5nLW1peGVkLW92ZXJoZWFkAGppBty4Fvpbs9pOpetSgmWvAECuNDAwMDAgY2VudHJlLXNoYXJpbmctb3ZlcmhlYWQtYnVkZ2V0AEtuV1Ytp+pmjTqqu5ch1eQHU/KSNDAwMDAgY2VudHJlLXNoZWFmLWZpYnJlANDftdlsxxOhtPexNnTSqp/M1IXLNDAwMDAgY2VudHJlLXRlcm1pbmFsLXNvdXJjZS1xdW90aWVudADE1f7uTBHsNL/tCN94oUnb5QQGLTQwMDAwIGNlbnRyZTAtY29tbW9uLXJhdGlvbmFsLXByb2R1Y3QtZW1iZWRkaW5nAE+htTahSoXJWHrr/VTUbVNwXzhzNDAwMDAgY2VydGlmaWVkLWdhdXNzaWFuLXJlY292ZXJ5AMnJ3qeG5p38FmlwSSowTZwQJV/HNDAwMDAgY2V4MTktZXhhY3QtcGFpcmluZwDGmwca2IBXC+FzJXF4m2Wa9s4fxjQwMDAwIGNleDE5LXByb3Bvc2l0aW9uYWwta2VybmVsAG2DAdTH5YuMWGIEUQ5yNRR5E5q8NDAwMDAgY2hhaW4tY29ubmVjdG9yLXRhYmxlcy1jaGVjawDh9PaUbFZXLTiMVp0Ucm6x3+2HJTQwMDAwIGNoYWluLXJpbmctY29tbW9uLXdvcmRzAGvuvdPe/Aq1aI8FkMwk8Nob/dL+NDAwMDAgY2hhaW4tdGFyaWZmAH+deGanZIYiM9SP2R8QCNvwRO1KNDAwMDAgY2hhcjItamV0cwDPnMGvmm0HplAZ00Rr4+MTSYqSUjQwMDAwIGNoYXIyLXRocmVzaG9sZACw/ow4syYDe19YbOP+eboC6dYrXzQwMDAwIGNoYXJnZWQtcmFuay1kb21pbmFuY2UA6pNHAokwuuwfYpSiK/DlYrwh+qw0MDAwMCBjaGVhcGVyLXJlYWRvdXQtN3Etb2JzdHJ1Y3Rpb24AiWVNkRXylD6/vKTpg9X1ZoBcdvY0MDAwMCBjaGlycC1idWRnZXQtY2xlYXJhbmNlAHBbFteOlXTA/qYHCMk22Ae3acbXNDAwMDAgY2hpcnAtZmllbGQtd2lkdGgAzl8VsQjrP2juMlA67v41UKr4wxY0MDAwMCBjaGlycC1wYWNrZWQtY29ycmVsYXRpb24tYXVkaXQAOaBqBgZqHKVZH4ya93JkSMyQrbM0MDAwMCBjaGlycC1yZXNpZHVlLXN0ZXAAh2L7L4n2pWvZJoIqpPG1FcTNZDY0MDAwMCBjaGlycC1zY2FsYXItaW52b2ljZQCfvGakrPiiYS90ZP7KuLGPVjhHPzQwMDAwIGNoaXJwLXN5bWJvbGljLXNlZWQ4MABAhG0rLX21IVqR+wVS77JfCzaHlTQwMDAwIGNocm9ub2xvZ2ljYWwtYmF0Y2gtd2lkdGgA0rsADIbYWxNdOtNzoltG5lQNuT40MDAwMCBjaHJvbm9sb2dpY2FsLXJhbmsyMy1tYWpvcml6YXRpb24AEFJi99wzddL0ODJsTQbXrtt5RlM0MDAwMCBjaHJvbm9sb2dpY2FsLXdpZHRoLWJvdW5kADOEpbRftLKnTIyWafMksN08GikINDAwMDAgY2hyb25vbG9naWNhbC13aWR0aC1ncm93dGgAlOWYoFszvX5ZixAz4GwSbCz9ygg0MDAwMCBjaXJjdWxhci1zY2h1ci1hcmMAd/vAKrvxZBaYyVFCsEZQJu2fZqs0MDAwMCBjaXJjdWxhci13aWR0aDItYXJjAAXjWD752NPuGXJhApG9ek57NrU9NDAwMDAgY2stYWxsLWR5YWRpYy1mb3Jlc3Qtc2VlZDIzAKcMLnMJQA4qWKKlCOVMqizC/Z88NDAwMDAgY2stZHlhZGljLWZvcmVzdC1zZWVkMjIAOBZNY8+pGYZArp+QCptOtMhg0XQ0MDAwMCBjay1keWFkaWMtaGVscGVyLXNoZWFycy1zZWVkMjIA2sE6SmgWhFaNBnY0Ui/0Ql/KBRY0MDAwMCBjay1keWFkaWMtcmVwbGF5LWZhc3QA+hhKJgoNv67K8cOG1HqXcYnrsOs0MDAwMCBjay1ncmlkLXN5bnRoZXNpcy1zZWVkMjQAhHCakcdgzh9+tSB+OqjoTWdbIcg0MDAwMCBjay1oZWxwZXItYnV0dGVyZmxpZXMtc2VlZDM4AHJTiyP1wTh6oXtD8fL5YF59p8iZNDAwMDAgY2stcG93ZXItZm9yZXN0LWJvdW5kAKGTR+qGXcO6LgcBWFJB25NCsJ/VNDAwMDAgY2stc2lnbi1ub3JtYWxpemF0aW9uLXNlZWQyMgC79x4o+JqvszS7pm+vy1wdECDj6jQwMDAwIGNrLXU0LWltcHJvdmVtZW50LTIwMjYxMDEzAHefcPDyBi/S6DQXS4St8R3+oDGzNDAwMDAgY2xhc3MtYy1kb21pbmFuY2UtY2FtcGFpZ24APfcoN6/lSdJb/VOeZNOLYdDpNTE0MDAwMCBjbGFzc2ljYWwtdDMtY29uZmlnLXNjcmVlbi1zZWVkM2UxMQChuJKaBF2SteVQQfgJgHD5yz7HOzQwMDAwIGNsZWFuLWNoZWNrcG9pbnQAuTMyd57z1H+x6zyOmrrSBgUn+3k0MDAwMCBjbGVhbi1jb25uZWN0b3ItcGVyLW1hc2stc2VlZGU1NGUAqZdKcWwb0dfqzFx8r0QA82DICkM0MDAwMCBjbGVhbi1zZWxlY3Rvci1lbWJlZGRpbmcAEGOuWmzusQw3KiWsTRKV371eTWc0MDAwMCBjbGVhbi1zcXVhcmUtemVyby1jb21waWxlcgCgw8J+hjOU/4eVatiY9+jzj404XDQwMDAwIGNsZWFudXAtcHJlZml4LWxlYW4A6prpArRbAHWZH3ybcoiMFM7KX3E0MDAwMCBjbGlmZm9yZC1wYXVsaS1hbmNob3IAwMuz6HU+jJxaVIFDOf7e4aegA6c0MDAwMCBjbGlmZm9yZC1yZWNpcHJvY2FsLWJhc2lzLW9ic3RydWN0aW9uADsaehWv0MmyJauhOzvAl3AVhVXaNDAwMDAgY2xpZmZvcmQtcmVsYXRpb24tb2JzdHJ1Y3Rpb25zAGl5Qkb3ruxoEgkbEWMJQln1EpGHNDAwMDAgY2xpZmZvcmQtc2hhcnAtY29ycmVjdGlvbi1yYW5rANJKVl/HVbrGUgnTBxPXeA5YdPuCNDAwMDAgY2xpZmZvcmQtc3RhdGUtcGVyZm9ybWFuY2UAHMAoN2gaCFa5wYKm2Z8LptYPvTc0MDAwMCBjbGlmZm9yZC1zdGF0ZS1yZXVzZQDG2ZW8gFwt8ITuNu3mw8x85FvWnDQwMDAwIGNsaW1iZWQtNDgAIQ56CFfJukGDURty+LPMvOXg8vY0MDAwMCBjbG9zZWQtd29yZC1yb3VuZGluZy1ndWFyZAAx0Jlb8F5f20na81N1WeJeb9jBcjQwMDAwIGNvYWxlc2Npbmctc3Vic2V0LWF1ZGl0ALwxSRTFnHnlw/m4nzwAmd6ADRVBNDAwMDAgY29kZWQtYWN0aXZlLWZlZWRiYWNrAFIVasYhA9P2TzVXKDhpdznxwYLUNDAwMDAgY29kZWQtYWN0aXZlLXF1ZXJ5LWJvdW5kAHPM2zAz7qhrRZqv5oMNZ2aYYkKlNDAwMDAgY29kZWQtY29tcGlsZXItY2xvc3VyZQCOgo+mvCQ2wQK4ZdL6E3m49N2i6DQwMDAwIGNvZGVkLWhlbHBlci1lYXJseS1lbmQ4ALim5DutHih8h/IOeTx7hQeKuuSDNDAwMDAgY29kZWQtaW52ZXJzZS1maXhlZC1ncmlkAHhghds/Tbx/cl0BTWn0vbFVXPhxNDAwMDAgY29kZWQtbmF0aXZlLWNhbGxlcgDb0LW85GpCNIHHdlXkGRWgGrs9HjQwMDAwIGNvZGVkLXBvcnQtYWRhcHRlci1jZWlsaW5nAAiB/V3fZy+x97phLV1yHWDGg9tONDAwMDAgY29kZWQtcmV2ZXJzZS1jb250cm9sbGVyAHpcl5uRHX2YZMjkHX6wjlmqXDPCNDAwMDAgY29kZWQtcmV2ZXJzZS1waHlzaWNhbC1wYWlyLWdhcAAV97UmlVk4h+4r3xKiAfBxV4AIbTQwMDAwIGNvZGVsaXZlcnktcmVwYWlyLWJpbGwAQ7iREIvvCZe3aIogcJRJNU8+vFg0MDAwMCBjb2VmZmljaWVudC13aWR0aC1ib3VuZAD/1H8NVtgX9AoYsGVcJMw/SgliAjQwMDAwIGNvaGVyZW50LWZyYW1lLWFkZGl0aXZpdHkA667CPlvDjTfNebofFnSRyrbZ3yc0MDAwMCBjb2hlcmVudC10cmFuc3ZlY3Rpb24tbmVpZ2hib3Job29kAKYHFXEiRTQ/VBpXJz3g9NJGQ7/INDAwMDAgY29obi1mYW5vdXQtb2JzdHJ1Y3Rpb24AEVlSUPMTyowyaG8TJ2PdGylMNw80MDAwMCBjb2hvcnQta2VybmVsLWVudHJhbmNlczEzMgAhWiPh2OeNkx1mOAreIRa2xQ1OIDQwMDAwIGNvbGQtaHlwZXJwbGFuZS1zZW1hbnRpYy1iaW5kaW5nAHPjeAL6zTmzdGme1oe5gnb9JM85NDAwMDAgY29sZC13cmFwcGVyLWFtcGxpdHVkZS1hdWRpdADon0tLHScsZV/S6eLXU1wNymAFMTQwMDAwIGNvbGQtd3JhcHBlci1xdWFkcmF0aWM4MQA52zBovQ/XFbwGP/XzzVCOdV1r4zQwMDAwIGNvbHVtbi1jdXQtY2hlY2sAZW95NFJhVqDmnVdJg17S2LeKs780MDAwMCBjb21iaW5lZC1jb2xkLWVuZHMtMjAyNjEwMTMAtj0+ZD4fXFitySyY4wTn1t81fpM0MDAwMCBjb21tb24tYS1icm9hZGNhc3QtcmVhZG91dC1zZWVkNGE1MgD3BqtcptUQFF1zk/95HqZ1+yIZNDQwMDAwIGNvbW1vbi1jb2RlLW1vdmluZy1zdGFnZXMA7rrMTs0nJmBr/PEmNjiBo+/tixI0MDAwMCBjb21tb24tY29yZS1mYW5pbi1zZWVkOTM1NTBmOWYAOCcHF9CI8osqmbPl5zq1cPBZF080MDAwMCBjb21tb24tY292ZWN0b3ItaGVhZGVyLWxhdwA/NT83igYsM/kGIav9alHiUab5yjQwMDAwIGNvbW1vbi1jdXQtZW5kcG9pbnQtZGVidADfDdPT+hOXIKHQ4+5nUPtyZMUxwTQwMDAwIGNvbW1vbi1mbGFnLWRpc3Bvc2FibGUtd29ya3NwYWNlAMLEI/7iSk6kzRZ4Snaj/1U3mSuJNDAwMDAgY29tbW9uLWZsYWctZnJhbWUtb2JzdHJ1Y3Rpb24AyfutmENi622ruNTk2u4iqfV9lOY0MDAwMCBjb21tdW5pdHktYmF0Y2gxMDQ3LWF1ZGl0AEWuyAJU9IrjWnLl1S2Kclg9/rdvNDAwMDAgY29tbXVuaXR5LWJhdGNoMTA5OS1hdWRpdADiPOsaj61IAX3PNdXHSe1JgYQSdzQwMDAwIGNvbW11bml0eS1iYXRjaDkzMi1hdWRpdACSIGkcQ9zbx+/uQ4GIpQQyTMOC0jQwMDAwIGNvbW11bml0eS1iYXRjaDk1Mi1hdWRpdADJaMk7wWDIcG1sMRcqMrAKGFDu/DQwMDAwIGNvbW11bml0eS1iYXRjaDk3MC1hdWRpdAAXegoARUZ/WvfXekQe5J1NTSZmJTQwMDAwIGNvbW11bml0eS1jaXJjdWl0czY4MS1hdWRpdABC/v9nBe4+l3cY314g+pzjvF7N5TQwMDAwIGNvbW11bml0eS1jb2xkNjE3LWF1ZGl0AIfHK99jsUG1Iz7j+0rlzFgm1BwONDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDEwMC1hdWRpdAB8qPTmvMkAS8nfA9pcCORZO7j5ozQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxMDAwLWF1ZGl0APVIFj3VMoFmPE06tfAeu52IGJi4NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDExMDAtYXVkaXQARlxMVwoVlh9PKnPi5uNdVRY7biQ0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTIwMC1hdWRpdADtpoegAQuMA5DqARpl/Jl5unhNpzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxMzAwLWF1ZGl0ALuHCoUw2ZvZYRsnRJ98MEzWWVNdNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDE0MDAtYXVkaXQAbVsjytOei/d4NdPuvjUkVZfhEK40MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTUwMC1hdWRpdAB4s6a6v+4chwKbHfteIag9eKeIkzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxNjAwLWF1ZGl0APd52QSPFD3uTbjp045vfxuu7QBSNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDE3MDAtYXVkaXQATGwZCyPNrWHgMXsR5NVasB9oJ8c0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MTgwMC1hdWRpdAAZpir4jBWqc+IDnshVUESUvgLFVjQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQxOTAwLWF1ZGl0AGtBQThkikkIaMbkMGP8rSg0Yp+4NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDIwMC1hdWRpdACD4aquQy2rf9kGWsMKcywLkvBaVDQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyMDAwLWF1ZGl0AMrOrvb/Gz348Ruit7OQ+U9UckQ/NDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDIxMDAtYXVkaXQAAKEAOakTkErLwWlY0pQ3Ktpa79Q0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MjIwMC1hdWRpdABcAYOo34xAC4+n7FHOn6FQQKuJcjQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyMzAwLWF1ZGl0AIdWZqd41H7xVXYndAXPwkfDj6lgNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDI0MDAtYXVkaXQAwX2HIS7mHT96OwuApxBUyIVmItE0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50MjUwMC1hdWRpdADrKEALrJKuJ8WKI9E6A8rQrw7//jQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQyNjAwLWF1ZGl0AN/fPtJ2dyTUvonl4S3B/HxF/uksNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDMwMC1hdWRpdADvl9c/yx3HxG7s1PrTsCSy7TdUYzQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQ0MDAtYXVkaXQAHf95j3LI941A5gvxz/0FpHS2BY80MDAwMCBjb21tdW5pdHktZWZmaWNpZW50NTAwLWF1ZGl0ACF99kwbZYglfGUFjWfDSLqSmT2kNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDYwMC1hdWRpdAAwqtNW7HLTL59eoRl/u4arC9uc+TQwMDAwIGNvbW11bml0eS1lZmZpY2llbnQ3MDAtYXVkaXQAXb42SrSBQ7CFc1/4o8xuLTv6woo0MDAwMCBjb21tdW5pdHktZWZmaWNpZW50ODAwLWF1ZGl0APP6GRdzCH28NPjTEIYi2P/KqM6xNDAwMDAgY29tbXVuaXR5LWVmZmljaWVudDkwMC1hdWRpdAAfXKzStwMwr7KmrsbGenJrVWYBjDQwMDAwIGNvbW11bml0eS1mYW1pbHk1MzMtYXVkaXQAXOp2hKEuVE9MGrDTvSrzbuv4edk0MDAwMCBjb21tdW5pdHktZmFtaWx5NTg4LWF1ZGl0AFd9/U0UlLBPpx4DWi75l0pKB4/UNDAwMDAgY29tbXVuaXR5LWZvcm1hbC0yMDI2MTAxMi1hdWRpdAB3RZpzNE+pQa+ZbhArw29jbfbOjTQwMDAwIGNvbW11bml0eS1mcm9udGllcjEwNDItYXVkaXQA+6vYwSUtksEhckzw6h3ml5qz4Ng0MDAwMCBjb21tdW5pdHktZnJvbnRpZXIxMDk0LWF1ZGl0ABPZVo9OLXQWzMh7r7WzaKJ6DeMjNDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzQxLWF1ZGl0ANWAw5/8fsHcDOm63CqL+XWfBEZ+NDAwMDAgY29tbXVuaXR5LWZyb250aWVyNzk5LWF1ZGl0AD2Mm7YkjjwlKst/8Z5E8MJE7p2UNDAwMDAgY29tbXVuaXR5LWZyb250aWVyODkwLWF1ZGl0AJrBjvYiAj1aQnFsn4jHFm0t8FgdNDAwMDAgY29tbXVuaXR5LWZyb250aWVyOTQyLWF1ZGl0ADz5GrhhWGUpXdPOz+ZMLDm1uBUcNDAwMDAgY29tbXVuaXR5LWhpc3RvcmljYWwtZml2ZS1hdWRpdAB8PeI4j93mOtmkgny7+YrCjm/ObDQwMDAwIGNvbW11bml0eS1oeXBlcnBsYW5lNTk5LWF1ZGl0AFx0YadmqQSvI69eSvJqU8M1gOisNDAwMDAgY29tbXVuaXR5LWs0OTItYXVkaXQAYkZmuQMrtLpGQf3FHLit1Hh/v4M0MDAwMCBjb21tdW5pdHktbm90ZXMtMjAyNjEwMTEtYXVkaXQAWk/oxijkUx6P9PuEqfRjfhFKi3Q0MDAwMCBjb21tdW5pdHktcGlsb3QyMC1hdWRpdACW1VQWR0XJZx/9k0lfM5SGaD6DFTQwMDAwIGNvbW11bml0eS1wcjI3OS1hdWRpdABC1HCn9U/fu+SxlpOX2waKF6szqDQwMDAwIGNvbW11bml0eS1wcjUzMS1hdWRpdADkYphdjKB1kXrHQiHe1gm0ko0uJzQwMDAwIGNvbW11bml0eS1wcjY4MS1hdWRpdADu8PRII9tNz4I3yBJr7FcACdEdvzQwMDAwIGNvbW11bml0eS1wcjY5Ni1hdWRpdAC5HU95HEI8p1c0vs3TuSDmJIQRCjQwMDAwIGNvbW11bml0eS1xdWV1ZS0yMDI2MTAxMwBjLIxhNetheqn4dCufHTgzfE5LJjQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi1mb3VydGgxMDAtYXVkaXQAeyENudEcXVxb63zezLtNGnbtw7I0MDAwMCBjb21tdW5pdHktcmVjb25jaWxpYXRpb24tbmV4dDEwMC1hdWRpdACH/J6QtQT54Yo2mhwG/36ojfQV/TQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbi10aGlyZDEwMC1hdWRpdAAVYrxOdBgqx9mw8V/zVoHD4Nv3cjQwMDAwIGNvbW11bml0eS1yZWNvbmNpbGlhdGlvbjkyLWF1ZGl0AKMEFyrxpW9RmpkQh34Z+aSgvqpvNDAwMDAgY29tbXVuaXR5LXJvdW5kOC1hdWRpdABfYZ3xmnI11GvPCVjhr5X1psSwETQwMDAwIGNvbW11bml0eS1yb3VuZDktYXVkaXQABMox17ioB8um808tu3Mqr00WV3k0MDAwMCBjb21tdXRpbmctZGlydHktcHJlY2lzaW9uABx254V8RXQ1A7S6mHXHgEMLpss6NDAwMDAgY29tbXV0aW5nLWludGVydmFsLWF1ZGl0AL8C/BWj51VuJSkyBI3Iqy9MmoZ+NDAwMDAgY29tbXV0aW5nLXdhcnAtcmV0aW1pbmcA7bP0DJW0SuQf3EJ3qfF0NhusZxg0MDAwMCBjb21wYWN0LWFncmVlbWVudC1vcmJpdC1hdWRpdACDd5mQf+KnDj4sGP4Zf8R2R4po4TQwMDAwIGNvbXBhY3QtYWdyZWVtZW50LXNldC1zZWVkMjkAN0CadutH/g2aSIDsQ3DK/HOoekw0MDAwMCBjb21wYWN0LWJvdW5kYXJ5LWNhbmNlbGxhdGlvbi1zZWVkNTEAFGuMMPPaeGml0uE+kjkQOrgJPM80MDAwMCBjb21wYWN0LWNhcnJ5LXJlcGFpci1hdWRpdAB3RF+W/cD5801+Jle3y1K085Mm8zQwMDAwIGNvbXBhY3QtZ3VhcmQtYXVkaXQtc2VlZDcxACsbRRP4VkBjMHl7mRdAMWc0jKyzNDAwMDAgY29tcGFjdC1qb2ludC1jb21waWxlcgA6YZZ5MabhzZmzHXhfgNb4WtenDTQwMDAwIGNvbXBhY3QtbGF0ZS1jYXJyeS1ndWFyZADS+H4FGuExHqIZ/gLknHuH5ISH9zQwMDAwIGNvbXBhY3QtbGF0ZS1ndWFyZC1hdWRpdC1zZWVkNzMAyK8B2U22/hSD+W9TOCd1OEz62CE0MDAwMCBjb21wYWN0LXJlcGFpci1ndWFyZGVkLXJlZmluZW1lbnQAvko1MyAwm/gjIBaZWfg43k0DMzQ0MDAwMCBjb21wYWN0LXJlcGFpci1wYXJ0aXRpb24tYXVkaXQtc2VlZDY2ALSVmSXRmdHWVXVEiZ3DyPEqrxPNNDAwMDAgY29tcGFjdC1zYXR1cmF0aW9uLWF1ZGl0LXNlZWQ2OQBIaSkprzAmIgnqtsySkjr/ECgpMDQwMDAwIGNvbXBhY3Qtc3dpdGNoLWNvbnRyYWN0AOVZIkVR4xiTPCS8V0QORnpM+UoANDAwMDAgY29tcGFjdC1zd2l0Y2gtc2hhcnAtZGVuc2l0eQBRVS1yy+9E/pfY1FjZw8bliL/sIjQwMDAwIGNvbXBhY3Qtc3dpdGNoLXNoYXJwLXR3by10YXJnZXQAxxAH69pak2VRQc6FU1CO2Jl0leI0MDAwMCBjb21wYWN0LXR3aWRkbGUtdGFwZXMAxXDB+IapsCteBWL+lHHRVxFMm9Q0MDAwMCBjb21wbGVtZW50YXJ5LWNvbnN1bWVyLWZlYXNpYmlsaXR5AKHOqvqjEGHX63JnWeZ2hMBSzidaNDAwMDAgY29tcGxlbWVudGFyeS1udWxsaXR5LWF1ZGl0NzUAoQDaHg9nFQPo2R6j07LOj5vUyEM0MDAwMCBjb21wbGV0ZS1hbGwtaGVpZ2h0LWV4aXRzAClS36FuC58NR+HeWZbYXvSCVgDTNDAwMDAgY29tcGxldGVkLXByZWZpeC1vdXRlcgAKEFpsTPHyhAVSqZZ8Dnwj1tkZtzQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1iMwDP/fF0TGtPxpDOUoT17pKZPYYQZDQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1jb25zb2xpZGF0ZWQ2MTgA/QBYDiD0bAawIr6j+IQ9RunTN4k0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtZTEA/HQQdJMLUJcZlncN3gmD4slatIs0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtZjYAMoqDFMXcbns/UZHEZfRJoQv5RY40MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtajEAuQjmWSgZ+Dhd9dxlGOyypMGCIVQ0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtanA4AGFfgDXvS740cqusevB+Ce+qZYFWNDAwMDAgY29tcGxleC01NzEtY29sZDE0LWs0OTItcmVwYWNrZWQ2MjQA/Zu5Wdt1aDk2/isLsfhj4ZsTDUY0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5Mi1yZXBhY2tpbmctYXVkaXQAODsu7bg2jSkTUt+8KsDMArO8oIw0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQtazQ5MgCPWQxXbupzKc0PbhCOox2hHmOnOTQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1rNDkyYgDC2niLSSmyvuOotNJ/hr3471QRUjQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1rNDkyYwBwHL/ow6PcXvULSbls3oiW4qQWxzQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1yMQCeOrZ24cMATAZPh006+R26fdEE5jQwMDAwIGNvbXBsZXgtNTcxLWNvbGQxNC1yZXBhY2tpbmctYXVkaXQArQn96mHz/WlcG/aJgDVj1MvxQmk0MDAwMCBjb21wbGV4LTU3MS1jb2xkMTQAVQIm7mmKJ2/JQ9f4c7C8uVJCrjE0MDAwMCBjb21wbGV4LTU3MS1mcmVlNGYAQr3ErH/LE5D2MnBOXFdvLLUp0vA0MDAwMCBjb21wbGV4LTU3MS1mcmVlNGZjAOfiVmE0FXpyqYUnyYKvzohO7iEYNDAwMDAgY29tcGxleC01NzEtZnJlZTRmYzgAr5j5I+qA5/w6Cdz2pgMgYFfDdQc0MDAwMCBjb21wbGV4LTU3MS1ocGU0Ni12YWxpZGF0aW9uAEhUdRMQWk2BNhmwWV//QI4kCiloNDAwMDAgY29tcGxleC01NzEtaHBlNDYACbRXOwJsJ8/fbHTmZ71ZS0HFxqg0MDAwMCBjb21wbGV4LTU3MS1ocGVtNDYAJqLvuKTRQDwvZQV5jJqC5atOmVE0MDAwMCBjb21wbGV4LTU3MS1ocGVtNDZjADsWBPDC0/WIktOZbRig6fLN8KdiNDAwMDAgY29tcGxleC01NzEtaHBlcTEAGPggLyfnaOXTFheI8V8YJ6oQJ880MDAwMCBjb21wbGV4LTU3MS1ocGVxNACvZaB5f3KpMzhS19TPxiVkLWNAUTQwMDAwIGNvbXBsZXgtNTcxLWhwZXE1AEoawsY67PYkKWSh29UKeFOxixjtNDAwMDAgY29tcGxleC01NzEtaHBlcTYAGAIN9pDOQmuUmSbcMWYpo7LVXD40MDAwMCBjb21wbGV4LTU3MS1wbGFpbjgA3zbTvB8ZVdPe5zLMALHV6azM0SA0MDAwMCBjb21wbGV4LTU3MS10aHJlZS1wcm92aWRlci1mMQDhBzUOOJ6JlwkGFzGoW0pwb6jwgDQwMDAwIGNvbXBsZXgtNTcxLXRocmVlLXByb3ZpZGVyAOpi7r3GFCLtbcxmOWrk+hi/r6GNNDAwMDAgY29tcGxleC1hbGxjb2xkLXZhbGlkYXRpb24AHeVT/CjUM/HFvM0kOGbzAwlADHI0MDAwMCBjb21wbGV4LWFsbGNvbGQAD5W1b0vMVOHAShea0heyEIGvj9M0MDAwMCBjb21wbGV4LWJsb2NrLXJhbmstb3B0aW11bQCLSIYh7B3/VBCbNgtMCrtNkoeDHTQwMDAwIGNvbXBsZXgtYmxvY2stc2NoZWR1bGUtYWRtaXNzaW9uLWF1ZGl0ANusmTvis9Q0fme9N6n32px81JImNDAwMDAgY29tcGxleC1ibG9jay10YXJnZXQtc2NyZWVuAGBChMv5W3tKwI8q+4H5vaheEWn4NDAwMDAgY29tcGxleC1ibG9jazMtZml2ZS1pbi1mb3VydGVlbgBR3uNdpU9kkUg6c0oyaVu0GlSb9DQwMDAwIGNvbXBsZXgtYm9vdHN0cmFwLWN1dG9mZi1sb2NhdGlvbgBIpT+rI3Sp8Q1fWou9zpmfEuSMpDQwMDAwIGNvbXBsZXgtY2FydGVzaWFuLWdyaWQtc2NyZWVuLXNlZWQ1MDZhZgA86IeLok9MgQeCOgBZAk0/QpmV5zQwMDAwIGNvbXBsZXgtY2VpbGluZy1kb21haW4tZ3VhcmQAGThAqn0T/QGIGsmRP9MjqQvtuAA0MDAwMCBjb21wbGV4LWNlbnRlci1xdWFydGVyAMlewivU9rCdZhjw3K4AbnWgtuTBNDAwMDAgY29tcGxleC1jaGlsZC1wYWNrZXQtdm9sdW1lAPAYthKtXqL2vWlXwj40CwtwMafkNDAwMDAgY29tcGxleC1jay1iLWZyYW1lLXNlZWQyMAACS/QgBmIsU/V98pwHVhOf4BBY4zQwMDAwIGNvbXBsZXgtY2stY2xlYW51cC1mdXNpb24A14QUctAHT8OA+JPUdgVRiNgGHKQ0MDAwMCBjb21wbGV4LWNrLWR5YWRpYy1sYWRkZXJzALJupuhPgIUj3EYP24ONjZjxb50mNDAwMDAgY29tcGxleC1jay1oZWxwZXItYmFzaXMAEj0RLWFMCKyZnkfPyScMSpJfZcU0MDAwMCBjb21wbGV4LWNrLXNjYWxpbmctZm9sZAD3e2pIbz0VnwlaOVMLNd3Kz8tA6DQwMDAwIGNvbXBsZXgtY2stdGFyZ2V0LWZvcmVzdABEsoiYT+WdGnddN2vp4Zl9icMrDDQwMDAwIGNvbXBsZXgtY2stdHdvLXNpZGVkAALGD1mSZfOok4edRyNA/Eu8bwYUNDAwMDAgY29tcGxleC1jbGVhbi1jYWNoZS1zZWVkOWRmNzg5AI5TLlqjVxKTxfq/198TkvaTsQe5NDAwMDAgY29tcGxleC1jbGVhbnVwLWNvcnJpZG9ycy1zZWVkMjgA92v50bQdsGNuZW1uhm0GfXT6ChA0MDAwMCBjb21wbGV4LWNvZGVkLWhlbHBlci1nbG9iYWwtc2NyZWVuAJPmADMRT3FqGksJNyUKULKpP49VNDAwMDAgY29tcGxleC1jb2VmZmljaWVudC1hY2N1bXVsYXRpb24AtSnV3xI959mkwvj0ajC1B8zO+9g0MDAwMCBjb21wbGV4LWNvZWZmaWNpZW50LWNvbXBvc2l0aW9uAFdLA+yPsK1rUdE6S8Zo/EzB0mPlNDAwMDAgY29tcGxleC1jb2VmZmljaWVudC1yZXNjYWxpbmcAL0e4Fyw5Rhc1M8J1j3LT1CD8uQg0MDAwMCBjb21wbGV4LWNvZWZmaWNpZW50LXJldXNlAFjni2GfQLj+l2Tz6m/jWQO7lTSdNDAwMDAgY29tcGxleC1jb2xkLW93bmVyLXJlcGFpci12YWxpZGF0aW9uAJy+GIlkb0BvgEiiyw+Krddxdc51NDAwMDAgY29tcGxleC1jb2xkLW93bmVyLXJlcGFpcgDOGEXzumQDJmV5selVMkX6uaKsxTQwMDAwIGNvbXBsZXgtY29tcGVuc2F0aW9uLWJhc2lzAKwi5gOkwauk0BvsCf0pxVvdUGtQNDAwMDAgY29tcGxleC1jb21wZW5zYXRpb24tbmV0d29yawCmtbWfdG+xSRltM8xN9/zCp9iRVTQwMDAwIGNvbXBsZXgtY292ZXItbGlmdC1hdWRpdADlStEi53ykMGDiqT0beT5FfXQBPTQwMDAwIGNvbXBsZXgtY292ZXJhZ2UtbGF3LXJlbGllZgBRsSnIAdoWR4D4BGKLfxFnVml3MjQwMDAwIGNvbXBsZXgtY3Jvc3MtYmxvY2stbG9jYWxpdHkAf6I1O5gLCw5r9kSDjDzFFqgOMyM0MDAwMCBjb21wbGV4LWRlY29kZXItZmllbGQtZXh0ZW5zaW9uLXNlZWQ0NADdeVkVphkZToI2Vy1+gAGd0aJTJDQwMDAwIGNvbXBsZXgtZGVsaXZlcnktbWFwLW9wZW4tYWxsb2NhdG9yAEC8BqdDCBoEClNujNWAYDwTP/bENDAwMDAgY29tcGxleC1kaWFnb25hbC1jaGlsZC1iYXRjaGVzLXNlZWQ5NWRhAKXlMGv7mgGTPME4+79VzI+V0vx8NDAwMDAgY29tcGxleC1kaWFnb25hbC1tYXNrLXJpZ2lkaXR5AAUagHXkfewBFzlLrnxTBHLydtEVNDAwMDAgY29tcGxleC1kaXJ0eS1vdXRwdXQtdGVtcG9yYXJ5LXN1bS1hbmNob3IA7CCcW0nP7QgsXJYlSBP3rfJJ2Jo0MDAwMCBjb21wbGV4LWRvdWJsZS1yZXBsaWNhLW93bmVycy12YWxpZGF0aW9uALoA9KZASEp6EAoUofvWEDkQpAFZNDAwMDAgY29tcGxleC1kb3VibGUtcmVwbGljYS1vd25lcnMADitsZJYaoYIVqdx+ewaKZJ5ES140MDAwMCBjb21wbGV4LWRvdWJsZWNvbGQtdmFsaWRhdGlvbgCwuAHqJcKwwnlOnTvKgtXAH+SUXzQwMDAwIGNvbXBsZXgtZG91YmxlY29sZACH3QW5TILnLpgchuXDBxPoR/vX3TQwMDAwIGNvbXBsZXgtZHlhZGljLWNvbm5lY3Rvci1zZWVkMzAAs/7UdIoOaDLdiz48J9w4UCcs+xY0MDAwMCBjb21wbGV4LWR5YWRpYy1sb3dlcmluZwB9b4PVbSMBkOq/KopZyR9mWXrh3TQwMDAwIGNvbXBsZXgtZmFjdG9yeS1idXR0ZXJmbHkASgGV/6BQMFs88or3mJRqbNnG7A40MDAwMCBjb21wbGV4LWZhY3RvcnktZnVzZWQtc2VlZDIzAEQqpHSxeuUD+DI3q2cEsVx4M+I6NDAwMDAgY29tcGxleC1mYWN0b3J5LWZ1c2lvbgDjGhcohdrfkk633SmJPuwDvUq5PTQwMDAwIGNvbXBsZXgtZmFjdG9yeS1nYXVnZTM4ACsdA8H1vYv7ySkwS9BnsRW4iwFONDAwMDAgY29tcGxleC1mYWN0b3J5LXNjYWxlLWZyb250aWVyMjcAdiiM6V102trTvYYLf5N12xJaxNw0MDAwMCBjb21wbGV4LWZhY3Rvcnk1LXJlc3ludGhlc2lzAL8Rqs00sdzjoT1uQLT40eZ/SXUnNDAwMDAgY29tcGxleC1mYW4tZXhwYW5zaW9uADnODdOxlUpDxS+QU3FoFiDWirC5NDAwMDAgY29tcGxleC1mb3VyLWJhc2UtcGFja2V0AKe6+qtN3cZYU4ja0c69efzPtjD8NDAwMDAgY29tcGxleC1mcmFtZS1kaXN0YW5jZS1zZWVkODAAdHEYpJ1V7SuiXfmw6VTVeYYxq4k0MDAwMCBjb21wbGV4LWZyYW1lLXBhaXItZGVjb2RlcnMAkur3rcc0NW7pTOIO3l0zCTclHD00MDAwMCBjb21wbGV4LWZyYW1lLXBsYW5lLXJhaWwtc2VlZGNhMDRjYwC+6EtTEc+ZQF6ohp582LY58nRm5jQwMDAwIGNvbXBsZXgtZnJhbWUtc2xvdC10cmFuc3Bvc2l0aW9ucy1zZWVkMjcAFlK/tRpi7VYcpI6s0c8FTUYzf180MDAwMCBjb21wbGV4LWdhdGhlci1jaGlsZC1zZWVkN2E2ZAA2SNt7VsonPHGUXZTbQ53aodIPXjQwMDAwIGNvbXBsZXgtZ2F1Z2UtY29tcG9zaXRpb24tc2VlZDIyAAB9qhDnIMvlYu3d7AdHYVf7LoodNDAwMDAgY29tcGxleC1nZW5lcmFsLW5vcm1hbC1ib3VuZGFyeQDyRCd3jcje4Baji5wQipSklkEo4zQwMDAwIGNvbXBsZXgtZ2xvYmFsLWRlbHRhLWNhbmNlbGxhdGlvbgDXrUKFNxI7zhtQxb0xUSTE3+jtCzQwMDAwIGNvbXBsZXgtZ3JpZC1wcmVmaXgtYXVkaXQA+M31pJ6AVwf87YLFZaMVKW05GFc0MDAwMCBjb21wbGV4LWhhbHZpbmctZGVncmVlLWludm9pY2UAC/ISmALPW0wa/ufK7zhRe+5LHOU0MDAwMCBjb21wbGV4LWhldGVyb2dlbmVvdXMtY2hpbGQtaW50ZXJmYWNlAGenpRO198HuUrl92grzNNKcpgI3NDAwMDAgY29tcGxleC1pbnNlcnQtc2xpZGVzLXNlZWQyMAC2barmPehndstaZvdQMN04V/CV4jQwMDAwIGNvbXBsZXgtam9pbnQtaW50ZWdlci1jYXAtY2VpbGluZwALM82EK/QGH7rLuOWQi3yiB2GxGjQwMDAwIGNvbXBsZXgtam9pbnQtcHJlZml4LXZhbGlkYXRpb24ADFWqyAk9cZRSuaATRnww2w/hrbE0MDAwMCBjb21wbGV4LWpvaW50LXByZWZpeAC1C2LfwYHxo5VXaWPFpc4u2LggtTQwMDAwIGNvbXBsZXgtanA4LWNsZWFudXAtZnVzaW9uAKebzk9gTJIk0qWki2KmwQrTqUiZNDAwMDAgY29tcGxleC1qcDgtZGlhZ29uYWwtZ2F1Z2UAa9uUJmEFQrYv8N6yBqRlzzChKio0MDAwMCBjb21wbGV4LWpwOC1mYW5pbgCzxcCXlLPROTVImDQ61ZFxXwiN1jQwMDAwIGNvbXBsZXgtazQ5Mi1mcmFtZS1ib3VuZAC0TGq3bMSTJbHrqK2MnZ2R3vTb7DQwMDAwIGNvbXBsZXgtazQ5Mi1vd25lci1yZXBhaXItdmFsaWRhdGlvbgAtW8yj0duBWLKMH8RR2lXWucM6FjQwMDAwIGNvbXBsZXgtazQ5Mi1vd25lci1yZXBhaXIAywzLiWcLKIvVsZWnE+eZMdCsrI80MDAwMCBjb21wbGV4LWs4LXNpbmdsZXRvbi1mcmFtZS1jYXAAFZGzpcYrOfwH0M2gd5r/xVrjn3g0MDAwMCBjb21wbGV4LWwyNTMtbDI1NC1qb2ludC10ZW1wb3JhbC1zZWVkZGUxAHUmJ11QdSB2xwBAhUA/dAXF+SyENDAwMDAgY29tcGxleC1sb2NhbC13b3JkLWNlaWxpbmcALtPbiy2KJU3fuAinCbQIQ2EN2f00MDAwMCBjb21wbGV4LW1hc2tlZC1yaWdpZGl0eS1zZWVkMjgAUPNip1iL6ReiEMcsIyUDs61iNrw0MDAwMCBjb21wbGV4LW1peGVkLTA0OC12YWxpZGF0aW9uAJu92dFhO8Bmf6/rIWD53e3BmE3INDAwMDAgY29tcGxleC1taXhlZC0wNDgANW7ZUi9/DnLql2BlpkFopLna8Js0MDAwMCBjb21wbGV4LW1peGVkLWNvbGRrZXJuZWwtdmFsaWRhdGlvbgAb1+S1vXkZZqTzQSAlhpki/iL5wTQwMDAwIGNvbXBsZXgtbWl4ZWQtY29sZGtlcm5lbABRxM+cGEmHWOlKmhek3XRyE2eRMTQwMDAwIGNvbXBsZXgtbWl4ZWQtcmFuay1kaWFnb25hbC1zZWVkODQzMwAkon5VjhVhJF7yNpltkPh5IfLcXzQwMDAwIGNvbXBsZXgtbWl4ZWQtcmFuazYtYmxvY2stc2VlZGM4ZDYA2D++AFPUPuZqQmVkI//ulv3yjlg0MDAwMCBjb21wbGV4LW1vbm9taWFsLXJ1bnMtc2VlZDI1ACS8F28VIJeKxpMgoBfFvBk8kTzINDAwMDAgY29tcGxleC1tb3ZpbmctcmVhZGVyLXNlZWQyOABr0iILp3mtHfFdSkfs23nz5NbCQzQwMDAwIGNvbXBsZXgtbXVsdGktdW5wYWlkLWNvcHktYnVkZ2V0cwAuvS+fGF9h5LmiA6NHnrxXSfIeRzQwMDAwIGNvbXBsZXgtbXVsdGljb2xkAIFs0JFTcBuoaqm3C4gUTz2zad+zNDAwMDAgY29tcGxleC1tdWx0aXNvdXJjZS1jYWNoZS1zZWVkYWI2NjZiNQBkEjpGdT4L33wfMgmjdkY9+WztkTQwMDAwIGNvbXBsZXgtbm9kZS1ub25jaGlsZC1pbnZvaWNlAL/6YQ0WUM7DxhAi0r3QAWRb42JpNDAwMDAgY29tcGxleC1vdXRwdXQtYW5jaG9yLXNoYXJlZC1wcm9kdWN0LXNlZWRjYzVhZWQAfArs5z1vGCHoTnHvEp4sXhOif1s0MDAwMCBjb21wbGV4LW93bmVyLXZpZXctcmVmaW5lbWVudAAAhek9rT+Se6ENEdzBVfPkx6iX8zQwMDAwIGNvbXBsZXgtcDEwNC1tYXNrZWQtbG9jYWwtcmlnaWRpdHkAIqMFScodaCKsZVObEh2o/qOH7iU0MDAwMCBjb21wbGV4LXA0NDAtd2luZG93LXNob2NrcwDDug+F0etEB70ZcyVmktQ6cAybZTQwMDAwIGNvbXBsZXgtcGFja2V0LWJvcnJvd2luZzIzAL9JbfEw3Ah89itdbDx4xv1F2/GtNDAwMDAgY29tcGxleC1wYWlkLW1hc3MtYnVkZ2V0AFtqHj0g7JKROVnDLscuO08tARCPNDAwMDAgY29tcGxleC1wYWlyZWQyNi1jb21wbGV0aW9uANx43dQIekEowm3t6QpW3t6Aog9uNDAwMDAgY29tcGxleC1wYXJlbnQtcmV0dXJuLXJlZmluZW1lbnQALlDCF+XvruxkLzgWNLg70UBaCaw0MDAwMCBjb21wbGV4LXBhcml0eS1mcmFtZXMtc2VlZDM1AIAgC0CPTRDG5CsQuvbtb786nNAINDAwMDAgY29tcGxleC1wb29sZWQtZnVsbC1hZG1pc3Npb24AlPiCpZPf7O8ZstavqWki1y1k2vw0MDAwMCBjb21wbGV4LXBvcnQtc2hhcnAtY29uZGl0aW9uaW5nAC+6GXZWWZO2jul6/HKcEU9yVuPVNDAwMDAgY29tcGxleC1wcjYxNS1jZWlsaW5nLXZhbGlkYXRpb24AspTn/mVVFSiiO+XxmIum3piNfyU0MDAwMCBjb21wbGV4LXByNjE1LWNlaWxpbmcAbUvaLxxkILub/JxI9PI8rr+Kd4E0MDAwMCBjb21wbGV4LXByZWZpeC1ib3VuZGVkLWR5YWRpYwDiMy7SGzDLXpsbTci0wmS7wlcuBDQwMDAwIGNvbXBsZXgtcHJlZml4LW5hdGl2ZS1wb3J0cwA39hKN4v/CzQsAFwO9tnH8FSfb1TQwMDAwIGNvbXBsZXgtcHJvbW80LWNvbGQ3Mi12YWxpZGF0aW9uAGEBqyBk8QpweQRhMiGmAL7sK7wwNDAwMDAgY29tcGxleC1wcm9tbzQtY29sZDcyAE7P9AyVzdiLq3VbYeuFqUI25y2ZNDAwMDAgY29tcGxleC1wdW5jdHVyZS1kZXB0aC1jZWlsaW5nAAvfeDRp6Qg+OBBUzHJOcqOG7dZLNDAwMDAgY29tcGxleC1xdWV1ZS1jZWlsaW5nLWNlbnN1cwDKGNGj3XWHbE+346urkCRBFWiYCzQwMDAwIGNvbXBsZXgtcXVldWUtY2VpbGluZy11bmNvdmVyZWQAxaYxGkHdb8jsbkP1Fj/5n0dTtUk0MDAwMCBjb21wbGV4LXJhbmstb25lLWJsb2NrLWJ1ZGdldAAQURi59K9ApUvpeBIJ5tn9mZt3rjQwMDAwIGNvbXBsZXgtcmFuazItbWFjcm8tZnVzaW9uLXNjcmVlbgCxEGOMBJXp5bA9SiaiwgTg+xQGGzQwMDAwIGNvbXBsZXgtcmFuazItcmV0aW1pbmctc2VlZDczNTA2AAthzwl+8jRLov450d8+Q8DPukdRNDAwMDAgY29tcGxleC1yYW5rMi10b3VjaC1kZXB0aC1zZWVkMDY3NzNmNjAAeCF0LBRQnsrMv+UWXdlyN2HBLS40MDAwMCBjb21wbGV4LXJhbmszLWFuY2hvci1zZWVkM2Y3MwAkaAiS06gImUBE3U7SCWwHs1SiLzQwMDAwIGNvbXBsZXgtcmFuazQtcmV0aW1lZC1ibG9ja3MA+XJlc5VgFVUEbjerZF1wt8aLTUc0MDAwMCBjb21wbGV4LXJhbms1LXBpdm90czgtdmFsaWRhdGlvbgC6687A2RF/RGIGQFopXWer6qZFTjQwMDAwIGNvbXBsZXgtcmFuazUtcGl2b3RzOAB629pkrxjy0qM9c99K8mGnPJCBzTQwMDAwIGNvbXBsZXgtcmFuazYtaGV0ZXJvMjEtc2VlZGZiMTkANro+JZ0F5x8cr6gV+8nEKQndTJs0MDAwMCBjb21wbGV4LXJhbms2LW9uZS1za2lwLXBoYXNlYi1zZWVkMjFmZTFlALgDJpt4Qzb0EfHIr6Y42O/hFurONDAwMDAgY29tcGxleC1yYW5rNi1waGFzZWItc2VlZGI0M2EwMTdmAFgeDFyewDZ/l6yKWgqw3EIW2whqNDAwMDAgY29tcGxleC1yYW5rNy1lbmQtcGFpcgCewj8MnxBn+nEP6PvNU1AGa9skFzQwMDAwIGNvbXBsZXgtcmFuazctb3duZXItZXhjaGFuZ2VzAOTfgqijTXiReZ75HN5JyWPRZQi6NDAwMDAgY29tcGxleC1yYW5rOC1kZWNvZGVyLXJpZ2lkaXR5AJb2K2oFkikqtlZizzKkfMsjVYYVNDAwMDAgY29tcGxleC1yYW5rOC1wMTA3LXBpdm90cwB8iis5Gh0DpN13vuHjJV5U5Yaz0DQwMDAwIGNvbXBsZXgtcmFuazgtcmF0aW8tZ2x1aW5nLWF1ZGl0ACsktvyHDl6KBDKOqX+yKcNxUtAHNDAwMDAgY29tcGxleC1yYW5rOC1yaWdpZGl0eS1leHRlbnNpb24AB6LgoM78C3mLQijzeW9DghrjKFw0MDAwMCBjb21wbGV4LXJhbms4LXJpZ2lkaXR5LXAxMDQtYWRtaXNzaWJsZQA2v2vS+9aDBcyQChLT/EFbEaDiCzQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwNQCtARmtUQ5nC4gA24aaB6LnKMm+BjQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwNgC42IkF00M2KRPNltzdmDNIgajEfzQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwOAA76VzT1IIvZsvwTRqHdR6Gvo2bJjQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDEwOQBVLtSLuZXpFMBoqIOSL/Lhyxyy5jQwMDAwIGNvbXBsZXgtcmFuazgtcmlnaWRpdHktcDExMC1vZGQADO2xTtRSuIoKStqtwGW8qeedkkg0MDAwMCBjb21wbGV4LXJhbms4LXJpZ2lkaXR5LXAxMTEtcDEwNC00NABBfvopfUmZhldYxY92mgf3+1ti4jQwMDAwIGNvbXBsZXgtcmVhZC1leGNoYW5nZQBkRWa1zB4VadHwsYmNTn0vvvvjeTQwMDAwIGNvbXBsZXgtcmVjb3JkLWFtb3J0aXphdGlvbgDX+dh/rFEiyVpcPAADAFWAOhn9mTQwMDAwIGNvbXBsZXgtcmVzdG9yZWQtYm9ycm93ZWQtYm91bmRhcmllcwDGZiS9i51Yznd4bFdbKcdmM44/bTQwMDAwIGNvbXBsZXgtcmVzdG9yZWQtc291cmNlMjkAsD+VCHb67hZEJllujNeTa4bksYg0MDAwMCBjb21wbGV4LXJvb3QtYWRkcmVzcy1yZWZpbmVtZW50APRrQrae4m55Jck/wcT2qsgyAaeiNDAwMDAgY29tcGxleC1yb3V0aW5nLWxlYWYtZnVzaW9uAFqDNRK52Ku2eXOGTMyj00S8f1/JNDAwMDAgY29tcGxleC1zMy1jb252b2x1dGlvbi1zZWVkOGIxNwA2OOY6jZop393FjRqVoWKkDAi01zQwMDAwIGNvbXBsZXgtc2NyYXRjaC1mcmVlLWJvdW5kYXJpZXMA66QZgDZMGjH6S7sK/1iuKIePW8o0MDAwMCBjb21wbGV4LXNlZ21lbnQtYm91bmRhcnkAC4MSD2gBJtZWFbzxmPIS9/s8Wa80MDAwMCBjb21wbGV4LXNoYXJlZC1saW5lLXJhbmsyLXNlZWRjZWFjYTgACFPIIpW4MopNED7aOp3LYgWqLIM0MDAwMCBjb21wbGV4LXNoYXJlZC1wcm9kdWN0LXRyaXBsZS1zZWVkNWE3OAC/4OuohduHzEJVNwzUD85EADqv6jQwMDAwIGNvbXBsZXgtc2lnbmVkLWRpZ2l0AAMOz50dS2di0ZPy9rZej8raaIW0NDAwMDAgY29tcGxleC1zaWduZWQtcHJlZml4LWF1ZGl0ACeA3wZh9OXQxZKQp46gN0P6jpszNDAwMDAgY29tcGxleC1zbWFsbC1tLWxvd2VyLWJvdW5kcwCDjy8/xXDUuWH9mE6qA5wK3SM5VTQwMDAwIGNvbXBsZXgtc291cmNlLWZyYW1lLWZhbm91dC1zZWVkYzMwOQDGVMSja4fgUewXxyKfyWmBjN/ghDQwMDAwIGNvbXBsZXgtc3RhZ2UtZGlhZ29uYWwtbm9ybWFsaXphdGlvbi1zZWVkMjQAHdsWragjy8NPw8FqtmUX+m5/c+00MDAwMCBjb21wbGV4LXN0b3BwZWQtcmVjdXJzaW9uLWNvc3QAiWGzCeBjhpx49Ov1l1VMrltRv200MDAwMCBjb21wbGV4LXN3NC1mcmFtZTgtdmFsaWRhdGlvbgCHNHT//H1nF8JtirqDGqKv4UbvMDQwMDAwIGNvbXBsZXgtc3c0LWZyYW1lOABCm1+9JLxtwBxwsGxhHrzk2MGESjQwMDAwIGNvbXBsZXgtc3dhcC1ydW5zLXNlZWQzNwD27HcZ2LlJ99JSa8lKk4SkIpkzXjQwMDAwIGNvbXBsZXgtdDE2LWV2YWN1YXRpb24taW5jcmVtZW50AMDUO8kqYIkbwpSI2+6G2HAOmWiVNDAwMDAgY29tcGxleC10MTYtbmV1dHJhbC1leGNoYW5nZXMAumzZ14kj+QoW09vKm/9H9H8Z8800MDAwMCBjb21wbGV4LXQxNi1vd25lci1leGNoYW5nZXMAAtV3VWpqV5qlIllWM6bJU026u5Y0MDAwMCBjb21wbGV4LXQxNi1yYXJlLXBhdHRlcm4tZXhjaGFuZ2VzADghF5003Y/pXqwwM/ZuMpWv0FwdNDAwMDAgY29tcGxleC10MTYtdGFyZ2V0ZWQtcmVwYWNraW5nAEyeCEvJjxDg5QXY7k7J6WIoFZcHNDAwMDAgY29tcGxleC10MTYtdHdvLXN0YWdlLWN5Y2xlcwB3Qf/VvrL5FFZ8Xwko/IjtM4yvVDQwMDAwIGNvbXBsZXgtdDE2LXZhY2FuY3ktY2hhaW4AcgSesUpeyjxZ72U0qIwrOr+3O7I0MDAwMCBjb21wbGV4LXQyMS1vd25lci1ib3VuZABK/WzRPqTloybyMXzKRWslFGmhmDQwMDAwIGNvbXBsZXgtdDIxLW93bmVycy12YWxpZGF0aW9uAENEkh8PBDdsBKKNrGwOISVxfgsONDAwMDAgY29tcGxleC10MjEtb3duZXJzAFeKw24WtvWjM+9oAEur1aTmLJ2PNDAwMDAgY29tcGxleC10MzctZW5kczctb3duZXJzAN+VLT07qVT1FWsOWg+ndlZR9HG1NDAwMDAgY29tcGxleC10MzctaW5kZXBlbmRlbnQtc2VlZDM5ABmyzrOzovgXv8inKfdRkH+HRJzjNDAwMDAgY29tcGxleC10Mzctam9pbnQteDU0LW93bmVycwBZLkyY5bEAZnO0ryDLgsa+2hjTGDQwMDAwIGNvbXBsZXgtdDM3LW93bmVycwCBhJGagfHuVIl53XwI9PAJT4EQeDQwMDAwIGNvbXBsZXgtdDM3LXNldmVuLXNsb3Qtb3duZXJzAK9OjvkGygiWEK8sczAqpSVKvqICNDAwMDAgY29tcGxleC10MzctdmFsaWRhdGlvbgD9FmQlZDLLgYbjOfm+aaoHfazyTjQwMDAwIGNvbXBsZXgtdGVtcG9yYWwtZ2F1Z2UtcGFpci1zZWVkMjYA0gzDDQtwcOMVCKr4a7p47BQLSpg0MDAwMCBjb21wbGV4LXRlbXBvcmFsLXBhaXItc2VlZDI4ANQa/cYFRfAH05o7hiWGONZeB8ALNDAwMDAgY29tcGxleC10b29tMy1maXZlLXByb2R1Y3Qtc2NyZWVuAOkyR2Ul0foNJ1EnGSdebrzzk/EjNDAwMDAgY29tcGxleC10cmFjZS1qb2ludC1yZXRpbWluZwAmEIVN3MKW2SgtQctjSB+u1Y5CgDQwMDAwIGNvbXBsZXgtdHJhY2UtcmFuazUtcmVwbGF5ACPrvC58Ds9PpoUfnRL1OBhkP5wiNDAwMDAgY29tcGxleC10cmFjZS1yYW5rNQBFYIe3wSANRqD3bnPrI0p+U/l1HjQwMDAwIGNvbXBsZXgtdHdvLWltYWdlLWhvb2stcHJlZml4AA6jcnis0DVwjE2IM2qT0wQhogRdNDAwMDAgY29tcGxleC10d28tb3V0cHV0LXN1bS1hbmNob3Itc2VlZDY1Y2UxOQAXnt4FVC+T0SJ4stU7by+RIHFnNzQwMDAwIGNvbXBsZXgtdTEwLXQzNwAykEe1OzJBbFwbQcRIDpXQpDLTxzQwMDAwIGNvbXBsZXgtdW5pdC1waGFzZS1jb25uZWN0b3Itc2VlZDM5AEiw7+Nu36joOS3XfGmJu6jArSZANDAwMDAgY29tcGxleC13ZWlnaHRlZC1kaWFnb25hbC1yYW5rNTEA41KXhvSj5z9o6SFJwfsHCDa1hB00MDAwMCBjb21wbGV4LXg0LWNvbXBlbnNhdGlvbi1wYWlycwDoITaaXTBPXe2neW/lSX937fNuZTQwMDAwIGNvbXBsZXgteDQtZHlhZGljLWZvcmVzdC1zZWVkMzEAY2JrtOx15RhAFSMrBfkj8YWWHnY0MDAwMCBjb21wbGV4LXg0LWZyYW1lLWJvdW5kAJ4o23bTWSYonuhn6GKD6Da1WQsUNDAwMDAgY29tcGxleC14NC1zY2FsZWQtcGFpcnMAyNzfHdHvkjUgShj7R+xkJP6Lhuk0MDAwMCBjb21wbGV4LXg0LXRhcmdldC1mb3Jlc3QAZwRL91LDdGE4lCE5blcdvvcXFd80MDAwMCBjb21wbGV4NzQxLXBhcmFsbGVsLXJlcGxheQAJaoeHRrpTLkQWtComDTIxi+YoAzQwMDAwIGNvbXBvc2l0ZS1oZWlnaHQtYXVkaXQtc2VlZDY3AHSeCTPRxxlmn5frfrVD2XjaxuVYNDAwMDAgY29tcHJlc3Npb24tZXJyb3Itc3VtAHIRCrWHxvJJI9NYr4AIbaWgfDxHNDAwMDAgY29tcHV0YXRpb24tZnVzaW9uLW5pbmUA97rsR5Nm9x6yh7hOWV9eny+kw5Q0MDAwMCBjb25maW5lbWVudC1tdWx0aXBsaWNpdHkAePhCjdE9IwYLnRH96RGWg2Nlduc0MDAwMCBjb25uZWN0b3ItYWxsLXRhcmlmZi1vcHRpbXVtAPQhrdyYyACFxtNequp0A6E1YXckNDAwMDAgY29ubmVjdG9yLWItb2NjdXBhbmN5LXNhdAB8FzbtDj1qR2Ltv49ROmiM06QVSTQwMDAwIGNvbm5lY3Rvci1jYWxsZXItZXhoYXVzdGlvbi1hdWRpdACAu0HeM9Q60lxUBcbxysSpPZWjOjQwMDAwIGNvbm5lY3Rvci1jYXBhY2l0eS1wYXJpdHktYXVkaXQAFZ3ilJkTtxZxfv+x4HEd0eRZD2M0MDAwMCBjb25uZWN0b3ItY2hhcjQtZmxvb3ItYm91bmRzAEHRN6TvMpUqYsYJpXHDd0TicrMJNDAwMDAgY29ubmVjdG9yLWNoYXI0LWZsb29yLW9ic3RydWN0aW9ucwDd7+lpAPqgowQ0jkqe1YETG4C6njQwMDAwIGNvbm5lY3Rvci1jaGFydC1yYW5rLXJlcGFpcgDEQM00Zyk5RvfxCL0QgejBmANm8DQwMDAwIGNvbm5lY3Rvci1jb3ZlcmluZy1jb2RlABfdMvF9/m7O0xpJbnBjIVQlfvo/NDAwMDAgY29ubmVjdG9yLWRlbGl2ZXJ5LWN1dC1vcHRpbXVtAH2kasmEutWPOiMYDOcixAA0LsTVNDAwMDAgY29ubmVjdG9yLWRlcHRoLWJsb2NrcwBAILvF0LdZHoc6KWpVx1qfHVYebzQwMDAwIGNvbm5lY3Rvci1kaXJlY3QtY2FsbACD6ffG9V7SuG/6Ju6h2ICBXIhxFTQwMDAwIGNvbm5lY3Rvci1kb21haW4tY29tcGxldGVuZXNzANc1QY36pO0X1W7ZM6v/qALVzicmNDAwMDAgY29ubmVjdG9yLWZyYW1lLTczLWV4Y2x1c2lvbgBnMeKAoM+vPnAVoEYed9FOQyIwczQwMDAwIGNvbm5lY3Rvci1mcmFtZS1yaWdpZGl0eQCGsbl6BLE7zNe5yOgdI+ZO19+HWzQwMDAwIGNvbm5lY3Rvci1mcmVlLWFsZ2VicmEtc2VlZDc5AHX4FIfOgWmCnRvHgrKUAFEaWpAlNDAwMDAgY29ubmVjdG9yLW92ZXJsYXBwaW5nLXdpbmRvd3MAWKoy5ySkREQBbSJHZ1UWp4VbccI0MDAwMCBjb25uZWN0b3ItcGFpci1zb3VyY2UtcGF0aC1zZWVkMmNkYgD044vi3j+Tl7yxF1s2vk88P7OprzQwMDAwIGNvbm5lY3Rvci1wYXRoLXByb3BhZ2F0aW9uLWF1ZGl0ALXpvhTIVjyM6LBmkDqFTPy5uo3+NDAwMDAgY29ubmVjdG9yLXF1YWQtc2l4LXNlZWRkZTNmODQAUAHuRJ0CukI60fB5mb+ZcqkBK5E0MDAwMCBjb25uZWN0b3ItcmVhZC10cmFuc2Zlci10YXJpZmYAworKgX0N6G8ncMHMRCzTCGyU1R80MDAwMCBjb25uZWN0b3Itc2VhcmNoLWV4aGF1c3Rpb24tYXVkaXQAFbBOBVkbHWcZXbFHbbAmbbA9VqM0MDAwMCBjb25uZWN0b3Itc2V2ZW4tc291cmNlLWR1bwATYfMHfypCAIOoIkGjJTMNbnhXMjQwMDAwIGNvbm5lY3Rvci1zaXgtc291cmNlLWR1bwAFzOXNzHLEkYGxXF0sl8PB01pFpDQwMDAwIGNvbm5lY3Rvci10cmlvLWN5Y2xlMjUtc2VlZDFiODJkZgC16QWrg5hK7AOP7/+Z8XZKcrnf+TQwMDAwIGNvbm5lY3Rvci10cmlwbGUtcXVlcnktZmxvb3IAZeHVAcQhVDLYnTblyhohz/mq8Mk0MDAwMCBjb25uZWN0b3ItdHdvLXRyYW5zZmVyLWF1ZGl0AJV+WEUzbc7PmvDLgE+AVi4PjP2xNDAwMDAgY29udGV4dHVhbC1wcm92aWRlci1wb29saW5nAE/7w8u0uHy0Oc57oUNnFydHtzcMNDAwMDAgY29udHJvbGxlZC1ibG9jay1zaGVhcgD1GgEN9qNrL8rAqVS50DcCzA2mSDQwMDAwIGNvbnRyb2xsZXItYm9yZGVyLWludGVyZmFjZQBaLRhS6pmYjVlR90f+6xiuzlRksDQwMDAwIGNvbnRyb2xsZXItc3RhZ2UtY2VpbGluZwD9AHlfuSuB7dvaTS7risYj9Pq7DDQwMDAwIGNvbnRyb2xsZXItdGhpbm5pbmctZ2xvYmFsLWNlaWxpbmcAooePgR8vUfZyMgcR6scGIcTm9N80MDAwMCBjb252b2x1dGlvbi1zbG90LWJvdW5kAEWjxN07B9UYbj2bql/hDLGlHes+NDAwMDAgY29vcmQtcm9vdC1wMTEyLWdsb2JhbC1nYXVnZS1zZWVkNjU1NDI1AF5HZYJkvUh+nZe7i9Gz5E7mIJPbNDAwMDAgY29vcmQtcm9vdC1wMTEyLWxvY2FsLXRldHJhZC1nYXVnZS1zZWVkODIzMgAgdUzQgynpp02LKE3xlAB1XCDnkDQwMDAwIGNvb3JkaW5hdGUtY25vdC1hZGRyZXNzLXNwZWN0YXRvcgChusk19Lj/8Pihhj4Uo/YyX8IptzQwMDAwIGNvb3JkaW5hdGUtY25vdC1sYWJlbC1zYXR1cmF0aW9uADdfbDvNeqZmdT6nVFKHxTcKXmlqNDAwMDAgY29vcmRpbmF0ZS1jbm90LXJlZ2lzdGVyLWJvdW5kAPZ4j8L+2xo+zXabLzmT4RChHeNsNDAwMDAgY29vcmRpbmF0ZWQtY3Jvc3NvdmVyLXByMjAwLXYyAAv3viq3x1/AGc2LhLBXqmjGLfW6NDAwMDAgY29vcmRpbmF0ZWQtY3Jvc3NvdmVyLXByMjAwAFRgZHerTGxMto+rvSBIahgK0PouNDAwMDAgY29vcmRpbmF0ZWQtZnJhbWVzLWFuZC1lbnRyYW5jZS1iYW5rcwDYPs2kdGTXkaSeXw3wuRz5FVI3hTQwMDAwIGNvcGllZC1maXhlZC1yZXZlcnNlZABxmk57pJn99OKzO6sPBEiHHqRchDQwMDAwIGNvcGllZC1maXhlZACmNqs5s6uUQ3iKXGR1mdgc5HIRgTQwMDAwIGNvcGllZC1yZXZlcnNlZACTgQ6qxkQWtJfWi8uPV8gtpJ9CJTQwMDAwIGNvcGllZC10b3RhbC1yYW5rAGqnHRI8qAeSLhCGOW5ZdQVrOStVNDAwMDAgY29weS1mbG9vci1hcml0aG1ldGljAD0c4Yb2TLkuXMJMjgPTfU2nGJZYNDAwMDAgY29yYW5rb25lLWFsbC1maWVsZC1sYXcAZnzaq5fwy80J18NoraZK1ZmzD5s0MDAwMCBjb3JhbmtvbmUtZm91ci1jb3JyZWxhdGlvbgDFH8kTz7VYJj2GsTJ3woa9uSncpDQwMDAwIGNvcmFua29uZS1mb3VyLW5lZ2F0aXZlLWFzc29jaWF0aW9uAD/1lA0uogqBM9wFGzFSeruOGljyNDAwMDAgY29yYW5rb25lLXBhaXItY29ycmVsYXRpb24A2aFgD1ajyygiLBefDYXd5YRPz/o0MDAwMCBjb3JhbmtvbmUtcGFpci1oZWFkZXItbGF3ABmBgiNloG2/nu9q/F5DUYKq+D9HNDAwMDAgY29yYW5rb25lLXRyaXBsZS1ibG9jay1jb3JyZWxhdGlvbgCG25aDj7ZOMPD0qD2NXNjd+5eQyTQwMDAwIGNvcmFua29uZS10cmlwbGUtaGVhZGVyLWxhdwCe7LA81bvWhSbSnSZh+3RTcAmkBjQwMDAwIGNvcmFua29uZS10cmlwbGUtbmVnYXRpdmUtYXNzb2NpYXRpb24Aqu2w9WJhSok/9S9fWHzHOGyupdA0MDAwMCBjb3JlLWRvd25zZXQtcGFnZS1ncmlkLWJpbmRpbmcACwcHYHcX7jpcss1q8nB5FP3qLPw0MDAwMCBjb3JlLXJvdy1vcGVyYXRvci1saWZ0AC5BsUmHI/awP7cJVMz01xqywWhXNDAwMDAgY29yZS1zZWN0aW9uLWNhcGFjaXR5ANkUDIcfbNXrqXuFrdW2QY3JArelNDAwMDAgY29ycmVsYXRlZC11cGRhdGUtZGVsaXZlcnkAJCZC8WTVVc+Z6MVg2GvXMehEJIw0MDAwMCBjb3VudC1leHBvbmVudC1idWRnZXQAKDU9v5JamD6jsPM4QQZ6FKHkokI0MDAwMCBjb3VudGRvd24tcmlwcGxlLXN1bQCXDyGeIR6mxcsa9498jhfzpNwOijQwMDAwIGNvdW50ZXItcmV2ZXJzYWwtYXVkaXQA6aj8gqu0F7nCHLOcteW2angNJLA0MDAwMCBjb3VwbGVkLWNhcC1pbmRlcGVuZGVudAC1pEjLgsfS39gDt5edGMjklFGDkTQwMDAwIGNvdXBsZWQtY2FwNzQwLWJpbm9taWFsNDAAEjtOaV2RN/Hup7xbZOx9r5de+IU0MDAwMCBjb3VwbGVkLWNhcDc0MC1ncmlkMzUAx3Y4HP9SKthXmF+QVsYXwrdrjG40MDAwMCBjb3VwbGVkLWNhcnJpZXItY2FwNzQwAD4ke7kh9gIhd4z1KQaNJTupMwY3NDAwMDAgY291cGxlZC1jYXJyaWVyLWluZGVwZW5kZW50LWF1ZGl0AOBpMKFy/UrmuZuX3FLO04yRw3JcNDAwMDAgY291cGxlZC1jb21wYXJpc29uLWJhcnJpZXIAECcwfs4GeWIoFqZwUE3XpmKqVO40MDAwMCBjb3VwbGVkLXQyMC13aW5kb3ctYXVkaXQAjZ/4F8uKz1rJVn4pyC6AQYWKIK40MDAwMCBjb3VwbGVkLXRhaWwtc3VwcG9ydC1mbG9vcgBHVexo1RGJpZuV0lLwKew/fGK+AzQwMDAwIGNvdmFyaWFudC1yZWFkZXItbGlmdADncJcZdailc1iBUacn5m9GN3KpPTQwMDAwIGNvdmFyaWFudC10cmFuc3BvcnRlZC1zaGVhcgARtvYSL/XsYW21w8f8WXkoELRFHTQwMDAwIGNvdmVyYWdlLWxhdy1yZWxpZWYtcGFyZXRvAAdw3GN+c74NWyzmWoUus0pvcYI/NDAwMDAgY294ZXRlci1yb290LXRhcmlmZgAOahYuyrBeZS00eweqmi/1zX+wRjQwMDAwIGNyMi1iMi1hdWRpdC1zZWVkNGY0MzVhYjcA9KXJYJyMqwobCFCcpTxITc6BbhY0MDAwMCBjcml0aWNhbC1yb290LW11bHRpcGxpY2F0aW9uAI6U14Hlk8ClTSZAhG/CkuVjmJeFNDAwMDAgY3JpdGljYWwtc2xhY2stbXVsdGlwbGljYXRpb24AYbt1mdyYeGaiJI3XZDLJZRuNdkQ0MDAwMCBjcm9zcy1lbmRmcmFtZS1vYnNlcnZhYmlsaXR5AKC5wGphRLF6xSPLEgX5lSV83TOxNDAwMDAgY3Jvc3MtZmVkLWNvbm5lY3Rvci1oYW5kb2ZmALimIpqbrhYzabRcwgn4INi/R1zvNDAwMDAgY3Jvc3Mtcm91bmRpbmctY2hlY2sACmAatmvU/Aqu9IxdA7jTJXkyFpQ0MDAwMCBjcm9zcy1zaGVhci1zdGFnZS1ib3VuZAB7HwqAg6z1S4S8bd/GdO+eqwUhLTQwMDAwIGNyb3NzY2FsbC1rZXJuZWwtZGVtb3Rpb24AJGE9BNlFMX1tOno/zB5vac9K1+o0MDAwMCBjcm9zc2NhbGwtdDM3LWVudHJhbmNlcwDUebiyfzWWcpg3zh0L6aPyIQOZIjQwMDAwIGNydC1hY3R1YWwtZ2VvbWV0cnktZGVzY3JpcHRvcgB8bzFD8poX/mN5nIz1yEIxf+ZTCDQwMDAwIGNydC1hZGRyZXNzLXN0cmVhbXMA2ctGYpM2DZDUZKz1G7eG97ac1VE0MDAwMCBjcnQtYXJiaXRyYXJ5LXNvdXJjZS1yZXBhaXIAZLDIAp5rDE4L0B1uxdlZLFLy/xQ0MDAwMCBjcnQtYXJlbmEtYmF0Y2gtdGhyZXNob2xkAB/dBBcQeG/18gUf7dLEvdb1UdqfNDAwMDAgY3J0LWFyZW5hLXJvb3QtYXhpcwCPyoAjGadnxuPF5QeR0p5Ok9ZdTTQwMDAwIGNydC1iaW5hcnkta2V5LXBvcnQAF/c8O58AWMFXGUmwrBbjYQEUv/M0MDAwMCBjcnQtYmluYXJ5LXJhZGl4LWNvbnN1bWVyAPnWjhjlj5UsoMiNFRKwSsGISuyeNDAwMDAgY3J0LWNvbXBsZXRlLXJlcGFpci1jb250cm9sALRUpoeHnnuOI99aemoaJUJ9650+NDAwMDAgY3J0LWRlbnNlLWd1YXJkLXNjYW4AllPKvJk9/i4Vm81xuK8Kf84vOdw0MDAwMCBjcnQtZW5jb2RlZC1iZW5lcy1yb20tcHJvZHVjZXIA7JCYKSPcK0OEmoGk9+2beFrZszI0MDAwMCBjcnQtZXZhbHVhdG9yLWluZGVwZW5kZW50LWNoZWNrAFVv45iKwuyVWiWCZ4T/wCgRTUebNDAwMDAgY3J0LWV2YWx1YXRvci1sYXlvdXQtYmluZGluZwBqCmbCtceLj7btK4dQZEagpNkKwDQwMDAwIGNydC1mb3VyLWNvbHVtbi1yZXBhaXItaW50ZXJmYWNlADSnbyWMTKthUqlulB0KmIlL9LoLNDAwMDAgY3J0LWludGVyY2hhbmdlLXdpZHRoLXRocmVzaG9sZAA1PUC1BiQr/3yT8zEu6O6g9EsxaTQwMDAwIGNydC1qb2luZWQtaG9sZS1yZXBhaXIAz1tosbC65fD56Y4D6hNiSwIMG9E0MDAwMCBjcnQtbWFzay1yZXBhaXItYnJpZGdlAAxcH/7lacOtW3oe+dIRN5kW6ubQNDAwMDAgY3J0LW1peGVkLXdpZHRoLWNhbGxlcgDElguK5eSDH+grokWAbcQBdO+0KzQwMDAwIGNydC1vbmUtaW52ZXJzZS1jYWNoZQBaNlzpK8C3KCt+mAbevq9IqDeSGDQwMDAwIGNydC1wYWlkLWtleS1zZXJ2aWNlAHYT65KpXhqDv12BiZCB82JfvgTINDAwMDAgY3J0LXJlcGFpci1xdWVyeS1idWRnZXQA+KZVR8Sb9HorfNJYdPWvEWyMFmA0MDAwMCBjcnQtcmVzZXJ2b2lyLWVkZ2UtYWxsb3dhbmNlANuldZ8rVb2NCeT0oBDV5xZVezk9NDAwMDAgY3J0LXJlc2Vydm9pci1lbnZlbG9wZS1wcm9kdWN0AAnRf+qcvY/euzt/2KJK90xklUQ2NDAwMDAgY3J0LXJlc2Vydm9pci1pbnRlcmNoYW5nZS1iaWxsAOZl/PkTaX/mmnglUlzrG/v3UwxdNDAwMDAgY3J0LXJlc2Vydm9pci1sZW5ndGgtY29uc3RhbnQADFIqAkx9Sq234VNOHasB5XBvnTo0MDAwMCBjcnQtcmVzZXJ2b2lyLWxlbmd0aC1oeXBvdGhlc2lzAPmoLOWl9rgrh4Pb0r4Tdxo0KmNMNDAwMDAgY3J0LXJlc2Vydm9pci1wbGFjZW1lbnQANdWg6VeYXpDUvZUo1YikxxpmN6g0MDAwMCBjcnQtcmVzZXJ2b2lyLXByb2R1Y3Rpb24tcmF0aW8AK691cColBS1KHkoQKl/DXUamx/E0MDAwMCBjcnQtcmVzZXJ2b2lyLXVuaWZvcm0tY29uc3RhbnQAkm0T0562BCnRu9LiJVS495DJ2rk0MDAwMCBjcnQtdHJhbnNwb3J0ZWQta2V5LXRhcGUARp8p0UpKXFOUJtzAKw4RUb6tszY0MDAwMCBjcnQtdHdvLXRhcmdldC1zdGVuY2lsALUiYnVNwqNvqwlQauuvPtD+BQGBNDAwMDAgY3J0LXVuYXJ5LXN0ZW5jaWwtcHJvZHVjZXIASZZZw+ab/XBMoxxv3o/v4ySDRIA0MDAwMCBjcnQtdW5pZm9ybS1ldmFsdWF0b3IAK++Z2ZsmIG9H0FYHtXr2s50NgYg0MDAwMCBjcnQtdW5pZm9ybS1yb20tcXVlcnkAiOxXbFh6/mRiTBbtzHLk/y+ET6k0MDAwMCBjdWJlLXhvci1yZXBsYXkA83VurOHuIK82trumKlsrrGYFyWo0MDAwMCBjdWJlLXplcm8tbGlmdC1vYnN0cnVjdGlvbgCrOPrtzLtH5kPUbCuURWEuc8AtfDQwMDAwIGN1YmUtemVyby10aHJlZS1mYWN0b3IA0QNVShwxA3R3B7WD1jA+QAdJOBA0MDAwMCBjdWJpYy1jeWNsaWMtaW52ZXJzZS12YWxpZGF0aW9uAK0jaNkk0TIvnsQEzuFHCynDasXCNDAwMDAgY3ViaWMtY3ljbGljLWludmVyc2UARqkh1uNEggYa7rYNJdExRUWEBlw0MDAwMCBjdWJpYy1zY2FsYXItY2FsbGVyLWJvdW5kcwC1pGOoKyMmq9LZTVweflcXpj2d7jQwMDAwIGN1dDU4LWFkZHJlc3Mtc3dhcC1tZW51AOQlVPsnhV9mIl6NVSIaiNZUKbN4NDAwMDAgY3V0NTgtc2VwYXJhYmxlLXF1ZXJ5LWZsb29yAEughW2qlj47Os/0jKutg7lPt/e6NDAwMDAgY3V0b2ZmLXNlcXVlbmNlLWxvY2F0aW9uAEE8RXQHmyRvcTUzQKrSA6/cP5CwNDAwMDAgY3ljbGUtc2NodXItb3B0aW1hbC1vcmRlcgDNmmKLKxIPeylByU4e2Pq4yNGbMjQwMDAwIGN5Y2xlNDctc2hhcmVkLWZyYW1lLWNvcnJlY3Rpb24Abzi9hmVLwPVemaLUk5r8dTmYtM00MDAwMCBjeWNsaWMtNDItZGVzaWduACwOy1w4kj8rW69vtyjzYatxveOnNDAwMDAgY3ljbGljLWJhbmQtZ2FwLXNvbHZlcgAwLxtvxWgKK0wV4zmbJ0QAOE2zLzQwMDAwIGN5Y2xpYy1jaGVja3BvaW50LWNvc3QAicSrwN9Vi8u3mBTfF4pj/KiavYo0MDAwMCBjeWNsaWMtZGlydHktY29tbXV0YXRvci1hdWRpdABIOBiYVk2XUrRcqAEnKyTQqk9QajQwMDAwIGN5Y2xpYy1mb3VyaWVyLXRyYW5zZmVyLWF1ZGl0AGBj3pkrZAAJaTadqdLKadcc73xFNDAwMDAgY3ljbGljLWludmVyc2Utc3RyaWRlLWJyaWRnZQDdoWTE/7rd4lMn23Qw3STRX/lgvTQwMDAwIGN5Y2xpYy1vdXRwdXQtcmVzdG9yYXRpb24AJXXdJ6O23GgRfwGFar9NkyRbKAQ0MDAwMCBjeWNsaWMtcHJvZHVjdC1nYXAtYXVkaXQA7YFi01zUDvXML4bHeYNgQztVf8M0MDAwMCBjeWNsaWMtcm91dGluZy1wZXJmb3JtYW5jZQBCa9xoWlP0RIfUOUtNfEfs1qc1gzQwMDAwIGN5Y2xpYy1zY2FuLXNoYXJwLWJvdW5kAC8jqsbZzwQ4Xl/DbRFTE4jpRVTNNDAwMDAgY3ljbGljLXNjaHVyLWxlYW4AH5A76+Qw/n6lElNWd6z8I7TaYLc0MDAwMCBjeWNsaWMtc291cmNlLXJvb3Qtc3RvY2sAeZFBo5JXOrJUDQ25osvxydqFL980MDAwMCBjeWNsaWMtc3RyaWRlLWVmZmVjdGl2ZS1kZXB0aC12YWxpZGF0aW9uACxYauVF9Gy3EANDW6UAwrFMkhJhNDAwMDAgY3ljbGljLXN0cmlkZS1lZmZlY3RpdmUtZGVwdGgAKzPc+MSrZ0JlyeaTDELL/CYJwQg0MDAwMCBjeWNsaWMtc3RyaWRlLWluZGVwZW5kZW50AK1Htc2c9hZlrwh3NWc/cUpiF2RNNDAwMDAgY3ljbGljLXplcm8tZWxpbWluYXRpb24AXY540nghceQxIvvKvjHGDFgMlAQ0MDAwMCBkMTAtcmVmbGVjdGlvbi1zaGFyaW5nLXNlZWRhM2RlZjgAZ8F494eezSZYifanS5QWoT6PbNY0MDAwMCBkNC1vcGVuLWNhcnJpZXItaW50ZXJmYWNlcwCLGMDvDiaTGR6SejR29f5TuJL59jQwMDAwIGQ2LWF4aXMtY29uY2VudHJhdGlvbjE0AIWEBsnKB/+eYXlGWTGOhEfU2jT2NDAwMDAgZDYtcHVuY3R1cmVkLWNhcGFjaXR5MTgACkCtJK3BhTynv2s+asmcZP4lK4Q0MDAwMCBkOC1pbnZlcnNlLXBhaXItdGhpcmQtcm9sZS1zZWVkZGYxZTY3AEySL5jln/MwHb/mYdhCNRKJRsVHNDAwMDAgZDgtbWl4ZWQtdGFyZ2V0LXNlZWRhOTdjOGUA++f3hJn8N+s0/rGpX4YdvodwgkM0MDAwMCBkOC1yb3RhdGlvbi1wYWlyLXNlZWRmZjU2OAC0qDPCuLNpm85xC7TXYzvoQ2hLgzQwMDAwIGQ4LXRoaXJkLXJlZ2lzdGVyLXNlZWQ4OWRlAMjgJVC6FFZgJCN4pfF7YQPZyMu3NDAwMDAgZGF0YS1jb3JuZXItcGVyZm9ybWFuY2UAe6tjhltLg+M97KcgbvN6u6Mmb7M0MDAwMCBkYXRhLWNvcm5lci1wcm9kdWN0aW9uAOadLtrAED9eBfGzH4Igizk+3VuhNDAwMDAgZGVjb2Rlci1jZXJ0aWZpY2F0ZS1jZWlsaW5ncwAxU9XVDJKbDCKcHMuSkY2CmLBoFDQwMDAwIGRlY29kZXItZXhjZXNzLXJhbmsAjZHoa8f3EZ7E/n8JdXmEpiC+j740MDAwMCBkZWNvZGVyLWZsb29ycy1jbG9zdXJlcwCOckAb8WRYCSimutdcr9pu6ExrzDQwMDAwIGRlY29kZXItZmxvb3JzLWZyb250aWVyLWZvcm1hdADr3yLjcMRI6tAwp9AeHQeijl7QSzQwMDAwIGRlZmVycmVkLWhlbHBlci1zdW0ANVj19HsFIgvmavXxRT4d5oLM5tg0MDAwMCBkZWdyZWUtZ2FwLWNsZWFyYW5jZQAqbOuTZ9sU55GlSMQJRzmhgW6IejQwMDAwIGRlbHRhLWNyb3NzLWNlbGwtaW5kZXBlbmRlbnQtYXVkaXQAqAEGIzzfASwc8aC6lSlqCxqMwu80MDAwMCBkZWx0YS1jcm9zcy1jZWxsLXRyYW5zZmVyAK7/QHy5V51J0SpplQ+2lQrZpJG9NDAwMDAgZGVsdGEtaGFsby1leHBvbmVudC1jaGVjawA0dch0sDhS/5Jkd0RF/uj9zXKjLTQwMDAwIGRlbW90ZTYzNS10MTYAQoJdHdSDyaxAN68i9eHhGo2DLrk0MDAwMCBkZW5zZS1wYWlyZWQtY29sbGVjdG9yACU0ZJc6qGE0LNNk/ASz52EjryJLNDAwMDAgZGVwdGgzLWNoYWluLWNvbm5lY3RvcgCsDxM2Z06+NQYsfIbHZW1TItcwrDQwMDAwIGRlcHRoNC1jaGFpbi1jb25uZWN0b3IAJdNv8frGPSmlBKibKAKpu1ad9Io0MDAwMCBkZXB0aDQtY2hhaW4tcm93bW9kZWwA+GUc0LBLl/MkT01EHa6bzwYN15k0MDAwMCBkZXB0aDQtY2hhaW4tdGFyaWZmADYOgETIMY+S0YaY2pFXwlneWW+RNDAwMDAgZGVwdGg0LWNvdW50LXZlY3RvcnMtY2hlY2sAs4/bbEP8y+1b4su/P6Xq0dffYxw0MDAwMCBkZXB0aDQtdHdvLXJvdy1vYnN0cnVjdGlvbgC8pdoJ7ICCBvOkU2Nft5V6rSueFDQwMDAwIGRlcHRoNS1jaGFpbi1jb25uZWN0b3IA8JG566PIyQBq+giCVwKxtC+QBGs0MDAwMCBkZXB0aDUtY29ubmVjdG9yLWluZGVwZW5kZW50LWJmcwDN8kCCjP2R8Yr8WQEU5EeqAkZxUzQwMDAwIGRlcHRoNS1jb25uZWN0b3ItbWl0bQBEwo3uApBgrJzuDbeZzBX+uRbOKTQwMDAwIGRlcHRoNS1jb25uZWN0b3ItcmVzaWR1ZXMA/qDD17zf9kh5V7SdiB4ZhfLa02U0MDAwMCBkZXB0aDYtYmluYXJ5LWNoYWluAOWkm39YBoleQHmS0qkNgX0+pc83NDAwMDAgZGVwdGg2LWNoYWluLXJldGltaW5nAGKkOm59I6XkrJNsPFM02LOmb9J6NDAwMDAgZGVzY2VuZGluZy1pbnZhcmlhbnQtYWxscAAqOXvgu9NuH3ZJhskBC0q2vMwdYjQwMDAwIGRpYWdvbmFsLWJhdGNoLWNvbW11dGF0aW9uAGySDMBt5dFL9GNoXMiq06+K/fSxNDAwMDAgZGlhZ29uYWwtbWV0cmljLWZ1bGwtYm94AKhiyoSa6U7W46eSQOSGEhhYpr2qNDAwMDAgZGlhZ29uYWwtcmV0aW1pbmctaG9zdC1ib3VuZGFyeQAMFge7smYzw0zkbyiRzATxkhoQrzQwMDAwIGRpYWdvbmFsLXRlbnNvci1wcm9qZWN0aW9uLWJhcnJpZXIAhljFdLNJIhobWzNhkLqYOf/awbc0MDAwMCBkaWN5Y2xpYy1zaXgtY2FsbC1ib3VuZGFyeQB61oFB6TaNi3pZzW3oY7crZJ5UnTQwMDAwIGRpaGVkcmFsLWFyYml0cmFyeS1jb3VwbGluZ3MATsVTUTSH1Vtfp3XVXo2SMXIZlgo0MDAwMCBkaW5mLW9wcG9zaXRlLXRyYW5zbGF0aW9uLXR3by1yb2xlLXNlZWRjMWZiMjkAnkiqo6srF38COguSbsEos4JwQdI0MDAwMCBkaXJlY3QtZGVsaXZlcnk1MDQtZ2xvYmFsADx3jxS+KaPKOjC0eBkdW2QGzEWRNDAwMDAgZGlyZWN0LWZsb3ctYm91bmRhcnktc2hhcmUAmawtaOZBRxtXCYvjpeLRnHAaXc80MDAwMCBkaXJlY3QtZmxvdy1jaGFpbi1yZWNlaXB0AKG+OoYmfr8ay2rIoOpSnj/LpGnjNDAwMDAgZGlyZWN0LWZsb3ctZXhwYW5kZWQtYXVkaXQA2WFbmqBRXProHVcxB85PRWAMU1I0MDAwMCBkaXJlY3QtZmxvdy1sZWFmLXdhbGsA47W/Z2x2mvDu1/jRuyZhfhzAOq00MDAwMCBkaXJlY3QtZmxvdy1sb2ctZ2FwAE2bIfDBRvdUAFMwctzSmnM9Emb9NDAwMDAgZGlyZWN0LWZsb3ctd2lkdGgtY2hlY2sAnsOQqYZdB1O8g9U89FyXGN66BWs0MDAwMCBkaXJlY3QtZnJhbWUtc3RhZ2UtYmlsbHMA6rNDdJHI+KPvzVwGriH/DaAStoc0MDAwMCBkaXJlY3QtbWl4ZWQtZmxvdwAw10zwvNdge9RzGqCpnNOC9R+k3TQwMDAwIGRpcmVjdC1zZWxlY3RlZC14b3IAEoyzzKcpiZ7kNUNkYeamvkFFFY00MDAwMCBkaXJlY3QtdHdpZGRsZS10YXBlcwBWi5TpocbBd+CpZyuolHUvOETGIzQwMDAwIGRpcmVjdDUwNC1rZXJuZWw5Mi1saWZ0cy12YWxpZGF0aW9uAIJJkJ++8Naxna4dToqDABW7r1GsNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLWxpZnRzANz8I4vLtcUuiXmK6uzaQX+5xuxUNDAwMDAgZGlyZWN0NTA0LWtlcm5lbDkyLXZhbGlkYXRpb24AfqvMN4pACBH1MMjfWkjYCJKdXBU0MDAwMCBkaXJlY3Q1MDQta2VybmVsOTIAhVIbDR+H0hevbSGh3XckspC2c1s0MDAwMCBkaXJlY3Q1ODQtY29tbXV0aW5nLXJldGltaW5nLWNvdmVyADLmucEm4Drje6KeXA1AwH7gEbqYNDAwMDAgZGlyZWN0b3J5LXByb2R1Y2VyLWludm9pY2UARG1qwbE6k1XNiJie6LBjRWvJ1gw0MDAwMCBkaXJ0eS1hbmNob3ItZWRnZS10YXJpZmZzAOEYXMwgA5GldyNz9B1Yxm6YywW5NDAwMDAgZGlydHktYW5jaG9yLXRyYWRlb2ZmANt799hTlr+5zyqvEdvwDeXYRD/dNDAwMDAgZGlydHktYnVmZmVyLXhvcgAuVaR9gCEiBHqaunje2sXZgR+f5jQwMDAwIGRpcnR5LWNvbm5lY3Rvci1jaGFydC10cmFuc3BvcnQAhpP9OxG9VUdVEQAoOqgw3Cra3h40MDAwMCBkaXJ0eS1jdWJpYy1wcmVjaXNpb24tdmFsaWRhdGlvbgDQ46gkjkapyXuzVM/WdKHHr+yiJDQwMDAwIGRpcnR5LWN1YmljLXByZWNpc2lvbgAy0XhKharBOC8XHTFZzB2gtU9itDQwMDAwIGRpcnR5LWRpc3BhdGNoZXItaW52YXJpYW50cy1zZWVkNzUAfTT2dUr690oWABVuNjE/h/fW5d40MDAwMCBkaXJ0eS1lY2hvLWludGVncmF0aW9uAEUBx+A3uidmtsZIABJdpE8gytC9NDAwMDAgZGlydHktZWNoby1tYXhpbWFsLWVxdWFsaXR5AOumorV04eUEoB+2uf39CnonVQy2NDAwMDAgZGlydHktZWNoby1zcGFjZS1hdWRpdAD13h7wL9zs2IgovxKjVU1ntDnNCDQwMDAwIGRpcnR5LWVjaG8tc3BhY2UtYnVkZ2V0AIi/e8P00D3WGUtC23E1m92sLwYaNDAwMDAgZGlydHktZW5kcG9pbnQtZGVmZWN0ACneniJRjQvt55WnDgsptWRVvN/MNDAwMDAgZGlydHktZW5kcG9pbnQtZXJyb3ItYWNjdW11bGF0aW9uAGOp4/142CJXuDUhKRXwa8f0JdYUNDAwMDAgZGlydHktZmFub3V0LWJhdGNoAPfJnwBuaf4fLCXZBNj4IBvpckZdNDAwMDAgZGlydHktZmFub3V0LWN1dC1jZXJ0aWZpY2F0ZQA0xAcfg9gVyNPkaimEWbR6KEfZ+TQwMDAwIGRpcnR5LWZhbm91dC1zdGFyLWNlbnN1cwDgezzrvejMuWQw4byERyDgF56jRzQwMDAwIGRpcnR5LWhvc3QtY3V0cmFuay1hdWRpdAC8QUJkpvI8Ye8VImaWY6uxCDdzajQwMDAwIGRpcnR5LWhvc3QtZ2F1Z2UtYmluZGluZy1zZWVkZWEyZQAfl2oQWvwMbinuUgiPySkKDSgt/jQwMDAwIGRpcnR5LWludGVydmFsLWNvZWZmaWNpZW50LWJvdW5kYXJ5AAEzzFA+y4oxYeqxrE0O0JliTv+RNDAwMDAgZGlydHktaW50ZXJ2YWwtcHJvcGFnYXRvci1hdWRpdABJQcdWPql2wNarAkqY0uj4pltMvTQwMDAwIGRpcnR5LW91dHB1dC1hbmNob3Itc2VlZC1kYTFlYzNmMAA8lKVj5B+7rD32bNZjukQBk75OmzQwMDAwIGRpcnR5LW91dHB1dC1kZWx0YS1zZWVkLWI5ZWFjMgAhX9zsSqJM0LZM21TXYD/k2jRasTQwMDAwIGRpcnR5LXBhZGRpbmctZXhjaGFuZ2UtYm91bmRhcnkAPJBRyMbNGrqd7rSATb6Kom/NEgY0MDAwMCBkaXJ0eS1wYXJpdHktOHEtb2JzdHJ1Y3Rpb24A24Mo1y/3diaKTyyW2eZ7yHhyyhI0MDAwMCBkaXJ0eS1wcmVmaXgtZnVsbC1ncmlkABHFeUx+8DVthp6r7fvqdMVOpjL6NDAwMDAgZGlydHktcHJlZml4LW1vbm9taWFsLWF1ZGl0ANmSVzFk+EYkXOXEMzJJY4g0NGrbNDAwMDAgZGlydHktcHJlZml4LXByZWNpc2lvbgAlxbrn8fDql1+7s/oVulU3AmTToDQwMDAwIGRpcnR5LXNoYWRvdy04cS1vYnN0cnVjdGlvbgAX6CrGm7NRwG/NKJKgebDtkTREwDQwMDAwIGRpcnR5LXN0cmlkZS1mYXN0LXBoYXNlcwCjoOH1SbUwbdhUMDybhea31mdU+jQwMDAwIGRpcnR5LXN0cmlkZS1waGFzZXMAJPys3/saErJi3BUitH3joWpGdMY0MDAwMCBkaXJ0eS1zdHJpZGUtcHJlY2lzaW9uALmnS6tVp9TupAwEY7eBsihZ1GQNNDAwMDAgZGlydHktc3RyaWRlLXNvdXJjZS1yZXVzZQBOhxip58KgDhyU/5Pznu6CUqATOzQwMDAwIGRpc2pvaW50LWZyYW1lLXVuaW9ucwC5MOoOA6JGGOpnvH/bjuqoA+V5fDQwMDAwIGRpc2pvaW50LWpvaW50LXRpZXMAlHd5rfBkT/GdM8CFpMJKPdjPHt40MDAwMCBkaXNqb2ludC1yb290LWNvbnRyYWN0aW9ucwCrHYfh9GHRTcyF8I9jHEh4ryi21jQwMDAwIGRpc2pvaW50LXRlbnNvci1mcmFtZS11bmlvbnMA5/9ad+gnMRzfql/kCMPoHmCp3oE0MDAwMCBkaXNqb2ludC10ZW5zb3Itc3VwcG9ydC1tYXNrcwDd+YkW9bhcgLD9lDrLM8mDM2nsyjQwMDAwIGRuLWJpcGFydGl0ZS1iYXNpcy1mbG9vcgBVf3GlOLVit3KNU/ywuegjOhvfUjQwMDAwIGRuLWNvb3JkaW5hdGUtcGFpcmluZy1zcGVjdHJ1bQAmqyhuebv+8bSD09i+WS6t0qqXuTQwMDAwIGRuLW9uZS1leHRyYS1nYXAAVy+l2O9+494pa9pAkMvTBsGFx2k0MDAwMCBkbi10d28tc2hlYXItcGFpcmluZy1mbG9vcgACxAXkfSTut6uHE9fduMBGQR9D3jQwMDAwIGRuLXVucmVzdHJpY3RlZC1yb290LWNvZGUtZmxvb3IAHzCjdSsfQvvLsnvHOGcqrKh4SXc0MDAwMCBkb3duc2V0LWJsb2NrLXNvbHZlLWJvdW5kAGTj9Dsf+Xd7AWfYtZoECps3V1MSNDAwMDAgZHVhbC1iYXNpcy1ncmFtAEAPmRdh55F7GbZ6fnRPSlLMvm4/NDAwMDAgZHVvLXRvZ2dsZS1jb25uZWN0b3IAiPvVKkz3OzHZqDGXbegJQ15ZflY0MDAwMCBkeWFkaWMtYWZmaW5lLXN0cmVhbXMA8bAH8p5oOyilQsYn7MUMLQ2Ms840MDAwMCBkeWFkaWMtYml0LWFsbG9jYXRpb24AR20glF3bH3pXzn2OdUXYdsoOuU80MDAwMCBkeWFkaWMtYmxvY2stY29tcGlsZXIAITJuYwOGeg0LT3ZMwYPiLMqV0hs0MDAwMCBkeWFkaWMtY2VudGVyLWFuY2hvci1ib3VuZABIoJYoBhW9MaFg9SXKmffrzzCFMDQwMDAwIGR5YWRpYy1jZW50ZXItYmFzaXMtc2hlYXIAdhFnQibtP6rBvbbtxDfRKkA21E00MDAwMCBkeWFkaWMtY2VudGVyLXR3by1zaGVhcgDNYQbAiwqr2YTPgD3/bMVMlg+oLTQwMDAwIGR5YWRpYy1mcmFjdGlvbmFsLWdyaWQAu8dVnEZy4XHt9Dq4C4AIDCVM5JE0MDAwMCBkeWFkaWMtaG9ybmVyLWRpcmVjdGlvbgA5/7Jqg1XQdRkXU2Njs6O+lEMhjzQwMDAwIGR5YWRpYy1xdWVyeS1wYWlyALEBi189G+Z7lJ4OdsVZxzJ3dNr9NDAwMDAgZHlhZGljLXF1ZXJ5LXJ1bnMAejeC/udf4fTGtqz/M7FtVxZFbYU0MDAwMCBkeWFkaWMtcmFua29uZS1ib3Jyb3dpbmcAWx5loNrDSTNPednYOiEYtn8BFOQ0MDAwMCBkeWFkaWMtcm90YXRpb24tc3dpdGNoLXRhcmlmZgDj+HdpGdJqXdWQBzkFww8ybd1BPTQwMDAwIGR5YWRpYy1yb3VuZGluZy1hZ3JlZW1lbnQtZGVuc2l0eQCWpn3Z51+T2D6v0Cdz38+9jiLc1DQwMDAwIGU2LWFkYXB0ZWQtcGFpcmluZy1wcm9qZWN0ZWQtZ3JhbS1zZWVkMDg4MwDc/KPPNJIHB1Q2DisubLaYrXZ2MTQwMDAwIGU2LWNvb3JkaW5hdGUtYmlsaW5lYXItZm9ybS1zZWVkOGU5Y2YyAJjxfEiZmmJZw4SlY+S32Hluo59mNDAwMDAgZTYtZDUtZ3JhbS1yZWFsaXNhdGlvbi1yaWdpZGl0eQB8XGav6vxJNAb3N0kw6KG359LcZDQwMDAwIGU2LW9uZS1leHRyYS1mcmFtZS1zZWVkNGRkOQDA7b/u+PZEleWkM2YnjuH1B54z4DQwMDAwIGU2LXNoZWFyZWQtZnJhbWUtc2VlZGI0MDEATft9nvIrPW7dXuHoEwwvJaynanc0MDAwMCBlNy1nZW5lcmF0b3Itc3BhbgDKkNAKnrcVRdkNfiBDkcNOvG+4XzQwMDAwIGU3LXF1YWRyYXRpYy1zdXBwb3J0AAoAOC7ThK+7pzKiFLw/yiAfNCvoNDAwMDAgZTgtYTItYW5hbHl0aWMtcmFuazYAiNoVMx1RURvjtT6+EuzDV3xVcZk0MDAwMCBlOC1hMi1qb2ludC1pbmNpZGVuY2UyMAB2/VXFoZ/qQCWucmpZ1QQEbiRpazQwMDAwIGU4LWEyLW91dHNpZGUtcmFuazYAxpOc//JALEn9edVmj3Gnb8Qm5p80MDAwMCBlOC1hMi10cmlwbGUtZ2F0aGVycwD/qwXCqRqeJmhuPepydg+4ViKvGDQwMDAwIGU4LWJhc2lzLWV4Y2hhbmdlABidGPV5xctHjjgpB98YqnvENjfJNDAwMDAgZTgtYml0LWNhcnJpZXItc2tlbGV0b24AAHRYLjWLEILS9vKh0BS2OShNoac0MDAwMCBlOC1iaXQtcDExMS10dW5lZACdZrvFhkOQOLEUVeqcXTKn8j+i/jQwMDAwIGU4LWJpdC1wMTExAGMl2K1ZMYsYjwCEAvvyanyZ060hNDAwMDAgZTgtYml0LXI0MjAA1CD3b53f7eDNL9/WkEBOlwgc6AQ0MDAwMCBlOC1jb21wbGV4LWdhdWdlLWtlcm5lbADZGO5cTtd2PPEO6zxnjqhz4Iv8IzQwMDAwIGU4LWNvbm5lY3Rpdml0eS1pbmNpZGVuY2UtYm91bmRhcnkAmooRBkOLumqc6C0DWMpgFafdIGE0MDAwMCBlOC1jb3VwbGVkLWNvb3JkaW5hdGUtZmxvb3IALHwlh3z4sY9b57s0FrQKhSODaeo0MDAwMCBlOC1kMC1yb290LXN3YXBzAEMg8IOefE83rLzI4z+eko+smOCGNDAwMDAgZTgtZGVjb2Rlci1mbG9vcnMtYW5kLWNvbGQxNC1ub3RlcwDZMO0e21zZFDGQ3vrujkBpd6wWvzQwMDAwIGU4LWRpcmVjdC1zb3VyY2UAJFj+KUE9L6XOxoYJYBNQNQo61as0MDAwMCBlOC1lYXJseS1yZXNldC1rZXJuZWwA8IT0IwH4wg7EtbBvzSyYn2Z4Y1c0MDAwMCBlOC1lYXJseS1yZXNldC1yZXVzZQC7PtHFjhey7t9oO3iTp5QsvSViWzQwMDAwIGU4LWZhY3Rvci1saW5lYXItb3ZlcmNvbXBsZXRlNDcAPjTmywlZdnUGhRhJLERaQNfn2z00MDAwMCBlOC1maXJzdC1yYW5rLWRyb3AAs90lL6+8wb1F+Gm+PeE/6b+w/KI0MDAwMCBlOC1mbGF0LWNoYW1iZXItY2VydGlmaWNhdGUAFRKtaWXnHmmm6nmnvl8LhgtjZyI0MDAwMCBlOC1nYXVzc2lhbi1jMjAtZXhhY3QAehGwag+f9T491qb0oC68hBRkumw0MDAwMCBlOC1oeXBlcnBsYW5lLW1pbnJhbmsAEHfb/kxMDFcrbTXVFCK2VKP9Tnk0MDAwMCBlOC1qb2ludC1yZWFkZXItYm91bmQAlMFEA9uGDzeVkRJ4dT/wi1ufJEU0MDAwMCBlOC1sYWJlbC1wYWlyaW5nLXJhbmstY2FwAK+Y+riyPTDJ7TmEDE7QfHeq+ytJNDAwMDAgZTgtbGVtbWEtYS1sZWFuAG2LfOPTpEHrCD3RI0WsonjxqvBVNDAwMDAgZTgtbGVtbWEtZy1sZWFuAAGpAKLya3NvCsUjGxV+jqXy07YxNDAwMDAgZTgtbG93LXJlYWQtc2V2ZW4tY29tcGxleACyCVgmjuHIzUSOavg2V9L/AEaCPzQwMDAwIGU4LW1hcmtlZC1kMC1pbnZvaWNlAHf0iThOlvjDvjZwX5Cpjpx9SzJiNDAwMDAgZTgtbWluaW1hbC1taXhlZC1wb3J0AMxjOaDEWYurcwFeNQAp0NqBbyIpNDAwMDAgZTgtbWlub3ItdW5pdHMA47dyqBANJAMbLc8Pm7xgm1A3QdA0MDAwMCBlOC1vbmUtY29zZXQtZGVmaWNpZW5jeQCbyAqlgRECnPQWLCwrXwl/HCT0mzQwMDAwIGU4LW9uZS1leHRyYS1kaXJlY3Rpb24ARBxZd22fRFXoknlSIef4WF8YMoU0MDAwMCBlOC1wMTExLXBhaXJpbmctZmxvb3IAQXyvbENN+7hp56im7ozEkbDnKB40MDAwMCBlOC1wcmVmaXgtcmVzdG9yYXRpb24ApUMAMhq2CZTkvvHmz+wh32c9vw80MDAwMCBlOC1wdW5jdHVyZWQxMTEtc3RhcgABpr2kF410Vt2r1kUNEyr00PNQ6TQwMDAwIGU4LXF1YWRyYXRpYy1zdXBwb3J0LWNhcGFjaXR5AC3VgIG89khxu6N5TOJhXQVs1YF6NDAwMDAgZTgtcjQ4MC1kZWFkLXRvdGFscwBewhPXV4S5yLvEmdeMLPIN+PeQVTQwMDAwIGU4LXI0ODAtbmluZS1zdGFnZQAOvWn7knps7HZMSmRDUFlQft3iFjQwMDAwIGU4LXJhbms1LWJvdW5kYXJ5AOXMeyraQIc1qS9UJEd+lPvMoErKNDAwMDAgZTgtcmFuazctY2FwYWNpdHkAqjoYX9u38gFlBDv/4P0C/troSGw0MDAwMCBlOC1yYW5rOC10cmFuc3BvcnQtYXVkaXQAYHVTNaWkjxHUvzr1HQgw+VVnXGo0MDAwMCBlOC1yYW5rOS1leHRyYS16ZXJvcwAu5IatAnb/4zSHqqBk5GEj60kl6zQwMDAwIGU4LXJhbms5LXJlYWxpc2F0aW9ucwC89WOYTgUBfznHTfJ9G536M+ua2zQwMDAwIGU4LXJlZmxlY3Rpb24tdHJhbnNwb3J0AMp9MOZxUPWEaq/h6ofJpbMOKtknNDAwMDAgZTgtcmVzcG9uc2Utc3Vic3BhY2VzANuT5lP5sBESgdXpBvh6aR4L+ALHNDAwMDAgZTgtc2hhcmVkLWRvbm9yLWNoYWlucwBnp+mLk4Zoh9QIg5nEaIDGAJGZazQwMDAwIGU4LXNpZ25lZC1saWZ0AM8CsymOyXvHDsmJ/5kpO0m5z3n8NDAwMDAgZTgtc2lnbmVkLXByZWZpeABOTtj4sauuCIacwdhlM8+CifxuijQwMDAwIGU4LXNtYWxsLXJlZHVuZGFuY3kAy8V1j9hUiOrKqbHlHL3nP+cBSjU0MDAwMCBlOC1zcGFyc2UtY29zZXQtYnVkZ2V0AHIkfmpBhz1IFx0F5Atb4l5KVksLNDAwMDAgZTgtc3Rhci1hbGwtcHVuY3R1cmVzLXNlZWQ0OQDQ5jsyIJdcIBAMqgSZNzSETk133DQwMDAwIGU4LXdob2xlLXBvb2wtcG9ydGZvbGlvAE67rrxElOQsf8cxlRgkoIdkgD5yNDAwMDAgZWNoby1jb25uZWN0b3ItcmV1c2UAVZaWS3E5nFgyUKZhiWObmk9M/E80MDAwMCBlaWdodC1zb3VyY2Utcm9vdC1jb2RlAP5X8+TUB8yTz+UNG393PkF96pAdNDAwMDAgZWlnaHQtc291cmNlLXNpbmdsZXRvbi1mbG9vcgDvRw6rhY3bRZtw8jBSDGg5hE2OCTQwMDAwIGVpZ2h0LXNvdXJjZS13ZWlnaHQtZm91ci1zZWVkODQwODMAMimQCX+6pXJpAzmiwl9RKk2KaHM0MDAwMCBlaXNlbnN0ZWluLWFkYXB0aXZlLWFmZmluZS1mbG9vcgBEpBVtzGRFeEuRfbj5v4xiCbqmJDQwMDAwIGVpc2Vuc3RlaW4tYmluYXJ5LXJhbmstYXVkaXQtc2VlZDc3AIZdn4pZZyTDXHS06iseU/Kzu3SMNDAwMDAgZWlzZW5zdGVpbi1jbGlxdWUtY29weS1ib3VuZAD2Xvt5+XeX47OkjaSJDVMb0CdRFzQwMDAwIGVpc2Vuc3RlaW4tZWxldmVuLXRvdGFsLXNlZWQyMgB4LB2Tup/9xbuc0xHdF744gilDrjQwMDAwIGVpc2Vuc3RlaW4taW50ZWdlci1yYW5rAPIAMPocle3e4rCpglF8VMR7JRPnNDAwMDAgZWlzZW5zdGVpbi1tZXNzYWdlLWNvcHktYm91bmQAbTzWDtp8XRgIg1M1hGgPCJF+5m40MDAwMCBlaXNlbnN0ZWluLW5vbmxpbmVhci1yZXN0cmljdGlvbgC8+/+oIMVQfgtwTsBO1JbOWveHSjQwMDAwIGVpc2Vuc3RlaW4tcGhhc2UtY29zdC1zY3JlZW4AJh1g5o2v9ptc/kqC2ghFqZMZl9k0MDAwMCBlaXNlbnN0ZWluLXJlZHVjdGlvbi1jb3B5LWZsb29yAOb2r05KECWQpkPXoR/NQWHLexH1NDAwMDAgZWlzZW5zdGVpbi1zdWJtYXRyaXgtY29weS1mbG9vcgCT+qFCCJh9LB7OQIhVGjhX0dvA9jQwMDAwIGVsZW1lbnRhcnktYWJlbGlhbi1kaWFnb25hbC1taW5pbXVtAHgCnqjTqqGXaaxAkzy/EP1ivAfSNDAwMDAgZW1pdHRlZC1sb2NhbC1pbnRlZ2VyLXJlcGxheS1zZWVkOTAA5LTevt51LzeOvX0pK/XTL5GSgJQ0MDAwMCBlbmNvZGVkLWJhbmstY3JpdGVyaW9uLWF1ZGl0APDKo/zxoQn28Y2LD5yqX+FnRuDpNDAwMDAgZW5jb2RlZC1ib2R5LWRlcHRoLWJvcnJvd2luZwClGeGw1C8foGGVQHiafO4CYHq5STQwMDAwIGVuY29kZWQtY2hpbGQtc3BlY3RhdG9ycwArTV3redZMgtPrGhCs3U6stZKYLzQwMDAwIGVuY29kZWQtY3J0LWVudHJ5LWxpZmVjeWNsZQBRWI5SHWPJ91tDRZmWmbj2Yis84zQwMDAwIGVuY29kZWQtY3VycmVudC1jcnQA5gG5L2Yi1jwbcKh7RXSbvO3iLJY0MDAwMCBlbmNvZGVkLXBoYXNlLWJhbmsA/GojO8qT8lAssBT+vlJB+oHmkr40MDAwMCBlbmNvZGVkLXN0cmljdC1ib3Jyb3dpbmcAAAG58jk8LFJBY+BGU3bzImMSkxE0MDAwMCBlbmNvZGVkLXR3aWRkbGUtY29udHJvbGxlcgCUDC0FvikNkH+W45E+Co2wdgD7ijQwMDAwIGVuY29kZWQtdHdpZGRsZS1kaWFnb25hbC1wYXNzAGF3ChZduGocAXsMC5cM5ZDmazNiNDAwMDAgZW5jb2RlZC10d2lkZGxlLXBhY2tldC1jb25zdW1lcgCuxbg8W9CChz22OYPloRrfvYNIZjQwMDAwIGVuZC1jYXAtb2JzdHJ1Y3Rpb24ArOSvntlvJo/b9K1H0KDaS1AoY1c0MDAwMCBlbmRwb2ludC1tYXRjaGluZy1vYnN0cnVjdGlvbnMA9FM+/7zWZLPRUcGwoEOGymm24GQ0MDAwMCBlbmxhcmdlZC1wb3NpdGl2ZS1mcmFtZS1uZXR3b3JrcwDDC4qWqBdS6uOW13xiT8RNMMxh+TQwMDAwIGVwcy1oYWxvLWV4cG9uZW50LWNoZWNrAOyNidE9IsAF5KGddiP+DjEwRQZ5NDAwMDAgZXF1YWwtbm9udW5pdC1mYW5vdXQA+6Re/RlNXroPLkBdvyanQa90n2M0MDAwMCBlcXVhbC13ZWlnaHQtY3ljbGUtZGlhbWV0ZXIAMg0dhmqk96eA7p/HU8wCRXobC1g0MDAwMCBlcXVpdmFyaWFudC1ncmlkLWZyYW1lLWNsYXNzaWZpY2F0aW9uAHkNuFYWwtjomvLhPCZxiZEup3wRNDAwMDAgZXRhbGUtdGVuc29yLWRldGVybWluYW50LWltYWdlAAvJ5QrAF82T6mmSKDFyEjdyht86NDAwMDAgZXZlbi1yZXR1cm4tbGVuZ3RocwDeZDh1Xx17C2qVmxjDArfdBakK6zQwMDAwIGV2ZW4tc3Vic2V0LWR5YWRpYy1rZXJuZWxzAEhPxrM8lm3mxxRk/MOxOMdxeaTENDAwMDAgZXZlbi10YXJnZXQtY25vdC1jZW5zdXMAo1eK1ZAY2CizklAOxpXdInAxNO00MDAwMCBldmVuLXRlcm5hcnktZGlzam9pbnRuZXNzLXJhbmsAYYd97ywpjjQAsld4RXkX+Sv1TWA0MDAwMCBleGFjdC1jaGlsZC1pbnRlcnZhbC1yZXVzZQAc3S2WkaQ9aCy50xLI0mwq3sADSzQwMDAwIGV4YWN0LWNvYXJzZS1leHBvbmVudGlhbADKCxHgW7XW2P9AiuK7N/6amBFKyDQwMDAwIGV4YWN0LWV4cC1wZXJmb3JtYW5jZQBPgBxUL1Mg08ocWKdzW7qHH3k0sDQwMDAwIGV4YWN0LWZhY3Rvci13b3Jrc3BhY2UAtcHHlA723y41Qo4ThvtqaicaYUc0MDAwMCBleGFjdC1mcmFtZS1jb250YWlubWVudADkRQ12142VA51w+bi6OiA8Y3ayBTQwMDAwIGV4YWN0LWZyYW1lLXRvb2xraXQAOJ6+EcRPaqWP0CbYTr+nnUr+ab40MDAwMCBleGFjdC1vbmUtc2xvdC1ncmFtAKRkuWePIkjUorJYy5YMlCRrfEZcNDAwMDAgZXhhY3QtcmF3LWxvZy1jb21waWxlcgCkhjQWwk3ziZTIlSono7Rw/9xBfDQwMDAwIGV4YWN0LXVuaXQtZ2F1Z2VzADHO64ef21hzwzN6vADU9ud+DNVZNDAwMDAgZXhjbHVzaW9uLWVtYmVkZGluZy1tYXNrcwBD+XT2FHbhSs27UrfxNF6Lf+iTxTQwMDAwIGV4Y2x1c2lvbi1zdXBwb3J0LW1hc2tzAMWzZSDnCO+IUkegz9peQ8ZRSjOsNDAwMDAgZXhwYW5zaW9uLWF4aXMtbWFyZ2luANRcwZRwNPtufQSXBQ7EWRaJLnVYNDAwMDAgZXhwZXJpbWVudC1sb2cA8eMNSiHwd2x+hOl9czlebHVhMi80MDAwMCBmMi1yaWdodC12ZWN0b3ItZGlhZ29uYWwtbWluaW11bQD+bqOehiY3B5Qko1sUVpc3q76y8TQwMDAwIGYyLXNpeC1kaWZmZXJlbmNlLWJhc2lzAPaMPHlnSGLMdBbv76DQumi8rHbENDAwMDAgZjMtYWRkaXRpdmUtY29ubmVjdG9yLTF4MQCS5inRghr2H0BrPFhp8V4r6DzSyTQwMDAwIGYzLWZpdmUtc291cmNlLWNvbm5lY3RvcgDOTH2gIWfUG3r21s6seMYUEesjsjQwMDAwIGYzLW4tc291cmNlLWNvbm5lY3Rvci1leGNlc3MAnMXvCmiKF/iM9nkVpx64U5KbwrA0MDAwMCBmMy1uLXNvdXJjZS1jb25uZWN0b3ItZmxvb3IAi4Z9VVs7KKJDaLtMUtzrl9YfMUc0MDAwMCBmMy1zZXZlbi1zb3VyY2UtY29ubmVjdG9yLWZsb29yAJXODa8L0KFu+X7DTyGLyFap/gJpNDAwMDAgZjMtdGVybmFyeS1kZW1hbmQtY29ubmVjdG9yAEgyMSLuLOxFq24JYaKo+fu8zJYpNDAwMDAgZjMtdGVybmFyeS1zZXZlbi1zb3VyY2UAN34/xWt8RwErkSQqGrNtNsE/ni00MDAwMCBmMy10ZXJuYXJ5LXNpeC1zb3VyY2UAdmTL7K++HcIpwBD11NA7LMe74os0MDAwMCBmNC1hbHRlcm5hdGluZy1pbnRlcmZhY2UAL8hdAoLcLXcH1T7pQ95V6H1D/D00MDAwMCBmNy0xN3BvaW50LWNvdmVyLWF1ZGl0LXNlZWRjZmEyMTVjMgAAjt4shOvdcoPzEPOD1Rj0ut6xCjQwMDAwIGY3LTE3cG9pbnQtZm91cmllci1vYnN0cnVjdGlvbi1zZWVkYjVlMzE4ZmUA3nNRcjlG1lKVUE7qntHOAviqY0g0MDAwMCBmNy0xOHBvaW50LWF2NDIta2Izai1iMQCwF4yHlUMnU3PQeWZng6TIVpySGTQwMDAwIGY3LTE4cG9pbnQtYXZ0YWlsLXNlZWQwMTBkMjZmYQBoE/qXfOK7TSyxL/IfqK/7yUU3qTQwMDAwIGY3LTE4cG9pbnQtY292ZXItcXVlc3Rpb24tc2VlZDZkMzQzNTZjAAaiGI2UNNmwId+f5xxRgF4/8PXQNDAwMDAgZjctMThwb2ludC1yZW1haW5kZXIta2IzaS1hMQCTfpWLcoe4X1O86siGKaYpBusATjQwMDAwIGY3LTE4cG9pbnQtdGlnaHQtY2xhc3Nlcy1zZWVkNGMxZTdiMzAA/J6Fofqo3gsslwoeBPPZ3jeaiSo0MDAwMCBmNy0xOHBvaW50LXZhbmlzaGluZy1zZWVkZmM2MTg3MjIAbcSrDINpMGS5oXZC19CiYwaBHBU0MDAwMCBmNy1iaXQwLWZhbHNlLXBydW5lAAak4uCQyymRCS3ngzpPDG6Q11NnNDAwMDAgZjctYml0MC1mdW5jdGlvbmFsLWNsYXNzaWZpY2F0aW9uAH6F/c/E4rr6jUOqteR/optvboo5NDAwMDAgZjctY29kaW0tb25lLXN1YnN0aXR1dGlvbi1zb3VuZG5lc3MA5lkregoLeGpiWZy8Qc9tL8/8X0s0MDAwMCBmNy1maXJpbmctbjUtbGVuZ3RoLWNlbnN1cwAYda64/pGeY8tw+Uok3h75FrwNYDQwMDAwIGY3LWZpcmluZy1uNy1jZW5zdXMAVR+t0ThlMm+EIPMKRXPbXzXGjXc0MDAwMCBmNy1maXJpbmctdGhyZXNob2xkLWFsbC1uACGFPyQOW3kODkrghRv9vUHvTkLKNDAwMDAgZjctZml2ZS1sYWJlbC1pbmRlcGVuZGVudC1hdWRpdAApokp6Yfnk4onlGdQd6ZrKVGJ/0DQwMDAwIGY3LWZpdmUtbGFiZWwtcHJ1bmluZy1wcm9vZgB95vU3xyw2q7r6ApFveWRMOZQvTjQwMDAwIGY3LWZpdmUtbGFiZWwtc2hhcnAtY2FwAMGnmCMObhCcSfY212hYi+ZqVnRaNDAwMDAgZjctZm91ci1zdGF5LXBydW5pbmcAt1FSzID4WQz/N93p/+iyfBFq9cs0MDAwMCBmNy1mdW5jdGlvbmFsLWluZGVwZW5kZW50LWNoZWNrAK/qEN2A5pR3p+ZW7LM7NuZrUqbdNDAwMDAgZjctaW5kZXBlbmRlbnQtZnVsbC1yZXBsYXkALwnTsTpZ6Jh7SCG2p+g2a4oFAiQ0MDAwMCBmNy1sMjItY2Vuc3VzLXByb2JlAAEyaz6X9ygICo5zeXZrD+KePJ3HNDAwMDAgZjctbDIyLWNvbmZpbmVtZW50LWF1ZGl0AM6+7MUTq9I1mzY5yY9E0CN7i5HMNDAwMDAgZjctbDIyLWRlZXAtc2hhcmQtY2Vuc3VzADaCXw9gK2sN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pGvYh4X1G/DyFzQwMDAwIGZpbHRlcmVkLXN1cHBsaWVyLXJlZ2lzdHJ5ABYWWrY935/ITuNq55fPy7aQa4cwNDAwMDAgZmlsdHJhdGlvbi13YXZlZnJvbnQAbzw3mYZjgX/AeUtykM5IXvNQYhg0MDAwMCBmaW5hbDQ2MTAtaW5kZXBlbmRlbnQtYWRtaXNzaW9uABmxq85o4yI5vYrWq/l5WE65OtJpNDAwMDAgZmluZS1lbmRwb2ludDMwMC10NzQtazU1NAAE0aHYhSUbGsqHurajheX9Hd9HbDQwMDAwIGZpbmUtcHJpbWUtc2xhY2sxMDAzMADNDyKrzvNKfx08SiEhXXqazi8dXjQwMDAwIGZpbmUtcHJpbWUtc2xhY2s5NgAxtOOaAYGvZxhihUDAD7Yg2C5RwDQwMDAwIGZpbmUtcHJpbWUtdHJ1ZGdpYW4tYXVkaXQAz/LnbZsa0PxiiGkzm+N9DWwvlOo0MDAwMCBmaW5pdGUtYml0LXJhbmstY2FjaGUtc2VlZDg3ADXYN5z1ViaV67XyNiOL9BHBzymVNDAwMDAgZmluaXRlLWNvbW11dGF0aXZlLWZhbm91dAAENVF+BXavm/yoUSxu2M0iQv40/TQwMDAwIGZpbml0ZS1kaWhlZHJhbC1jdXQtYm91bmQAU7ZpABpMGxWDbKjkCnlYmRIi1PI0MDAwMCBmaW5pdGUtcGFya2luZy1mcmFtZXMAcGlKb1xy6MEDmOlbSo2gLvQX/WU0MDAwMCBmaW5pdGUtcmluZy1zb3VyY2UtaW5zZXJ0aW9ucwBsrJEdoiMX1ai6fuCy9stxWyZ2yDQwMDAwIGZpbml0ZS10YWdnZWQtY2VudHJlLXJlc2V0AMgPQSJxYO5JmFIMykOUG0YvbMoINDAwMDAgZmluaXRlLXdpZHRoLWNhbGwtbWl4aW5nLXRyYWRlb2ZmAAmydmVlK0p+BY3uS9qXGPzYg5GWNDAwMDAgZmludG0yLXJlYWNoYWJsZS1hbHBoYWJldACFHoRpG1msgJHf9L7AuJVYujLgzjQwMDAwIGZpcnN0LW5vZGUtY29tcGxldGUtc291cmNlLXJlc2VydmUA31ZWOTDM4y77tcAyxDSvJ7rDPzU0MDAwMCBmaXJzdC1ub2RlLW51bWVyaWNhbC1hbGxvY2F0aW9uLXByZWZpeADetLCuB/S3bJJDQpVMT41gzm92VjQwMDAwIGZpcnN0LW5vZGUtcmVzaWRlbnQtZW50cnktZ3JhbnQApAuXnhde7VySJlEmKpgxt++V3sU0MDAwMCBmaXJzdC1ub2RlLXNldHVwLXJlamVjdGlvbi1vd25lcnNoaXAAYMHgAbBfEX/U0WFmXTstkeq7pFg0MDAwMCBmaXZlLWNlbGwtYmFzaXMtb2JzdHJ1Y3Rpb24AGaZWqAvwqqluFG2bIg9E9wKyFNc0MDAwMCBmaXZlLWN1YmUtYXJiaXRyYXJ5LW1hc2sAp2Qr5yG+5wsLNi0T6Nw33jES0xw0MDAwMCBmaXZlLWN1YmUtY29kZWQtY29weS1zZWVkNDIAvkAgA+oXwiFuRcYu1/m3SsX77LE0MDAwMCBmaXZlLWN1YmUtcXVhZHJhdGljLWNvZGUtc2VlZDQ0AElUC90HHKkW2NMBrnOaB0f7gXC0NDAwMDAgZml2ZS1jdWJlLXRocmVlLXRvdGFscwCR728PZ7NrBrFWgVwiQGcbxaSJ2DQwMDAwIGZpdmUtY3ViZS10d28tcHJvZHVjdC1tYXNrcwBBDRr+OheVrASTISwgFzXbq2fmFjQwMDAwIGZpdmUtZXZlbnQtZ3VhcmQtY29ycmVsYXRpb24AeKUARsLYz1iTAgLKTrslMvVNvIY0MDAwMCBmaXZlLWluLWZvdXJ0ZWVuLXBhdGgtZGVwdGgAFEh5PkyOJmi7er4UCB7HgmZkpcU0MDAwMCBmaXZlLWluLWZvdXJ0ZWVuLXNlY3Rvci1hdWRpdABqIcJtH4Lc0K84Ov1X+SJrAf6e/jQwMDAwIGZpdmUtcGxhbmUtcG9ydC1wMTEyLXNlZWQxZjdmZGZlNACm64pwc2BOh2UdL8SFRvCLIJMkmTQwMDAwIGZpdmUtcG9ydC1xdWFkcmF0aWMtZGVjb2RlcgBwhcTGHRpPNUiwgvehkt7lQA0GaTQwMDAwIGZpdmUtcmVxdWVzdC1kZWNvbXBvc2l0aW9uLXN0cnVjdHVyZQCHIuTRdNV9UGy/hR3QEV0tPgPeWTQwMDAwIGZpdmUtc291cmNlLXBhcml0eS1oeXBlcnBsYW5lcy1zZWVkNTk1ZQDU35VgA19/Pvja1rXEt1V3W3s7QTQwMDAwIGZpdmUtc3RhZ2UtZ2VuNC1iYW5rcwBw2Fmcx/hAJRpCmBBa2iPdJzCjxzQwMDAwIGZpdmUtc3RhZ2Utc291cmNlNTI3LWJhbmtzALNKvs2HCj1UROzyOZISoyrd23meNDAwMDAgZml2ZS1zdWJzZXQtY29tbW9uLWZyYW1lLXNlZWQ0OGIAga5yWintIYDrSmOm0dQel+F7tes0MDAwMCBmaXZlLXN1YnNldC1waHlzaWNhbC1hbmNob3Itc2VlZDQ3ABVq2dnv+bfm/k6ckVobX5ajoGWNNDAwMDAgZml2ZS1zdWJzZXQtc2hhcmVkLW5vZGUtc2VlZDQ4AOh1AIzXKLEZor6R6an2l7/soHYyNDAwMDAgZml2ZXN3YXAtYWx0MTMtY29tbXV0aW5nLXNjcmVlbgAkbRCeaSByEqb1X3wkIjmaFeLTeTQwMDAwIGZpeGVkLWJhbmstcmVjdXJzaXZlLXJvdy1jYWxsZXIAVkzuT8kM0cWTqcmRL41viAw3aWw0MDAwMCBmaXhlZC1mb3VydGVlbi1iYXNpcy13YWxrAHb++IgLxHmKCGWNMfGXYK4c9t59NDAwMDAgZml4ZWQtZ3JpZC1oYWxmLWFkZABgBIGD/1OyUs9tK0YWIay/c51bZDQwMDAwIGZpeGVkLXBpdm90LWpvaW50LWNsaWZmb3JkLWNlaWxpbmcAWbJbp4zIh7CrpgVucQm+gs4bfis0MDAwMCBmaXhlZC1yb3V0ZS1pbmRpdmlzaWJsZS1pZGxlLW1hc3MAaE8L/LwE4ZU1uUzMDVNyWItxLII0MDAwMCBmaXhlZC1zdXBwb3J0LXVuYXJ5LXF1ZXJ5LWJvdW5kcwDM3mjWXoBDQTVbQTEYQLF8kgpTtzQwMDAwIGZpeGVkLXRhcGUtYWZmaW5lLXNoZWFyAGn2nrrvGUll6/ZUgLgBUSnIyWQuNDAwMDAgZml4ZWQtdGFwZS1vcmRlcmVkLXNoZWFyANGlz4wyrJU4E/2/ECbjwwHFZqKGNDAwMDAgZml4ZWQtdGFwZS11bml0LWNhcnJ5AFqztK10M5M1CXvkoTWAi/kGhXBfNDAwMDAgZml4ZWQtd29yZC1nYXVnZS1saW1pdHMAghbgujoeQryz13yQAm2rwLRW5lc0MDAwMCBmbGFnbGVzcy1rZXJuZWwtb2JzdHJ1Y3Rpb24AIOTOcbBDvdU6b+tCFkyBiaTpM2M0MDAwMCBm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tsUTr2PvSWkd7DQwMDAwIGZyb250aWVyMTA0Mi1pbnZvaWNlLWF1ZGl0LXNlZWQ4MQDUtJ8r/+e046Ft41pESu6xmleQBTQwMDAwIGZyb250aWVyMTA0Mi1sZWMtcGFyYWxsZWwA0YaK/zgCMPevNgNZKCq04q6HwG80MDAwMCBmcm9udGllcjEwNDItcGhhc2UtZmFzdHBhdGgA2WiRZd8fmqsXjV/7Ye1wGz74jCA0MDAwMCBmcm9udGllcjEwOTQtYW5jZXN0cnktYmluZGluZy1zZWVkNjkALEKPBYQSvsPwGb0bpPvx+EL/FoQ0MDAwMCBmcm9udGllcjEwOTQtY2VydGlmaWNhdGUtYmluZGluZy1hdWRpdAAg2Yi8ic4ON6VARycSDd17H6umnjQwMDAwIGZyb250aWVyMTA5NC1lbWl0dGVkLWxlZGdlci1zZWVkNzgAqTNSLBWslxcUjrZudteQ6QdlDVI0MDAwMCBmcm9udGllcjEwOTQtZml4ZWQtcm91dGUtcGFja2luZy1jYXAAeDhtHHvbJ0HvcjE8VkgZffHydLk0MDAwMCBmcm9udGllcjEwOTQtaWRsZS1leGNoYW5nZXMAEOv4ADPcTWRqRnkX84p3HCPUopc0MDAwMCBmcm9udGllcjEwOTQtaWRsZS1zdGFyLWNlaWxpbmcAbpkLf3sLZ/fR5QNcKSsXMfrzjgw0MDAwMCBmcm9udGllcjEwOTQtbmV1dHJhbC1wYWlyLWNlbnN1cwCLSNt/0/Vexwn8yX0Whejg7CSqLjQwMDAwIGZyb250aWVyMTA5NC1yZWNpcGVzLWV4YWN0LXNlZWQ3NgD+MQdQI3iszV0DE03gXcsaeiGNOjQwMDAwIGZyb250aWVyMTA5NC1yZXNpZHVhbC13cmFwcGVycy1zZWVkNjIADWiDrM5P7m/xZsiWQNz3lGjmTKU0MDAwMCBmcm9udGllcjEwOTQtc2luZ2xlLXJlbG9jYXRpb24APaNZeclvLfScGtQAFbcaFvhFJmU0MDAwMCBmcm9udGllcjEwOTQtc3dhcC1jZW5zdXMAblY0Qp0wi9GuuYQ7bnCWwdKEuRU0MDAwMCBmcm9udGllcjEzMDUta2VybmVsLWNlbnN1cwBT+ktfVUZT2dlD7RbklAbOjUD5TjQwMDAwIGZyb250aWVyNzQx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cy1pbmhlcml0YW5jZQBKeuSqM2BiuyrSIS6qsY5DocYtbTQwMDAwIGdhdXNzaWFuLWNhY2hlLXJldXNlADlavDlVuoh+a7ueD3dQ6dGfHbaqNDAwMDAgZ2F1c3NpYW4tY2FydmUtc2NodXItYmFuZHdpZHRoAKVdpzfP/CNZWfSicZmT8/cQIC5ONDAwMDAgZ2F1c3NpYW4tY2VsbC1leHBvbmVudHMAtZHxVI6zjcltq412wOHpeOJq3nQ0MDAwMCBnYXVzc2lhbi1jaGlycC1kb21haW4tYXVkaXQABt0E97DdnYZWAITGysSwgSTcre40MDAwMCBnYXVzc2lhbi1jbGlxdWUtY29weS1ib3VuZACE7rv/E+pcKxm1/V3IznXyiLEq+zQwMDAwIGdhdXNzaWFuLWNvbHVtbi1jdXQA8aScl2kZKHxDNnsd9IsTTsWo1AI0MDAwMCBnYXVzc2lhbi1jb2x1bW4tZ2FwALqT/nIvZgB7P50J3nzaEWItVCY/NDAwMDAgZ2F1c3NpYW4tY29yZS1yb3cAsboqRnRoGtqd1rDpbs58a46Nu2U0MDAwMCBnYXVzc2lhbi1jb3JlLXNpZGUAQb+Fgyvo/QySc6dnWJKqYK7e6V40MDAwMCBnYXVzc2lhbi1jcm9zcy1leHBvbmVudHMAq6Wc0lrw8eql8VYjZjlMHQX4dmw0MDAwMCBnYXVzc2lhbi1jcm9zcy1yb3VuZGluZwAKASbCPRH61d76BEtNfo6+XlsUYDQwMDAwIGdhdXNzaWFuLWRlbHRhLWV4cG9uZW50cwD0/o5lN4Ysly/RPFfps/mq5oE3KzQwMDAwIGdhdXNzaWFuLWRvd25zZXQtZ3JpZACUo+EkcUljxAC7tBUSMQSF6ut31TQwMDAwIGdhdXNzaWFuLWU4LWFzeW1tZXRyaWMtY29weQDkfGit8Cj+pxXaGfRsU8/ndHd80zQwMDAwIGdhdXNzaWFuLWU4LWNvcHktYm91bmQAiZwLwN6LwfUfcD3erigDl8AEivw0MDAwMCBnYXVzc2lhbi1lbmNvZGVkLWtlcm5lbC1zZXNzaW9uALKMxuA8HD5znoNahHyekJ11JVBDNDAwMDAgZ2F1c3NpYW4tZW5kcG9pbnQtcG90ZW50aWFsLWF1ZGl0AI4OKQazzpFyjHatMChUC+wgiG/eNDAwMDAgZ2F1c3NpYW4tZXhwYW5zaW9uLWhlYWRyb29tAN01NyssgaVNyiwmdCcA1bXwL3cfNDAwMDAgZ2F1c3NpYW4tZ2F1Z2UtY29sdW1uADi71zlmxlZBXu+rm2GRLfebhNMNNDAwMDAgZ2F1c3NpYW4tZ2xvYmFsLXRhaWwAYyyU9p2WgeptvSa5RiFRVzNe9b40MDAwMCBnYXVzc2lhbi1oYWxmLWxpbmUtb3BlcmF0b3ItbGltaXQAgiQpgXkzPj6HzRIhTe0XAl6J2kY0MDAwMCBnYXVzc2lhbi1oYWxvLWV4cG9uZW50cwCOo1QzytwY2N0jRViqSP1qdq1GADQwMDAwIGdhdXNzaWFuLWhlYXZ5LXNsaWNlAKFq4TQEPIid/NikgNAd/tjAFuR5NDAwMDAgZ2F1c3NpYW4taGVpZ2h0LWNvbnRyYWN0AIvgaPxHo0C0ca3RiBP2NmLC2TouNDAwMDAgZ2F1c3NpYW4taHlwZXJwbGFuZS1hbGxwYWlycwC9HXd2DztX3oUiQT5+CsrPTXu4ujQwMDAwIGdhdXNzaWFuLWxvY2FsaXplZC1oZWFkZXItdGF4APlYgO09BiP2LT0FeINnRY1W7723NDAwMDAgZ2F1c3NpYW4tbmV1bWFubi1uaW5lAI4jHXrui7dJ1RzgnlKhoDfTnbH/NDAwMDAgZ2F1c3NpYW4tbmV1bWFubi10ZW4AGHGwZtxJVJKLd4eSI8yot1uYAak0MDAwMCBnYXVzc2lhbi1ub25saW5lYXItY29weS1mbG9vcgCuid3TDDRj8VYw1y0TeGavmNLC1jQwMDAwIGdhdXNzaWFuLW5vcm1hbGl6YXRpb24tc3RyZWFtAFnBqCaBW4REpG6VOmZPbIUtcFzXNDAwMDAgZ2F1c3NpYW4tb3BlcmF0b3ItbGlmdABS2YkhD00k3548AjtSN2R7FJwYgjQwMDAwIGdhdXNzaWFuLW9yaWdpbi1iYW5kd2lkdGgANIzDLmp6Z5vDmy3PvCJI1KpdYMs0MDAwMCBnYXVzc2lhbi1vcmlnaW4tY29ybmVyALFTB8Xd4FlgBnYkRCut76LVB0AqNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLWRpYWdvbmFscwBrjl5YdBfAcCREdU1VdAGWcEgKoTQwMDAwIGdhdXNzaWFuLW9yaWdpbi1kaXNwbGF5ZWQA7gWWb+RTa8if51ubTi90cJRbgGk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tZ2FwAELcjmIZ1m3Bc6w0a1j7scnlT7ulNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLWludmVyc2Utbm9ybQCISlNbFIzyo1fBgReGRjIfxK722zQwMDAwIGdhdXNzaWFuLW9yaWdpbi1pbnZlcnNlLW9uZQDwVtfXiqPDBxoYYk7JbMi/D9HUZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi1pbnZlcnNlLXR3bwAvGRxn3wjq11jTGKwoDrlPt0YxsjQwMDAwIGdhdXNzaWFuLW9yaWdpbi1tYXRyaXgtbm9ybQC2Gth/khgnYkL2pvs6GD3pRenV8TQwMDAwIGdhdXNzaWFuLW9yaWdpbi1uZXVtYW5uLXByaW5jaXBhbACbONwsopC8KwAMhsEfW2ozMWA8GzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1uZXVtYW5uLXRpZ2h0AG5yVwGv+erT4cJDrLAvVti4z4hVNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLW5ldW1hbm4A3OgdwWndblqpMEtxqE4FmFvPedE0MDAwMCBnYXVzc2lhbi1vcmlnaW4tbm9ybQDJcwjmUMI+9WQ+q03Lp8WeTBDY5jQwMDAwIGdhdXNzaWFuLW9yaWdpbi1ub3JtYWxpemVkANOwYcWTZBxODRSrS0m5CKU1ooyXNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXAxMABw5H8qHircyOpsTO1aDhNCh5zYIzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1wcmluY2lwYWwA6be4pRHYVfQaHRh/qbY7ejfz1jM0MDAwMCBnYXVzc2lhbi1vcmlnaW4tcS1laWdlbnZhbHVlcwBfplWCOq5pvYivmAzHqkcmOeM0AzQwMDAwIGdhdXNzaWFuLW9yaWdpbi1xLXRhaWwApJoaLh6ynWswIe542r6pmrozYj40MDAwMCBnYXVzc2lhbi1vcmlnaW4tc2NodXItcm93cwBOjptaMJR7ioTeY4AgJgWeRH96dDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzEwAPNIVVwxpM2INe2T4N0u8CdeYbr2NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTEAr8/1vcaU+OCFs2tEy8CBw6UyEiE0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxMgDB5GlXXAOm8UQnFi+30vBYfdITRjQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzEzAOIzcbbAzlSrs0aYY7fdKhJSU1OfNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTQAHZTekrxiDA21JXeposPsCdEHDAg0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxNQCpbPM5ha0OKj3yFDuX+/pr2gWE3TQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzE2AGOknTji4yG9pPlx1Cb82dlofGw3NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMTcAB/tJqp83uuNU4X7Kt9Ob/eb4LDM0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMxOACmXEpQ92Gqzs0eje6PNP+WpYcaXTQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzE5AJg0xIJu7kwCaIHRWSGfFS28yg+oNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMgDDneBitaNZkuOUlIKKlVK7GC17vjQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzIwACM33sJOLFGXQ78l2jr66KeTsaPpNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjEAVHnfPSmbIlV/bXoUzXeYFecMJz00MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyMgCjcld87k0pE9VsU/AznvoAJn1EZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzIzADQdcedDy6w4XRMAyFugWOBp09+jNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjQAFG8yL9hBBlWJzwUpC2dP9yCrzkk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyNQCK85l2jvQoTjqDuo2Tq+0lJPS5ZDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzI2AMxBfgRolVxXCBXKvkcFlTPRiR7bNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jMjcATgCpRa06ZUI7GhdRE5amx0N4UHk0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWMyOAAdbk8fvJPIzOQGrjYIHyoQoFBvXzQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzMAKeufzWNLwc3r4ONajn69cjz0izY0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWM0AFy2mGmPfHRedL9+Vik9DeV8mGxkNDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jNQDKV8+WJgZZJdt8a0/YqfPO0KFxcDQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzYAkgDjJ1NBYuqo+TFqRJa5CqFwt5g0MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyLWM3ACmn8HNv/5q9qZpUVQkQ0RiZFaF9NDAwMDAgZ2F1c3NpYW4tb3JpZ2luLXR3by1wb3dlci1jOACaBVGyez9/HvC+gYHBoSS4BNtE/DQwMDAwIGdhdXNzaWFuLW9yaWdpbi10d28tcG93ZXItYzkAImMN6+6jFOLHLFdhEXL0xhK2N240MDAwMCBnYXVzc2lhbi1vcmlnaW4tdHdvLXBvd2VyANgfiiGovn//0GUuuhN9JIcLwWpSNDAwMDAgZ2F1c3NpYW4tcGFyaXR5LXN5bnRoZXNpcwDs+8z54KmiDGGf8PPFa/aHoGkkmzQwMDAwIGdhdXNzaWFuLXBhcml0eQCfyoPokyVP2gA2l4nCGYbch2tN7DQwMDAwIGdhdXNzaWFuLXBoYXNlLWNlbGwtbG93ZXIASSfl60vRN/dpy7pbxXFnxhWDoyM0MDAwMCBnYXVzc2lhbi1wcmVwYXJlZC1zdGF0ZS1hZG1pc3Npb24AVhVrn47sQbqNd1AWtdTL96wFKcU0MDAwMCBnYXVzc2lhbi1wcmltZS1jaGlycABRahOlT1iQuvtkM3+N6TbwYHn2STQwMDAwIGdhdXNzaWFuLXByaW1lLWNvcm5lcgByFmoXZucG36CZrh8MNqEH5LSlajQwMDAwIGdhdXNzaWFuLXByaW1lLW9yaWdpbgDhZqSE4LkdjAEKBMdRa+0PCGF4HjQwMDAwIGdhdXNzaWFuLXByaW1lLXNoaWZ0ANg2QjxFMny2vXc7D00k9T3XYOyONDAwMDAgZ2F1c3NpYW4tcmF0aW8tYnVkZ2V0ACSBSFOQ7No6aZbV3Y/2foWdwflwNDAwMDAgZ2F1c3NpYW4tcmVzaWR1ZS1zaHJpbmstd2luZG93AMNPH9mJN935awTNEJFvoJ1df7rANDAwMDAgZ2F1c3NpYW4tcmVzdHJpY3RlZC1nYXRlAGD1/RfqhA0DDbv24dxVVou9FnbENDAwMDAgZ2F1c3NpYW4tc2NhbGFyLWJhY2tlbmQtYXVkaXQA8hHXwBdVwwjuqUyZAZnbArwL2OA0MDAwMCBnYXVzc2lhbi1zY2h1ci1maWxsLXNpZ24AnIGvkynQIvwkkVFtFWmo+E0xqiM0MDAwMCBnYXVzc2lhbi1zY2h1ci1nYXAAWtAL9C2UHrnch7GvNsJThxsLqL80MDAwMCBnYXVzc2lhbi1zZWNvbmQtcm93AGGQqx/PLG8aUN6VwDYZi2ZvzqVQNDAwMDAgZ2F1c3NpYW4tc2VjdGlvbi1jaGFpbi1jaGVjawC+2lkPfhaYdSOuCasjbNMTzwSo6TQwMDAwIGdhdXNzaWFuLXNlY3Rpb24taW52ZXJzZS1ub3JtcwCsvfI5qL0KAUphbdMpRLArV7qMCTQwMDAwIGdhdXNzaWFuLXNlcGFyYXRvci1jb3JuZXIA/4chOFhQ3m7JueEmXmCEXC9uzCM0MDAwMCBnYXVzc2lhbi1zaGlmdC1jb3JuZXIAxa70LGZodrv+o7LF5r0vg9IbS5E0MDAwMCBnYXVzc2lhbi1zbGljZS1laWdodC1jb3BpZXMAEss8y8dqJrY3j7TV9oRf45LnihQ0MDAwMCBnYXVzc2lhbi1zbGljZS1laWdodC1nYXRlAHeke8utTo3KD9TeQYl4zfEHau4dNDAwMDAgZ2F1c3NpYW4tc2xpY2UtZml2ZS1jb3BpZXMA5JoMzqYfvYdjxO8QZk6qQaaV11E0MDAwMCBnYXVzc2lhbi1zbGljZS1maXZlLWdhdGUA3L6IxOrjeWKu0vT0leMYhxw7QkE0MDAwMCBnYXVzc2lhbi1zbGljZS1mb3VyLWNvcGllcwDq3Egx1z1yjJVdlP32uYrv4tG88jQwMDAwIGdhdXNzaWFuLXNsaWNlLWZvdXItZ2F0ZQCIrkpcWrmW4+rY+w2OKB9IYq+NYzQwMDAwIGdhdXNzaWFuLXNsaWNlLW5pbmUtY29waWVzAHMcs1nW+M3sC1Hr0iGKPjpuwxwsNDAwMDAgZ2F1c3NpYW4tc2xpY2UtbmluZS1nYXRlAFgK0U70KQjZmCQAfCzLhLcIDL6VNDAwMDAgZ2F1c3NpYW4tc2xpY2Utb25lLWNvcGllcwC2BKTjg/nd3PfAmfzlUZRrKeSrRzQwMDAwIGdhdXNzaWFuLXNsaWNlLW9uZS1nYXRlAFzynNGhAmwMXRepEFYIraNVeV8kNDAwMDAgZ2F1c3NpYW4tc2xpY2Utc2V2ZW4tY29waWVzAOdgMzeNboJWNE8Dle1nLbAvlyxoNDAwMDAgZ2F1c3NpYW4tc2xpY2Utc2V2ZW4tZ2F0ZQAuCvDcWKhrAUdrWn0YMHuCOnQRuzQwMDAwIGdhdXNzaWFuLXNsaWNlLXNpeC1jb3BpZXMAx9uCOJiADyYVYunGH0Q0Q0b3+J80MDAwMCBnYXVzc2lhbi1zbGljZS1zaXgtZ2F0ZQB4bropc0Zw4eUm058lfGoz/RnJmzQwMDAwIGdhdXNzaWFuLXNsaWNlLXRlbi1jb3BpZXMAv5CQbJXB5U+uCsylPWOL5JA3rb40MDAwMCBnYXVzc2lhbi1zbGljZS10ZW4tZ2F0ZQCbQgZIGXJJGzRxnc0fWybcCNrZ+jQwMDAwIGdhdXNzaWFuLXNsaWNlLXRocmVlLWNvcGllcwCyQhUwnHKbMmFJwxMdC7z33/QAljQwMDAwIGdhdXNzaWFuLXNsaWNlLXRocmVlLWdhdGUAh6k1dXmvCU87cYgkzzGBCl9EhXU0MDAwMCBnYXVzc2lhbi1zbGljZS10d28tY29waWVzAOVqN+XZZEQyiPzn2rgBnYxT7lyWNDAwMDAgZ2F1c3NpYW4tc2xpY2UtdHdvLWdhdGUAU962MnV7aNrQamoWWZ2HokF+hDI0MDAwMCBnYXVzc2lhbi10ZW5zb3ItYXBwcm94aW1hbnQA281du8T7VXgOS2yIz7mP9DEMlUU0MDAwMCBnYXVzc2lhbi10ZW5zb3ItYXhpcwBa70NIEq+1u0bzIu4mzZr/5YRbhjQwMDAwIGdhdXNzaWFuLXRlbnNvci1icmlkZ2UAdqtd+obqtQiZdOdjH6kzU6goZEs0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZXJyb3IAjNLNLaJvQEzK+8ftYwo0WJZrOVo0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZmFjZXMA+3rz4297DkByK+HBWR3NpEyjFXk0MDAwMCBnYXVzc2lhbi10ZW5zb3ItZm9sZAA0HxvJXBWSVTii3i8WSdIR0vsPkjQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWFwcHJveGltYW50AMttCeCNtQI4r7BDIyx5d7k9MS2sNDAwMDAgZ2F1c3NpYW4tdGVuc29yLW5pbmUtYXhpcwAAVJ30osS4bUYD8hmZV78b0rHA2jQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWJyaWRnZQDN16D0yM/E67hr3SDaOg92HiCfEzQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lLWZhY2VzAHka25y8/MvAKCG+LDH4LY08aHJbNDAwMDAgZ2F1c3NpYW4tdGVuc29yLW5pbmUtZm9sZAB4rTK62qkUJASJgfYoZzcybSUc/TQwMDAwIGdhdXNzaWFuLXRlbnNvci1uaW5lAEK8BrYNtPd2f6Z621gpfV0lEAvDNDAwMDAgZ2F1c3NpYW4tdHdvbm9ybS1ndWFyZAA7mhMRQwdbg/2/plRN3poLnX5XxTQwMDAwIGdhdXNzaWFuLXVuZXF1YWwtZ2F0ZQCJjvl/21V/MFbEvColfZbeOkYwNjQwMDAwIGdlbjQtY29tcG9zZWQtZW5kcG9pbnRzMTIwAJmlXBrqlyXL4c76Pyn8np21Rb+rNDAwMDAgZ2VuZXJhbC1nYXVzc2lhbi1jb250YWN0LXNlYXJjaABsWMQqTfcDb1Y+72z/nUnkFduLyDQwMDAwIGdlbmVyaWMtaWRlbXBvdGVudC1maXJzdC1ndWFyZABbycOgCJqGZdI7RgsxYkA8VsF+qjQwMDAwIGdlbmVyaWMtb3V0cHV0LW1peGluZy1lcmFzdXJlAAGYkmUAf/PDdHCWaqSnZnkXQMTPNDAwMDAgZ2VvbWV0cnktY2lyY3VpdC1kaXNjb3ZlcnkApYloEEg9z5RMyMteoms92h8Ry0k0MDAwMCBnZjQtc2NhbGFyLXNvdXJjZS1jb25uZWN0b3Itc2VlZGE0NzJkZDhjAK14uiOrbDmDtA6fiEYeAgrJRpoSNDAwMDAgZ2l0LWJhdGNoLWNvbXBhdGliaWxpdHkAMw4vPEufomzJGQsPsc1ynIMQZBk0MDAwMCBnaXQtcHJvdmVuYW5jZS1zdHJlYW0AHx9dW+4VgZuY14v6tj51eNL+RmA0MDAwMCBnbDItc3dhcC1jdXQtY29yb2xsYXJ5AA3IQh51S19qirPe0m8pRZ/C1Q+DNDAwMDAgZ2wyLXN3YXAtd2VpZ2h0ZWQtdGFyaWZmAIu+wVSTaXVXIzjrrMw4j722v/NGNDAwMDAgZ2wzLWNuZi1lcXVpdmFsZW5jZS1hdWRpdACLfur2K3joerDuVMcVzvpbjBZ9/zQwMDAwIGdsMy1jb29yZGluYXRlLWNub3QtcGFpci1zZWVkMTM4NWUyNDMAe6BWoLUejkaF3p4bowR21P86qu80MDAwMCBnbDMtZml4ZWQtdGFyZ2V0LWVpZ2h0LWNhbGwtcGlsb3QA8AfHo9YhuPkvpEw4B9SqpQudQM40MDAwMCBnbDMtZnJlZS1taXhpbmctbm9ybWFsaXphdGlvbgDGv4vl9Y9CD04xaKokQQ9Lyw0tlTQwMDAwIGdsMy1sZW5ndGg4LXJ1cC1jaGVjawD50phRbDOEijooO3ugmN79gMs7yzQwMDAwIGdsMy1scmF0LWluZGVwZW5kZW50LWNoZWNrAALMnF38+/INGyy07x1i/IeH2pMwNDAwMDAgZ2wzLW5pbHBvdGVudC1jb3VwbGluZy1zZWVkYTlhYjdiZDIAifgqAGJce31ui6CLUpofydZbChA0MDAwMCBnbDMtb3JkZXI0LXJlZ2lzdGVyLWNlbnN1cwAg+0L2U5iKHvCx70VlgFElWiJtZzQwMDAwIGdsMy1vcmRlcjctZGlydHktcmVnaXN0ZXItc2VlZDM5YWUARxX5t/o7sb+oSrAUPPzvOnJB6JE0MDAwMCBnbDMtcmF0aW9uYWwtdHdvLWNvbHVtbi1rZXJuZWwAAIqFYfg2PbmrXNMqWGqiZ1ZJl5o0MDAwMCBnbDMtcnVwLW5hdGl2ZS1yZXBsYXkACRMJuykFL+QEgsSomsYf+dZVjjo0MDAwMCBnbDMtc3VwcG9ydC1jb25lLWF1ZGl0ADB+iJgIn2aXdIAO/a/6GWaKQAA9NDAwMDAgZ2xvYmFsLWJhdGNoLWxp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jb9OryvA85MfFpQ0MDAwMCBoZXRlcm9nZW5lb3VzLW91dHB1dC1wYWlyLXNlZWQ3NTU3ACsh5JJGkHw+pPg+e24r+XONNcKMNDAwMDAgaGV0ZXJvZ2VuZW91cy1vd25lci1hc3NlbWJseQDowUK/1g2IOPJth5ZTb5RSuRUVQDQwMDAwIGhpZ2gtYWRkLXNjcmF0Y2gtaW52b2ljZQDr91ZoUHcpL722QEd0smvYLtm5JzQwMDAwIGhpZ2gtY2Fycnktc3RyZWFtcwCLBoVgO6adK3dHoXHwOPQFnFLHoTQwMDAwIGhpZ2gtY3ViZS1iMS1maXQtYnJpZGdlAJMMtrH4ezOa9bn/8PhdvhtcmEvBNDAwMDAgaGlnaC1jdWJlLXBhaWQtY29tcG9zaXRpb24AHXAdeZuvkvV/8QUwj8C+JWxaTxI0MDAwMCBoaWdoLXJvdXRlLXBlcm11dGF0aW9uLWZyYW1lcwBo/HUI9r8MSduaDiMpRMjWRwCKhDQwMDAwIGhpZ2gtcm91dGUtcHJlZml4LWNvc3QAbHfRZ0zFtam091cYy2WMjY3of2k0MDAwMCBoaWdoLXJvdXRlLXNldHVwLWludm9pY2UAM+mwWletYQ615KOZFOubfnzmvgI0MDAwMCBoaWdoLXNjYWxpbmctc2NyYXRjaC10cmFmZmljAOda2z5NA1VrB8M3xdcLy+ZFXow3NDAwMDAgaGlnaC1zY2FsaW5nLXRvdGFsLXRyYWZmaWMAO1MjOGRJbQE5LQEBBLpXBRPPFTw0MDAwMCBoaWdoZXItbW9tZW50LXN0cmljdGlmaWNhdGlvbgCqHc0rSwotXCaUCtKedmA+8YJwmTQwMDAwIGhpZ2hlci1vcmRlci1yYW5rLWV4Y2hhbmdlcwADmlJ3nqrsh9qOdPJULTu0tj7JOjQwMDAwIGhpc3RvcmljYWwtMTA0Mi1saW5rAIsy8XmqTNU52cyzIaWjsWGZbLK0NDAwMDAgaGlzdG9yaWNhbC1qLW9yZGVyLXJlY29uY2lsaWF0aW9uAFbOcuNDru/AMPbfaM84XgxIFE8WNDAwMDAgaGlzdG9yaWNhbC1zbmFwc2hvdC1vbmUtcGFzcwCaqx53QsmWLlmlG7NBbz5jmBPeyTQwMDAwIGhvbW9nZW5lb3VzLWNoYWluLWV4dHJhY3Rpb24A95UPQziVTFkyKXLHl4rL01/bMkc0MDAwMCBob3N0ZWQtcmVzaWR1YWwtc2hlYXItY3Jvc3NpbmcAoGXOBqY3+1TZ/+3ZM4RuHIFj0YY0MDAwMCBob3N0ZWQtdGVtcGxhdGUtcG9zdGVtaXQtZmllbGRzAI1N8UicD5beGf3SG2nD2k+BsC5GNDAwMDAgaHBlLWF1ZGl0LWZhc3Qtc2VlZDkzAEwV8s3Oed5VIlYaoqYAj+CXkI8lNDAwMDAgaHBlLWF4aW9tLWludmVudG9yeS1hdWRpdABTR9i9hyjGHJOh+Idlab2HBZoAxzQwMDAwIGhwZS1jbGlmZm9yZC1lbmVyZ3ktY29yZQDuw4Ye2PG4F2rL02v3wvJWKPFrPzQwMDAwIGhwZS1lbmVyZ3ktaW5kZXBlbmRlbnQtYXVkaXQAeoychc4j7GZJjTPd033v4bjSxxg0MDAwMCBocGUtZW5lcmd5LXBhY2tlZC1yYWRpeAA7bo15mfrPUszulGILTDPVv54i9DQwMDAwIGhwZS1sZWFuLXNlbWFudGljLWJpbmRpbmcANgjH5bmCd+uop5GR0Q1NrG5C3xA0MDAwMCBocGUtcGFja2VkLXJhZGl4LWNvcmUAmx79Op/LF3dyjQnsi+pqeymqtCc0MDAwMCBocGUtcGFydG5lci1iaW5kaW5nAJYzP3v4mEXbacgHB2UK/AZOjY+PNDAwMDAgaHBlLXBvc3Qtd3JhcHBlci1sZW1tYQCJXT8C0qotIczyB2uTx7BjK2IhEzQwMDAwIGhwZS1wcmUtd3JhcHBlci1waGFzZQD7BQXFLN2HTgb1Vpo6VllLzk0E7zQwMDAwIGhwZS1wcmV3cmFwcGVyLWJpbmRpbmcAExS2U6xtyRfA/rSJ6hx8r/c5/J80MDAwMCBocGUtdHJhbnNwb3J0LWludGVnZXItcHJvZHVjdGlvbgAZUs9gkojkVo4tC+sM5uAryJiO5jQwMDAwIGhwZS11bml0YXJ5LXBhY2tlZC1yYWRpeAApUgh8PQNGCRxJ/031KOQR6pCizzQwMDAwIGhwZS13cmFwcGVyLWV2ZW50LWJpbmRpbmcAutvp+LhQbqGCFC4Fj+DJxCUders0MDAwMCBodXJ3aXR6LWFkYXB0aXZlLXJvdXRpbmcA8K02qHEAn6EFLdMSdcUDWDfaquM0MDAwMCBodXJ3aXR6LWFzeW1tZXRyaWMtY29weS1mbG9vcgDLb/oXft9Kh3y7FPVyNJNJDrNHFTQwMDAwIGh1cndpdHotYnVkZ2V0LXN1Y2Nlc3MALzpfLmSdvxTbEU5qEcU8XULROl80MDAwMCBodXJ3aXR6LW5vbmxpbmVhci1jb3B5LWZsb29yAH9PpLQb9kjGI8Q5yXl51ql+021INDAwMDAgaHlicmlkLWNsZWFuLWRlc2lnbgAbzj9vcwXyWHYjUDAYm4vkpz7iWjQwMDAwIGh5cGVyY3ViZS1kZWNvZGVyLXBhcml0eQDNT21k8dbcWQfM6MY6zlUt2TzmDDQwMDAwIGh5cGVycGxhbmUtZW5kLWxlYW4AY02ddugCbyTpNz5rHaKpdukkQQQ0MDAwMCBoeXBlcnBsYW5lLXJldGltaW5nAP42gTb+She6hjlIFRxoMNMF48PSNDAwMDAgaWRlYS1hLXNwZWN0cmFsLXJhZGl1cy1zY3JlZW4AyeY33hRgjS7SE/R9hbTK88LW4XI0MDAwMCBpZGVhbC1kZWNvZGVyLWZsb29ycwDjm70BJjWaDbJLfsyVeEMwIpKhDjQwMDAwIGlkZWFsLWxldmVyLWdyaWQtYnVkZ2V0cwCUTSskBIG51jrPSdy+vl/O8LVJtzQwMDAwIGlkZW1wb3RlbnQtZmFjdG9yLWludmFyaWFudACbtEnymcByn99uGbqL3slsNnXW6jQwMDAwIGlkZW1wb3RlbnQtcGF0aC1yYW5rLWF1ZGl0AMxfY5iv+DIZ7HvQ6X0dAwAGjd2PNDAwMDAgaWRlbXBvdGVudC1zdGFiaWxpemVyLW11bHRpcGxpY2l0eQDClKxNwh4HcO844GnUWKcirc+LzzQwMDAwIGlkZW50aXR5LXBpdm90LXNjaHVyAHLjTqn5vFKTGYKoGVDXodgk7vMDNDAwMDAgaWRlbnRpdHktcGl2b3Qtc2VjdG9yLWJvdW5kAHFMSrpZ7EQzp0+FZJNpq2Yb7KRhNDAwMDAgaWRsZS1hZGRpdGl2ZS1yZXBhaXItYnVkZ2V0AB//55StOvYGuNx/n9B0pnXClwl8NDAwMDAgaWRsZS1hZ2dyZWdhdGlvbi1nYXAATYuHZSAwL2W8y7Z2yy8bhcoq0N00MDAwMCBpZGxlLWF4aXMtaG9zdGluZwDiF2tXiIWxccUENSphMcgpXIOIpjQwMDAwIGlkbGUtY2hhcmFjdGVyLWNvbnRyb2xsZWQtYWJzb3JwdGlvbgAVAAUgYkWsMO7wZGB3yhbgZtcRDDQwMDAwIGlkbGUtZm91ci1zaXRlLXJpZ2lkaXR5AOcjxVP0SebPkGeNJ0DX7yqga6irNDAwMDAgaWRsZS1nbG9iYWwtY2hhcnQtc2ltaWxhcml0eQDV8O5MYZopFU3QYnqrokH0Wt5ZSDQwMDAwIGlkbGUtaW50ZWdyYWxpdHktYWdncmVnYXRpb24tYXVkaXQAjT/ig4juto8HNxUoHsJXBqosyl00MDAwMCBpZGxlLWludGVncmFsaXR5LXBvb2xpbmctYXVkaXQAByEoLIliP+SJJm9YXnz+oL00vuU0MDAwMCBpZGxlLXBhY2tpbmctc3RhYmlsaXR5AFYxd+KEPSyBrx393vUp+anjGdrTNDAwMDAgaWRsZS1yYW5rLWNhcC1zZW5zaXRpdml0eQAVfu8BhwfSpl04CABNCJY6iege6jQwMDAwIGlkbGUtcmFuay1zdW0AFHq9dEdxnjMprNxqAUuuBxmaH1I0MDAwMCBpZGxlLXNpbmdsZS1jaGlsZC1hYnNvcnB0aW9uALaUr/CYgQEgh5/dBZc96RYHEUqANDAwMDAgaWRsZS1zdGFiaWxpdHktcmFkaWNhbC1hdWRpdAB+KFnazPL6Dfsb3xp6N8SHCP3hMTQwMDAwIGlkbGUtc3Rhci1wYWlyZWQtYXhpcy1jZW5zdXMAuHoqnUQAwy5ddSdocyBSK0wpPmw0MDAwMCBpbmNyZW1lbnRhbC1wcmVmaXgtY2FwYWNpdHkAGu99J+zjzpmaLN+785SwuwLzi6I0MDAwMCBpbmRlcGVuZGVudC1jYW5jZWxsZWQtcmV0dXJuLWdyYXBoAAGDZE5RQDPF0VaIHXgMh8JWt7FaNDAwMDAgaW5kZXBlbmRlbnQtY2xpZmZvcmQtZXhwYW5zaW9uADs0LB8n3ukBbixMnSvq2Tt/4aMHNDAwMDAgaW5kZXBlbmRlbnQtY29ubmVjdG9yLXNlcmlhbGl6YXRpb24A+8/upFSrVwSgp2mKh18jr3roRpU0MDAwMCBpbmRlcGVuZGVudC1xdWV1ZS1jZWlsaW5ncwBcYXMwcldgAJ5l3tzhKhdyAiSKqTQwMDAwIGluZGVwZW5kZW50LXJlc2V0LWdyYXBoAKymGcUrQ88LDliTV7ZpKkenfaJqNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3MtN3Etb2JzdHJ1Y3Rpb24AOXIUHjsJnpGJps/IBIwdfV33UI00MDAwMCBpbmRlcGVuZGVudC13YWxrcy04cS1vYnN0cnVjdGlvbgBHPS76FMdxdlw7lMbM4Ax2loegkjQwMDAwIGluZGVwZW5kZW50LXdhbGtzLTlxADwS0LR+earC2Xz3ckPnvgK7ZavbNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3Mtb25lcmVwZWF0LTM1LTQ0AAk2Oqx2a04wuU7LPPz1/yAx1yWbNDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3Mtb25lcmVwZWF0LThxANJd1jguf04ky209piuI73Ei/S87NDAwMDAgaW5kZXBlbmRlbnQtd2Fsa3MtdGhyZWVyZXBlYXQtOHEA7FSQpKbnkT8IAG4kJjluQ2kaycc0MDAwMCBpbmRlcGVuZGVudC13YWxrcy10d29yZXBlYXQtOHEABYKLosMGlgz3rGCZ1uJ86rebwMs0MDAwMCBpbmZpbml0ZS1kaWhlZHJhbC1yZWdpc3Rlci1ib3VuZAAsUV7ol55A5a1+crIUCOB9YhPocDQwMDAwIGlucGxhY2Utc2lkZS1wZXJmb3JtYW5jZQB3XwdQ5N7+f5J3t99/oC1CH9xEQjQwMDAwIGludGFjdC1yZWdpb24tbWluaW1pemVyLWNvdW50AL9xPlAYqr4sGWEF47BNzlRvsbzrNDAwMDAgaW50YWtlLWNsb3N1cmUtb21pc3Npb24AjXZ+zfXX7kb/4fDBnikI0aax3e00MDAwMCBpbnRha2UtaW5pdGlhbC1oZWFkcwCJ8Mz/4b0aTmpskMkj/VlIBSr2RzQwMDAwIGludGVnZXItYWRkcmVzcy1zaWduZWQtc3dhcAAoSA7cumJlp2moinV6WDts5TWe2DQwMDAwIGludGVnZXItY29tcGlsZXItc2VwYXJhdG9yAMiZpdcW9VRUkXn38C/AKZ7BSBRwNDAwMDAgaW50ZWdlci1pZGxlLWhpc3RvZ3JhbQC2Q+SwpiijK6AOzq8aNLW3e1dW6zQwMDAwIGludGVnZXIteG9yLXNjYXR0ZXItYm91bmRhcnkAtKPmSkb4jLeumHNR7V/qiZIUIng0MDAwMCBpbnRlZ3JhbC1yZXRyYWN0aW9uLW1vbm9taWFsLWJyaWRnZQAbt7l5h5my4jJBbYxYdyDD8/+xizQwMDAwIGludGVyY2hhbmdlLXJldGFpbmVkLWJhY2tpbmcA5ktj4GJ3c7mnz3cfms4c8Rz5k2E0MDAwMCBpbnRlcmlvci1tYXNzLXRhaWwtZ2F0ZQCb1x5nHJfQ8D70byUg3JcKdvTYajQwMDAwIGludmFyaWFudC1yZWFkZXItcmVzdG9yYXRpb24AlJpESQm/d/6Zif+YYtaXfo25fvA0MDAwMCBpbnZlcnNlLWNlcnRpZmljYXRlLWJpdC1ib3VuZHMAQjueV5VJ7KPY+PBQecvZMCzVCRU0MDAwMCBpbnZlcnNlLWNvZGUtcmVjb3ZlcnktdGFncwDO+wZlDl+C9SoRPZN3Smz6R9NQSTQwMDAwIGludmVyc2UtZGlydHktY2VydGlmaWNhdGVzAJ5itf8KWhIG+lWvoSscil6yFUD3NDAwMDAgaW52b2ljZS1tdXRhbnQtY292ZXJhZ2UAssCFDRM84pPJUTnf1NxLhK7ln5U0MDAwMCBpbnZvaWNlLXJlYWxwYXRoLXJlcGxheQDaI8t1KWepLPpwo0+7oJP1hjLTczQwMDAwIGludm9sdXRpdmUtd2Fsc2gtbGlmdABVMnQ2irDZ0HOq5oIPTFsId5gGRzQwMDAwIGludm9sdXRvcnktcHJvZHVjZXItcmF3LWR1YWwAZMWDNsOmhXX/1mSHVvSAZDoHczQ0MDAwMCBpbndhcmQtdW5pdC1waGFzZS1jb250cmFjdACeVpvYFqECJZUUbliye42V1WAw1DQwMDAwIGlzb2xhdGVkLWF4aXMtZXhwb3N1cmUAaaHMFqQvDG+2GWvAFdBBcNxXXJs0MDAwMCBpc29sYXRlZC1kZXNjZW5kYW50LWJ5dGVjb2RlAJ5F9hNOSu3vL8ocgqLW6J1sD17GNDAwMDAgaXNvbGF0ZWQtcnVubmVyLXN1Y2Nlc3NvcgAVVdP5FSMP/ZvVic7jVfJUHm02uTQwMDAwIGlzb2xhdGVkLXRlc3QtYnl0ZWNvZGUAg5WwUuxVLYUOiXrAi8aF/AoLZHE0MDAwMCBqLWNhbGxlci1pbnRlcmZhY2UtZ2F0ZXMAXupbw46r7H2HRoYMKl8gr9RgyCI0MDAwMCBqZjAtcGFpcmluZy1vcHRpbXVtANB99SYq8Zx89F682iSGUjkRYdWYNDAwMDAgam9pbnQtY29ubmVjdG9yLXJlYWQtc3ludGhlc2lzAC7DDE2PlQ6gA5WuYd1EExK75rhLNDAwMDAgam9pbnQtZHVhbC1yZXBsYXktZmFzdAAOWtBkXBIRfHn2/8pFchwjziC5IzQwMDAwIGpvaW50LWR1YWwtcmVwbGF5LXByb2R1Y3Rpb24AFV/RMb1ICfot6jIlp61I+O/uJh40MDAwMCBqb2ludC1kdWFsADKBfw6tlYS6BDpIVk9W3PhEFpIYNDAwMDAgam9pbnQtZnJhbWUtbW9kdWxhci1zY3JlZW4Axygyn7BuU3/FZmkIc16QtJ0l73s0MDAwMCBqb2ludC1oZWxwZXItbGF0dGljZQCTw9pdoKUnuvQtu+duevAQOE3vhzQwMDAwIGpvaW50LWxldmVyLWFsZ2VicmFpYy1zY3JlZW4ACdcoXtD/35Huy/CImOpu0K931hE0MDAwMCBqb2ludC1wbGFuZS1iYXNpcy1zY3JlZW4ASP2lLmEM6rZ3dXyc8tjwlnMSqL80MDAwMCBqb2ludC1wcmVmaXgta2VybmVsLXBhY2tpbmctdmFsaWRhdGlvbgCvxfJquJG48Waw/I924PXcDSmGbzQwMDAwIGpvaW50LXByZWZpeC1rZXJuZWwtcGFja2luZwA+s2TZy0Ap/29vrjBfT0p8KlrNyTQwMDAwIGpvaW50LXF1ZXJ5LWV4dHJhLWIyLW9ic2VydmF0aW9uLXNlZWQzZTYyAA4SbsQ8Epif00ZzAC+vG0FDNQepNDAwMDAgam9pbnQtcXVlcnkAcAzpyCW7ad65rzTzuudJXGvjWUQ0MDAwMCBqb2ludC14NTQtdDM3ANu95zCAKoD0cQJINZsv2BspLiuhNDAwMDAganA4LWFkZGl0aXZlLWNvZWZmaWNpZW50LXJvdXRlcwDaT5f1AzejBxwucTM8KcAXrnHnfzQwMDAwIGpwOC1hZGpvaW50LXJlc3RvcmF0aW9uAIgsWRvBDeN8rE3R5LBqM7z8XL/5NDAwMDAganA4LWNsZWFuLXdvcmsAKbR+aBSdkh3Qm2ViYKsM658wFS80MDAwMCBqcDgtY29tcGVuc2F0aW9uLWJhdGNoaW5nAHeV4TkW/fxYxdCsqtXMjIwIoevONDAwMDAganA4LWRpcmVjdC1zbWFsbC1pbnRlZ2VycwD6caf/Sr5aSkpRYSMAVW8VjuREATQwMDAwIGpwOC1ncmlkLWJvdW5kZWQtc3ludGhlc2lzAMfxCg65yhUsiO2/apkJYTOkWzeJNDAwMDAganA4LXNjYWxlLWludGVydmFscy1zZWVkMzUAQoub7vIljjBG6pAyR8nelJA0i9w0MDAwMCBqcDgtdHJhbnNwb3NlZC1jb2VmZmljaWVudC13b3JrALEhDDYz6kTrlwKpYLyQ5zDiVCztNDAwMDAgandyLWNoYWluLXJlY2VpcHQAgd48SPwVdZdfrWJ2mSS7LpUfgvA0MDAwMCBrLWFkam9pbnQtYm91bmRhcnktcHJpY2UAGLltrnhD4yqdU4CtIXZaaE/UR/80MDAwMCBrLXRyaWFuZ2xlLXJlbG9jYXRpb24An/cF7YYeqoUZMAMPgKnmY3aOyhU0MDAwMCBrMi1jbGFzcy1jLWNvbmZpZy1hdWRpdAAOBLFLQFacoiWMy/BtBUkCxCd9gTQwMDAwIGsyLWNsYXNzLWMtc3RhYmlsaXplci1vcmJpdC1pbnB1dHMAbG5aM1MaL74nFh87d9sfyiXyNHA0MDAwMCBrMi1jbGFzcy1jLXN0YWJpbGl6ZXItb3JiaXQtcXVvdGllbnQAPVenEJnu9yySsOlrFmBw5x7Bqt00MDAwMCBrNDkyLWVtaXR0ZXItaW5kZXBlbmRlbnQtY29udHJvbHMA3+fHuKeXw9044hDXELKUdYLsaA40MDAwMCBrNDkyLWhlbHBlci1hY2NvdW50aW5nLWF1ZGl0AFyHbRY34yerLKNib/j3rdS3MQPmNDAwMDAgazgtY29oZXJlbnQtdHJpcGxlcwDOKcUwmJcUJ+vVs9UnwAZPpZtqajQwMDAwIGs4LWNvbW11dGF0aW9uLWNlaWxpbmctc2VlZDI2AM1EoiYrfAozSinnF4OrxUnhNLjNNDAwMDAgazgtY29vcmRpbmF0ZWQtb3duZXJzAJWBCRkkFC3v/2qduko0/PFI457gNDAwMDAgazgtY291cGxlZC1nYXVnZS1zdGF0aW9uYXJpdHkAk6dzJ2Fht21DxSZTGnuZCYwU5qg0MDAwMCBrOC1laWdodC1lbmRzLXQx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GukE3ViUNDAwMDAga2FwcGEtcGFja2luZy1wcjYzOC0yMDI2MTAxMwA6TX7CuhjEiU0pLP5wZTSEYAp+qTQwMDAwIGthcHBhLXBhY2tpbmctcHI2NDMtMjAyNjEwMTMAFrlvWRrjo+EtGt2FU9zls9jaxoY0MDAwMCBrYXBwYS1yZWJ1aWxkAGZcv3afGjVPxtXwRy2DjWFn22BSNDAwMDAga2FwcGEtcmVjdXJzaXZlLXBoYXNlLWNoZWNrcG9pbnQtMjAyNjEwMjMA3dhO54bTZEPBazD0W5at5g00TlY0MDAwMCBrYXBwYS1yb3VuZDMtYXVkaXQtMjAyNjEwMjIAiYNY1bp1GJlzIZOxXd9ioWgEL7c0MDAwMCBrYXBwYS1yb3VuZDMtd2FycC0yMDI2MTAyMgDbBsdqRgg3g7Z15aXOQYxSpADTUDQwMDAwIGthcHBhLXJvdW5kMy13YXJwLWxlYW4tMjAyNjEwMjIA0EICALct51Koabhh5xzz573HpTE0MDAwMCBrYXBwYS1yb3VuZDYtY29tcGlsZXItdGlnaHRlbmluZy0yMDI2MTAyMgAzusMvXlzve/2QKV3a84emksCxOzQwMDAwIGthcHBhLXJvdW5kNy00NjEwLWNvbnN0cnVjdGlvbi1jaGVja3BvaW50LTIwMjYxMDIyAHdQpcCcoR3HYcqzUPWWofqBCx8CNDAwMDAga2FwcGEtcm91bmQ3LTQ2MTAtY291cGxlZC1yZWN1cnNpb24tMjAyNjEwMjIAmUuSaj8ivQ6iJy6o9Ntcqo5belM0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1mcm9udGllci1yZXZpZXctMjAyNjEwMjIApPUULzSvpwWYPW0jy42cPV0UcGE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1pbmRlcGVuZGVudC1hdWRpdC0yMDI2MTAyMgDg9NNqCt3J8eQU6g+HAzTe1gXsKzQwMDAwIGthcHBhLXJvdW5kNy00NjEwLXBoYXNlLWRlYnQtYXVkaXQtMjAyNjEwMjIAh0TzU7SlcioTPSM4eaEcOVxSILw0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1waGFzZS1yZWN1cnNpb24tMjAyNjEwMjIAV7/xsmOqQRdZ8U0JJkszOZTwIKE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1yZXZpZXctMjAyNjEwMjIAJHOmR8Dh1qgEvhfN5380P9/PHVE0MDAwMCBrYXBwYS1yb3VuZDctNDYxMC1zY2FsYXItY29udHJhY3QtMjAyNjEwMjIAfF/hbLBkC4sXwFIz5fzh+PcG7Dg0MDAwMCBrYXBwYS1yb3VuZDctcmFua29uZS1waGFzZS0yMDI2MTAyMgAyJzituyBB9X1HAXsididCFYNhJDQwMDAwIGthcHBhLXJvdW5kOC1jb21wbGVtZW50LWF1ZGl0LTIwMjYxMDIzAA5tb9E/R388Js5lxXArxpYnpKLFNDAwMDAga2FwcGEtcm91bmQ4LW93bmVyLXByb3RvY29sLTIwMjYxMDIzAOxCmTWIr1qBX0goWMwZcnjTbSqsNDAwMDAga2FwcGEtcm91bmQ4LXJlY3Vyc2l2ZS1waGFzZS0yMDI2MTAyMwCUvetn44TxEKUTqhuARuQ8bGm7tjQwMDAwIGthcHBhLXNlYXJjaC0yMDI2MTAyMgCrdiFcIk3z+eI8DvQJJYoLYAs4HzQwMDAwIGthcHBhMDAyMy1leHBsaWNpdC1yYW5rLWF1ZGl0AErmts2uY5MNpEYaEZ0oBl5m1kwbNDAwMDAga2FwcGEwMS1iaXQtcmVwYWlyAGdqzGSkWDYGCMyozqCwPVHM9PPVNDAwMDAga2FwcGEwMS1maWVsZGxpbmUtcmVwYWlyADxiBP1CjtVXFcqOcrS2TMGeeDcjNDAwMDAga2FwcGEwMS1oYWVtZXJzLXJlcGFpcgAJ2Kea0ioyhpeeiefnUF0c25YTFzQwMDAwIGthcHBhMDEtb3V0ZXItcmVwYWlyAM4Dm3eSHb3syuCwAMTj0HOYoj1DNDAwMDAga2FwcGEwMS1wbGFuZS1hdWRpdACwEjw4qSjdT2aygz/XYN0eWEy2sDQwMDAwIGthcHBhMDEtcmVwYWlyAHiC2AS6rYFAT/mf7OK6JOzl9X5bNDAwMDAga2FwcGEwMS10YXJnZXQtc2NyZWVuAO1w9UuCjqU5lf1vG7cuAXQh+qP7NDAwMDAga2FwcGEwMTAtY29tcGxleC1sZXZlci1mbG9vcgBAFIJKbVkskDnmIEtFg5TakRuCPzQwMDAwIGthcHBhMDEwLXJhbmstY2FwLWZsb29yADKN6LDLKyrsbJbBrt82aPEt519ONDAwMDAga2VybmVsLWRlc2NlbnQxMjAAnqdPCOSxxC5d/m8IdirZDtjgYB00MDAwMCBrZXJuZWwtZW50cmFuY2UtbmF0aXZlLWJvdW5kYXJ5AHCggZZwo7I+jTONm+eGTDDTpLN+NDAwMDAga2VybmVsLWZyYW1lLWNvYWxlc2NpbmctdmFsaWRhdGlvbgBhVVSeoL4IG5fQcbT6aYg7RPRtGTQwMDAwIGtlcm5lbC1mcmFtZS1jb2FsZXNjaW5nAFKKofDVx7NVJpIoszWUl25wSZgyNDAwMDAga2VybmVsLWdyaWQtZXJhc3VyZQB9n5wbMuW/kFLdq8rHWuaJIkW03TQwMDAwIGtlcm5lbDEwMi1pZGVhbC1kdWFsLWF1ZGl0ACbPHth7JaStzUDql5LprVPKpmfPNDAwMDAga2VybmVsOTItZnJhbWUtY29tcG9zaXRpb24Abvm8+XjeyQ+X0UKx+3vLNSX0mrg0MDAwMCBrcG9ydC1ncm91cC1zY2FsYXItZW5kcG9pbnQtYXVkaXQA57Fsg/WDUuqZTqbeTp3DZTIOksw0MDAwMCBrcm9uZWNrZXItbWFzay13ZWlnaHQAmCXb6VB9YXpkvK5k4BWsdwEE0f80MDAwMCBsMjItc3BsaXQtZG9tYWluAEd8ogRphcILQ+gVcYYPGg3ERTToNDAwMDAgbGFiZWwtY29vcmRpbmF0ZS1ib3VuZGFyeS1hdWRpdAD2CLktIz0Sh+pm6kTvrlGdKvaehDQwMDAwIGxhYmVsLWZpZWxkLWNlbnN1cwBmy8hDw5LGJFpNHkSC4ognqLPD6zQwMDAwIGxhYmVsLXdpbmRvd3MtaDEyLXBsdXMAyXlIPiz7/c6MAF+Zy/e1jc3kuuU0MDAwMCBsYW1pbmFyLWhlYWRlci1sYXcAB6KLkaNqONYdr03XMBsDFrXADug0MDAwMCBsYXJnZXItZ2FpbgAVjoC6HETJvJ+B97UckaS1OlhGcTQwMDAwIGxhdGVyLXdhcnAtbWF4aW1hbC1lbnRyYW5jZQAW3vRVUdWohZIyB/Fs7tbdWlCL/TQwMDAwIGxheWVyLWVuZC1jb250cm9scy1wYXJhbGxlbAACV6fWtf+d1NgSXbrKtDxJMy20zDQwMDAwIGxlYWRpbmctc2VjdGlvbi1kb3duc2V0LWF1ZGl0ABH8x7wLRpGf7llDjsrLgNS0k0d2NDAwMDAgbGVhZi1kZXN0aW5hdGlvbi10cmFuc3BvcnQtYm91bmQAGwM4HBF5oFH5kUdDks2Elmjos1g0MDAwMCBsZWFmLWRlc3RpbmF0aW9uLXRyYW5zcG9ydAB2TyxA1yBarHPILOm3cGSwORb2JzQwMDAwIGxlYWYtb21lZ2EtcHJvZmlsZQAbKjRGcOmy1pxOthxDTMi3Lh5jRjQwMDAwIGxlYW4tYml0LW1vbWVudC1kaXNjaGFyZ2UAxhw8/dnvumaj+fWF+XkGV4ZhMKw0MDAwMCBsZWFuLWNvbW1vbi1sYWJlbC10ZW5zb3ItbGlmdACYzyWlFLiKZRcR/UJGzQo+yMugXjQwMDAwIGxlYW4tY29tcGxldGUtYmFuay1lbmRwb2ludACIgLzsQfgwKBV4bibqfg6UqLzyfzQwMDAwIGxlYW4tY29ubmVjdG9yLWV4Y2x1c2lvbgB3JSwELvRDZMtXgtUxJRW+FAwDjTQwMDAwIGxlYW4tY3VycmVudC1yNDIwLWJvdW5kYXJ5LWludGVyZmFjZXMA6GI87TExoTsps+pWpDaST8mPQJE0MDAwMCBsZWFuLWN1cnJlbnQ1ODgtbmF0aXZlLW1vbWVudACne+ENDWzsctUKPw4rxhDbbob1qjQwMDAwIGxlYW4tZGVjb2Rlci1yYW5rLWludGVyZmFjZQCRoPKLA5b+i0jaeltmK5VNgq8UkTQwMDAwIGxlYW4tZGlydHktZGVmZWN0ALPTPhGKnvUCvqz3B+kFlB1tyktwNDAwMDAgbGVhbi1kaXJ0eS1lY2hvLWJ1ZGdldAB4U5gHtmmut8CdgO5WDM3Vh9VoPTQwMDAwIGxlYW4tbm9ubGluZWFyLWNvbW11dGF0b3IADu13HKXZpmze/G2p1fsKGtIFRR00MDAwMCBsZWFuLW5vcm1hbC1jbGFzcy1yYW5rAIOZLMHOTCd3uNBx7WTUT8N9BgwYNDAwMDAgbGVhbi1wYWlyZWQtY3ViZS1kMWQ2ALBpy+mOFAp8CTTBjJiLV9bQiX0KNDAwMDAgbGVhbi1yZWNvcmQtcGhhc2UtYnJpZGdlAB+caIA2x2WUWHZdftfeRNbX4pnGNDAwMDAgbGVhbi1zZXF1ZW50aWFsLWJhbmstYmluZGluZ3MAiSQR1/qJszL31Feoz0qAr33OLa00MDAwMCBsZWFuLXNwbGl0LXJlc2lkdWFsADixaHKyBS+7ZtMjSJZvJDA3zBWyNDAwMDAgbGVhbi1zdG9wcGVkLXJlY3VycmVuY2UtYXVkaXQAp+/sjAJoWndTlSlBNW1cUnsYUno0MDAwMCBsZWFuLXRyYW5zcG9ydC1jdXQA9r115LQU7ezZb/YM23mmB+gAof40MDAwMCBsZWFuLXVuaXRhcnktcHJlZml4LW5vcm0ALGYTFcZWO8y/FxhTAjyL42JRau00MDAwMCBsZWF2ZXItY2VsbC1hdWRpdC1zZWVkNjUAD9eYLIIU34lSst1ZbmWS5XLfo3o0MDAwMCBsZWF2ZXItbW9ub3RvbmUtb3B0aW1hbGl0eS1zZWVkMjEAnmbXpL5gJgYMo+vd/Wr4xRikTI80MDAwMCBsZWF2ZXItcGFydGlhbC1jZWxscwBX411Bi2X6e8hGb0Y2215Df2E5XjQwMDAwIGxlYXZlci1yZWxhYmVsLWF0bGFzLXNlZWQ4MQATAxen2tm8jFhayZgUVBgCRjcf4zQwMDAwIGxlZGdlci1kZWNpc2lvbi1iaW5kaW5nAPEpkWFoiNpJIdy31zpJ449ECYzVNDAwMDAgbGVkZ2VyLWV2aWRlbmNlLWRyaWZ0AKjt3I0pSJtUYtxJefi0WE6Jj4JyNDAwMDAgbGVlY2gtbGF0dGljZQD5D9dFTfkx5N3Yz5rhruzvQeqxTTQwMDAwIGxlZWNoLW1pbm9yLWJ5dGUtbGFuZXMAtb/GI7RxmF6qKTFRoXexmQeGXVU0MDAwMCBsZWVjaC1taW5vci1wcm9kdWN0aW9uAHpCbA9fYIeino5BqRlSFJRkHuWENDAwMDAgbGVnYWN5LW5hdGl2ZS1xdWVyeS1vYnN0cnVjdGlvbnMA64haXD6fL0/QQPptYUBHKIAWO0E0MDAwMCBsZWdhY3ktb3V0ZXItYW5hbHlzaXMAU642smfcH1uuWVg0ovBJ9GD/czk0MDAwMCBsZWdhY3ktcGFja2V0LWxpbWl0cwBvhhQPMdUpBpNzZLbdQTEgC6BhoDQwMDAwIGxlbmd0aDgtdG91Y2hpbmctZGlhbWV0ZXIACCY65zEfbC2x7w1dHNoBwy9tKUA0MDAwMCBsZW5ndGg5LWZpdmUtdmVydGV4LWdhcAApGHt8NOLslcVQqHtDiYbz1OjVtDQwMDAwIGxlbmd0aDktZm91ci12ZXJ0ZXgtZ2FwAH2g4Pta89Log9GGC5fhilYB/qZqNDAwMDAgbGVuZ3RoOS1pbnRlcmlvci1lbnRyeQCgB+PKhwdQjyXFom+/84puvJBwvTQwMDAwIGxlbmd0aDktcG9zaXRpdmUtcmltAIbpy4IkGzV6LWuvwR3wfWRsZuUoNDAwMDAgbGVuZ3RoOS1zZXZlbi12ZXJ0ZXgtZ2FwALVVeFSZHrOF1+2c1glzwI+ZUCfQNDAwMDAgbGVuZ3RoOS1zaXgtdmVydGV4LWdhcAA4v0B2s5gXEAhsBgRrH7N6PO2BaDQwMDAwIGxlbmd0aDktdGhyZWUtdmVydGV4LWVudHJ5ALSfzeTSCsEY+UND+rHOzBWp3Y99NDAwMDAgbGVuZ3RoOS13aWR0aDItZW50cnkAdkHz0bSQ1hRpWwNWsnbuD7LDPg80MDAwMCBsZXZlci1pbnRlZ2VyLXR3aW5zAOSErrFlywacMugp0BKvi+CPWLLyNDAwMDAgbGV2ZXItbWl4ZWQtdGFyZ2V0cy0yOTc5ANvN6FfhylRZ0V1twhwLDt9fPHKfNDAwMDAgbGV2aS1hZGFwdGl2ZS1nYXVnZXMA8aXhzN6xbZOv2w9Z1nS4gq5W/jI0MDAwMCBsZXZpLWdhdWdlLXJlY291bnQAGL9iMlomPRuxVMxvFO1m6lYXUSI0MDAwMCBsaWZ0aW5nLWNoZWNrcG9pbnQtc3BhY2UAUhl+RdMkcfDN1gPZ2O+ARoUBGeA0MDAwMCBsaWZ0aW5nLXJlbGF0aXZlLWhpc3RvcnkAV5O3fiUj+qeboBCMu9KcYaYC4Mo0MDAwMCBsaW5lLXBvcnQtdW5wYWlkLWNhcAC7cA1zBuuzNBAHOTYy9sarS02BMjQwMDAwIGxpbmUtc3lzdGVtLXNhdHVyYXRpb24Al/V1uVoBcgEZbzSM8RG8ZWsJoH40MDAwMCBsaW5lYXItcG9ydC1ib3Jyb3dpbmcA5aCeEwiTg/fJeRJ/Sgt+zUcpugk0MDAwMCBsaW5lYXItc2lnbi10b3RhbC10cmFmZmljAKrREDr5zsdGS+I/TDlCMgM9lOFQNDAwMDAgbGl0ZXJhbC1jb21wbGV0ZS1yb3ctcGFya2luZy1jYWxsZXIAczML4QruvZJdlw6HTIh/g4MFMrU0MDAwMCBsaXRlcmFsLWVsZW1lbnRhcnktaW50ZXJjaGFuZ2UA40PhT2rsJ6wwGhp4dbjavy5sYHY0MDAwMCBsaXZlLXBpbi1kcmlmdC1hdWRpdC1zZWVkNTk4NQD7HrEBA3x/1Bj4D5nyzLxjtue8DTQwMDAwIGxpdmUtcHJvamVjdGVkLWNvcHkta2VybmVsAKailConGo+4tNcOzWx0wgt+SdEWNDAwMDAgbG9jYWwtY29yYW5rLW9uZS1jb3N0AIWgU1gpWewjtq40ThiYCkITJXKVNDAwMDAgbG9jYWwtZWlnaHQtZm9ybS1jYXB0dXJlAPSY7t3d4hnpoieP0fq35id6TkwJNDAwMDAgbG9jYWwtcmluZy1yb3ctZmFub3V0AATEErOnj+XmMG2RnuCwpB18idk5NDAwMDAgbG9jYWwtd29yZC1yYW5rLXNoYXBlLWNlaWxpbmcAK8v2lLONXoW9VBsRyG0iCkVW0N40MDAwMCBsb2Nrc3RlcC1saXZlLXJvbGUtYXVkaXQACxDo9AVWHzDBfjPFONbS6SfAbRY0MDAwMCBsb2ctYWJzb3JwdGlvbi1ib3VuZACRQJ7xazdKx0oomomVK/O4Uqfd5jQwMDAwIGxvZy1wb3RlbnRpYWwtdGVtcGxhdGUtcmFua3MAadTy10ynkW9L8eX7vSMp8ZrPV+o0MDAwMCBsb3N0LWZyZWUtY292ZXItYm91bmQAeY5GvKsH2q5H+KvWH6e2DsIcU0c0MDAwMCBsb3dyYW5rLWNvbW1vbi1yZWFkb3V0LXNlZWQ3MjZiABvV2hq5yUBO2XDymneZTgzpAGhsNDAwMDAgbWFjaGluZS10cmFuc2Zlci12ZXJpZmljYXRpb24AK7FnnU/477t/3CJcA4hhQQ4qSGw0MDAwMCBtYW50ZWwtZWRnZS1jYXAAhvTzOXjh3NuWYUrPkJKcIIxLTlA0MDAwMCBtYW51c2NyaXB0LWV4cG9uZW50LWNsZWFyYW5jZQBJCnUfzRINWtE25eBo8W2hg/i3CzQwMDAwIG1hbnktYXhpcy1lbmNvZGVkLWF4aXMtZ3VhcmQArxcDDPggyKBslVn3sXReYEvNfRo0MDAwMCBtYW55LWF4aXMtcHJpbWUtY3V0b2ZmAEnKtRerhhs5QEm1bIoJPEOfwGgvNDAwMDAgbWFueS1heGlzLXByaW1lLXByb2R1Y3QtbG9zcwAQEM0NkYxkrQBsL1FT/WC/wrt6ODQwMDAwIG1hbnktYXhpcy1wcmltZS1zdXBwbHkA3GBuQrCvmguoqErdFHfQBKJMgJc0MDAwMCBtYXJrZWQtcmVzaWR1YWwtcmVmbGVjdGlvbgCstrfJW5mxLsqx9931Kf2KbxgGvDQwMDAwIG1hc2tlZC1lOC1wYWRkaW5nLXRyYW5zZmVyABsWCy9iNVGcPM3OVLhY/HRAKaYNNDAwMDAgbWFza2VkLWU4LXB1bmN0dXJlLXRocmVzaG9sZAC2PmOroWkrB1hAwG8QV7wMklB2eTQwMDAwIG1hc2tlZC1yb290LXN0YXItYXNzZW1ibHkACIysGAFiQ1o4MSGCSiz4TuIMjxA0MDAwMCBtYXNrZWQtcm9vdC1zdGFyLWZsb29yACOC9lIuAoTjp72IGDQIErotQnBXNDAwMDAgbWFza2VkLXN0YXItZnJhbWUtY29tcGF0aWJpbGl0eQCclBJdc8vKyfPzceDxIBZ5xHKd0jQwMDAwIG1hc2tlZC1zdGFyLWZyYW1lLWNvbmZsaWN0cwAHskCNbfaXgnWngc8iFOgC0qoSwjQwMDAwIG1hdGNoaW5nLWxheWVyLXJvdW5kaW5nAHCwHyu2XwDbasgIcqDLdHBcnU0pNDAwMDAgbWF0Y2hpbmctc3VibGF5ZXItbm9ybQBwdIZ2kW08NGiN7O4IDqJE/sGFcTQwMDAwIG1hdHJpeC1hbGdlYnJhLXRocmVlLWZhY3RvcgBnYDOfUZZQWLImYYqGtjaNA1kDaDQwMDAwIG1hdHJpeC1leHBvbmVudC1zeW50aGVzaXMAp8MLFGK4buavfzcrMiS5Fsws+v40MDAwMCBtYXRyaXgtcHJvZHVjdC1jb21tb24tdGhyZWUtZmFjdG9yAOO3BwFnv28jlJYdvX3niv4ECrYENDAwMDAgbWVjaGFuaXNtLXByZXAAiSwXCXZM2wxgijwXD0JaShUhs8w0MDAwMCBtZXJnZTUxMTItcmV0ZW50aW9uLXJlY2VpcHQA8n9EcatljXlAA4gmrTmKfDeiRp80MDAwMCBtaW5vci1iaXQtYnVkZ2V0APmZcbBEtmY9gZvSS2jzvEkMh5mvNDAwMDAgbWlzc2luZy1qb2luLWZyYW1lAInVkjWOK6BZYEM8O6pMqZQ+/ygUNDAwMDAgbWl4ZWQtYmxvY2stY2xpbWItb3ZlcmhlYWQAnlMVrztKAkpemdu8QsP0GBJVe3A0MDAwMCBtaXhlZC1jbGlmZm9yZC1keWFkaWMtaW1iYWxhbmNlAHtoul1Ngttv6SJ3gRbiM9YIpls3NDAwMDAgbWl4ZWQtY3V0LWVpZ2h0LXN0cmVhbS1iaW5kaW5nAI7G7yRGq+W7DM7d+HzNF2AYfwsaNDAwMDAgbWl4ZWQtZGVtb3Rpb25zLXQzNwD52+PIeQvTZBY/4cKuX1Wf/snsJTQwMDAwIG1peGVkLWZ1c2lvbnMteDU0LXQzNwBhz40mxSTffPbAUtKnfJl1VbLIsjQwMDAwIG1peGVkLWdsMi1ibG9jay10YXJpZmYArmzuqRTZet3RRfvYiVGjqw7Ixl40MDAwMCBtaXhlZC1tb21lbnQtc2NyZWVuAF5VwV8hOlKfRedxLWGe22zficVkNDAwMDAgbWl4ZWQtcG9pbnQtc2NhbGFyLWRpZ2VzdAANeFaMeoLrU7+UpMZ+zzCpfAXYKjQwMDAwIG1peGVkLXBvaW50LXZlcmlmeS1tYXNrcwDkMRqnnQuPTPaQPKnSUITG8+jIEjQwMDAwIG1peGVkLXBvcnQtY292ZXJhZ2UtYXVkaXQAEAhv4B7qaHA/VXFV4UPlbcjK0i00MDAwMCBtaXhlZC1wcmVjaXNpb24taW52ZXJzZS1ib3VuZGFyeQDGJvfZAN64nl3/hxtuaJRP2tkUazQwMDAwIG1peGVkLXByZWZpeC1mb3Vyd2F5LXZhbGlkYXRpb24AQmHAscnT4mXy/OCqdN58U1FmP2M0MDAwMCBtaXhlZC1wcmVmaXgtZm91cndheQArMWR/bt6YL9IPzVkvhAUPZcOEWDQwMDAwIG1peGVkLXByb3ZpZGVyLWFkbWlzc2lvbgALTk8MQSIN8cE2+vrvi8rTQ/ZPCjQwMDAwIG1peGVkLXF1YWRyYXRpYy1jaXJjbGUtYm91bmQABeLn0AlmuC+abhxVulcrsSZxxWs0MDAwMCBtaXhlZC1zaWduLXBoYXNlLXNwZWN0cnVtACy3WZ7Gz5VBDrLrRcnK9gBTs16PNDAwMDAgbWl4ZWQtdDM3LWVudHJhbmNlcwDI3rmaeLUOn3S7LcUcbCH0o9shJjQwMDAwIG1peGVkLXQzNy1zb3VyY2UtaG9sZGVyLWZ1c2lvbnMAfRDgG/U/YQ591sC3dihA9iwipEc0MDAwMCBtaXhlZC10YXJnZXQtY2FwYWNpdHktY2VpbGluZwAaKzn08YNonxqoo4IfY7ld54sO1jQwMDAwIG1vZHVsYXItZ2F1c3NpYW4tcmVjb3ZlcnkAFj88k+KnvNAJvv52sz+qRnTEFb00MDAwMCBtb2R1bGFyLXBvcnQtYm9ycm93aW5nAEt+Ir6JhogNlfS/d32941xb1M8iNDAwMDAgbW9ub3RvbmUtb3duZWQtY2VudHJlLWZsb29yACwfetq51N0V2xiHcWQXnFTz6FSBNDAwMDAgbW92ZWQtYWRkLWNyb3NzZWQtaW52b2ljZQCnSoscNOH5qIE5yPnJFOxquCLFzjQwMDAwIG1vdmluZy1hbmNob3Itbm8tcS1jZWlsaW5nAPAmhgtxyP/vRVUW1p9rEevmPPyuNDAwMDAgbXVsdGktY29ubmVjdG9yLTdxLW9ic3RydWN0aW9uAE+m75WFmu9qttKXA314VzrqYoGaNDAwMDAgbXVsdGktbGluZS1uYXRpdmUtZXh0ZW5zaW9uAI6A9Rl5LRW6Osn/BtAAxo8vhDvjNDAwMDAgbXVsdGljb2xkLXdpZHRoNy12YWxpZGF0aW9uAJa34XXRF0a9e7fx4/ChNg1qic8DNDAwMDAgbXVsdGljb2xkLXdpZHRoNwCvTb6bUIfHsQvAV/qq9uJur4389zQwMDAwIG11bHRpY3V0LWtlcm5lbC1jb25kZW5zYXRpb24AQg0KNh1qXkVDgIVzutbOn+o8v+c0MDAwMCBtdWx0aWlucHV0LXNoYXJlZC1mb3VyaWVyABMfKfn4PAJCJ1+wkITYXcRvMHZCNDAwMDAgbXVsdGlwYWlyLXNjaGVkdWxlLWJvdW5kACO+rgIBQp95pdBMR2aqDPUNc3IuNDAwMDAgbXVsdGlyb2xlLXJhZGljYWwtcGVuY2lsAPYo1/+So36k90OHFORsj/n2UwNUNDAwMDAgbXVsdGl0YXBlLXByZXNlcnZpbmctbXVsdGlwbGllcgCGIbQHRz9vzPavSdf9VT8CItiyxDQwMDAwIG11bHRpdGFwZS1wcm9vZi10b29sa2l0ALnTSia37+Ck8T6Lbd7/BnNXkv8rNDAwMDAgbXV0YWJsZS1jb25uZWN0b3ItZGVsaXZlcnktb3B0aW11bQA0XBwYi9txcFP80BPk4oGnsLbK5jQwMDAwIG11dGFibGUtc291cmNlLTc4OXEtaW52b2ljZQBmxpYAVhCsfekyP/O/21xPZbx1CTQwMDAwIG11dGFibGUtc291cmNlLWNvbm5lY3Rpdml0eS1ib3VuZACvziodArYtjKh9r+DdDAudJ72NADQwMDAwIG11dGFibGUtc291cmNlLWNvbm5lY3RvcgCugAlxFMdsBduv6oX+7GFkHwfpCDQwMDAwIG11dGFibGUtc291cmNlLW1pbmltdW0tcXVlcmllcwAEcjxvusYMMMqPhA65Wh+fnVqTZjQwMDAwIG11dGFibGUtc291cmNlLXBlcnNpc3RlbnQtY29ubmVjdG9yAF4+KNhHAnrAWls+an/CsT450TUqNDAwMDAgbXV0YWJsZS1zb3VyY2UtcG9ydC1ib3Jyb3dpbmcAGCIuy3UX1MekiRGwZZf6DZRE2Jk0MDAwMCBtdXRhYmxlLXNvdXJjZS1zaGVhci1jb3N0ANR0fIyMj29ox/cY05GpGxjKrsZgNDAwMDAgbXV0YWJsZS1zb3VyY2Utc2l4LXF1ZXJ5LXhvcgBShCd9ihfiNzVu4sNWg8k+VyeXsTQwMDAwIG11dGFibGUtc291cmNlLXVuaWZvcm0tdGFyaWZmAJfTELw6ac2j0d5JrCu5uO0QpeLJNDAwMDAgbmFycm93LW5ldW1hbm4tc2VjdGlvbgDd1tLePxKu9rq30KZJ6Heo098SWDQwMDAwIG5hcnJvdy1yb3ctaGFsZi1nYXAAJCotOI0jApbM3rLaRUhmwuqBx480MDAwMCBuYXRpdmUtY2NhY2hlLWNvbHVtbnMA4B+rXHjXGy77Xg7brmq8AlPbsyE0MDAwMCBuYXRpdmUtY2VudGVyLWZyZWUtY29kZQBZ3Db5wnVBami2pR5VCMvXLLrhDDQwMDAwIG5hdGl2ZS1jZW50cmUtY2FwdHVyZQDxTwonXB9TVWZkb9kU0nelCTgbKDQwMDAwIG5hdGl2ZS1jbGlmZm9yZC1nYXVnZS1jb21waWxlcgC9h8Tih2W5Bo9kP8+EPetwamn8XDQwMDAwIG5hdGl2ZS1jb21wbGV4LW1vbWVudDU1MgATgX64rxbHZcxsufoRAQGhfdrq9zQwMDAwIG5hdGl2ZS1jb250YWN0LXJlc3ludGhlc2lzAB5Vx4MJTgqUGU3X19EKG56ZSLxJNDAwMDAgbmF0aXZlLWNvbnRyb2xsZXItY29uZ3J1ZW5jZQDpfZlStSPSvajjDuNqZi9p9BhjJzQwMDAwIG5hdGl2ZS1jeWNsaWMtcmVjb3ZlcnkApcgYv8RoFYQcVSqof92HMmoEz2s0MDAwMCBuYXRpdmUtZHVhbC1zdXBwbGllcnMAGAOnpLAcRtf9kR750TpPylI+oy00MDAwMCBuYXRpdmUtZXJyb3ItY2hhbm5lbC1hbXBsaWZpY2F0aW9uAOPBT4R/zSJoxO/lxq3REtGd3ZDGNDAwMDAgbmF0aXZlLWZyYW1lLWNhcnJ5aW5nLXN3YXBzACkDDG441AKaIHSb53bCio6r2d4FNDAwMDAgbmF0aXZlLWZ1c2lvbi1yZXN0b3JlZC1zaGVhcgCn2tLYAf0GiKj7ujpbAQ24RI0b8TQwMDAwIG5hdGl2ZS1pbnZvbHV0aXZlLWR1YWwAt7rWiYDe3ivj/YnsvN4yIWM00yE0MDAwMCBuYXRpdmUtaW52b2x1dGl2ZS1wb3J0LXRyYW5zZmVyADQvbJHjNRz+qHNKHyDhPaFBilVvNDAwMDAgbmF0aXZlLWthcHBhLTMwMjAxNjU1ACobSQRoFc2E2H9FFb3TzZ6cvjiYNDAwMDAgbmF0aXZlLWxhdHRpY2UtcmV0aW1pbmcANU5NH0gk0ddeXo+kzXPgnkOv2RI0MDAwMCBuYXRpdmUtbGlmdC00NjM1LWRlbHRhLWNoZWNrAFs9xae8vGo3WVsEtyN5KkfDDjtxNDAwMDAgbmF0aXZlLWxpZnQtcGhhc2UtdGFncwDG2CskU5DYiyEzQNxzGC62/ziemDQwMDAwIG5hdGl2ZS1vcmJpdC1wYXJ0aWFsLWZ1c2lvbgB+bN4YBN9bLA8Zd4zlMcqBv8a7UjQwMDAwIG5hdGl2ZS1wcm92aWRlci1saWZ0ABGcdUq84QImCEsre2POQ2h2sx7ONDAwMDAgbmF0aXZlLXF1ZXJ5LWJvdW5kYXJ5AIyWfd4yojbvZ3Bfhx9h3iKoMQ93NDAwMDAgbmF0aXZlLXF1b3RpZW50LWludGVyZmFjZQDlTEqyh43ySfou8oS2JK3bayjAJzQwMDAwIG5hdGl2ZS1zY2FsYXItY2hhaW4tc2NyZWVuANZ75D9u3xdUqSqZ1RSHyokAs8y/NDAwMDAgbmF0aXZlLXNoZWFyLWJhdGNoAIgAJGexT4lYPUWapjoUqH52qXeyNDAwMDAgbmF0aXZlLXNvdXJjZS1jb2RlcwA49IJ5hm2xwxsJ7aP6L3tiVCdY6DQwMDAwIG5hdGl2ZS1zcGxpY2UtcmVjb3VudAD1kfZe6xyCLZSLRTYc4Ct3EirnYzQwMDAwIG5hdGl2ZS1zcGxpY2UtcmVwbGF5ANUlVzUyJKOEkBJwiNM8h0Q5LoMhNDAwMDAgbmF0aXZlLXN1ZmZpeC1lcnJvcnMASun73vmXdTqI5IHbJe2KwgDs4h00MDAwMCBuYXRpdmUtd2FycC1ldmVudC1iaW5kaW5nAOFy5CoZKOSRkZTHumdsItapYs4gNDAwMDAgbmF0aXZlLXdhcnAtZXh0cmFjdGlvbi1ib3VuZGFyeQAnNjrnC5MVrOO46qiC5hsaTd512zQwMDAwIG5hdGl2ZS13b3JkLWZmdADDby+EK8cuCgTnqLz2IHY1j9QnXDQwMDAwIG5hdGl2ZS13b3JkcmFtLXRpZ2h0ZW5pbmcA8hbbHomVL6uGgBmEDUim06AQ6dQ0MDAwMCBuZWFyZXN0LWNsb3NlZC13b3JkLWxvd2VyLWJvdW5kACbizuNWIF8d/dRYArHHB3F8A5HANDAwMDAgbmVnYWN5Y2xpYy1zaWduLWNhbmNlbGxhdGlvbgD3ukXnV6WO0KZOd3mr6ppnmiXoIzQwMDAwIG5ldC10YXgtcmFuay1jb21waWxlcgA3xmKvOj1sMtQq1+BBTTBfDAsJazQwMDAwIG5ldHdvcmstbG9nLWRvbWFpbi1hdWRpdABW516uUCbD9ABJQzpYvzjTm6S/YzQwMDAwIG5ldW1hbm4tcm91bmRpbmctYXVkaXQAVfx4OR9+m9QdyXuTN3DqiMLPJEc0MDAwMCBuZXVtYW5uLXRhaWwtYm91bmQAWU40hVzzWUQzuEQraUA+XLBaMZY0MDAwMCBuZXd0b24tcHJlZml4LWF1ZGl0AAumZyZ16W1c8yvu61vtT8FYY9/PNDAwMDAgbmllbWVpZXItbGF0dGljZXMAciqYoBTlqHNXgREKOwIPdqIAhTc0MDAwMCBuaWxwb3RlbnQtY2FsbC1mbG9vcgDz6c9uPgmCqoItacLJTCpdiOSD6DQwMDAwIG5pbmUtY29zdGx5LXJhbms4LWNvcHktZmxvb3IArFumk/dpieVGIQtp6uLgq9e60Mg0MDAwMCBuaW5lLXNvdXJjZS1qb2huc29uLWNoYWluLXNlZWQ5MjNlZGYAHQQWJg1prXONmZUy0tuC+mGv86M0MDAwMCBuaW5lLXN0YWdlLWJyaWRnZS1hbHBoYWJldACUqEc/HWbFMUGUiBPRDgAnnta41TQwMDAwIG5pbmUtc3RhZ2UtcHJlZml4LWF1ZGl0LXNlZWQ3MAB879Om5ulOyXm1XglQfjMrMLjChDQwMDAwIG5pbmUtdGVybS1kZWNvZGVyLW5vcm1hbC1mb3JtLXNlZWQ0MgAev5OCAQirCbIQdcZj25BtEUzDMzQwMDAwIG5pbmUtdGVybS1vdXRzaWRlLWNvbHNwYWNlAL5cIRr+zKy/IKaXuIUtxUS+21B5NDAwMDAgbm8tcGhhc2Utbm9ubGluZWFyLWJvdW5kYXJ5AMSBq9+cIW1IM7wJ6obDJDY6BWU5NDAwMDAgbm9uY29tbXV0YXRpdmUtdHdvLXJvdy10YXJpZmYAQFjEUvh4J6tSlxXCkiL916SCgIc0MDAwMCBub25jb21tdXRpbmctcXVvdGllbnQtcmVzdG9yYXRpb24AfbPBdEg+cWOI8bolwfYclLuzprg0MDAwMCBub25mYW5vLWludm9pY2UtZmxvb3IAYNcEpQNT22pvS1OwIp6OFVYJPQ00MDAwMCBub25saW5lYXItY3V0LWV4aGF1c3RpdmUtYXVkaXQAvqNvb55Lpbdut/i9WZoApODHqGE0MDAwMCBub25saW5lYXItZnJhbWUtY3V0LWJvdW5kAInvvA8NkRzALRCFmkltRvpu1AbrNDAwMDAgbm9ubGluZWFyLW1vbm9taWFsLWNvbnRyb2wtY2VpbGluZwBtYXjiki1DY1vD4DCbAN52PTZymjQwMDAwIG5vbnVuaXQtc2lnbmVkLWNvbm5lY3Rvci1yaWdpZGl0eQDmtXdsYPBFoUq2E/zrDLcc5EgVRDQwMDAwIG5vcm02LWNvbnN0cnVjdGl2ZS1mZWF0dXJlLWV2YWx1YXRpb24A85fycuXfjhLlweyqqnKb7tUFBWE0MDAwMCBub3JtNi1keWFkaWMtY29tcHJlc3Npb24AOs7xvVreU367XxO1H5TqskmSH100MDAwMCBub3JtNi1keWFkaWMtZGVjb2RlcgBUZqVokVGr7/41HHC8ScqnuA9MnDQwMDAwIG5vcm02LXN0cmVhbWluZy1mZWF0dXJlcwCdURpVNXzyi8DSTCaMtD12fWqxGDQwMDAwIG5vcm1hbC1mb3JtLWV4aGF1c3RpdmUtYXVkaXQANmpFf6rYfeMLSKOjZeGpcCM2agw0MDAwMCBub3JtYWw0NS1hLXJldGltaW5nLWJvdW5kYXJ5AFUE3Ueo9K4y1i46Tp7PeB8KnA7BNDAwMDAgbm9ybWFsNDUtam9pbnQtcmVzdG9yYXRpb24AFFJjfSg/WeUwCeS8+VplMKPastE0MDAwMCBub3JtYWw0NS1vd25lci1jb3N0LWJyaWRnZQDArZvamqDEdqbbtqBTnHT1B1/ggjQwMDAwIG51bGxzcGFjZS1jb21wbGV0ZW5lc3MtZ3VhcmQAI1K0s84byOIjWZ1wi/1QKc6xyRA0MDAwMCBvYnNlcnZhYmxlLWNvbm5lY3Rvci1yZXBhaXIAJ0UUWFAzo4c4Q6/17Aoa+6xE5Y80MDAwMCBvYnNlcnZlci1zYWZlLXJlc3RvcmF0aW9uAGKraXl6Jat72whJznrmQM79WhYfNDAwMDAgb2RkLWN5Y2xlLWZpdC1yaWdpZGl0eQBGmDyaPvHAfMp0Z7Kgvd/65gQrVTQwMDAwIG9kZC1jeWNsZS1xdWVyeS1jYXBhY2l0eQColZZMV1VLq62mqlRBa1i75QJOJjQwMDAwIG9kZC1kaWhlZHJhbC1qb2ludC10YXJpZmYAWD846q+TZMQmCFEgeGKe9ELBDlg0MDAwMCBvZGQtZml2ZS1jaGFyMi1taW5yYW5rABrDLH9uwTVC+NZ1OHk/VhQNmSHcNDAwMDAgb2RkLWtlcm5lbC1iaXQtbWFyZ2luAC6qWTf4YbtXOzWqAZNn4C+NgKktNDAwMDAgb2RkLWtlcm5lbC1iaXQtdGFyaWZmACAcuhTcMXRMak1rb7cYbz6kH4t+NDAwMDAgb2RkLWtlcm5lbC1jb2VmZi1iaXQtdGFyaWZmAPEjyiZMPazi+ubIboUtyVms0mg2NDAwMDAgb2RkLWtlcm5lbC1xdWVyeS1wYWlyAMQx3MF8KPluaBgjs6CxsFY3AXCpNDAwMDAgb2RkLXBhaXItYmxvY2stcmFuawC2hESWDJTs6uIzLaN7iGzTcwp64TQwMDAwIG9kZC1wcmltZS1kaWhlZHJhbC1pbnZlcnNlLXJvdGF0aW9uAMonSyUxsgOWOKMngGLw06XKYapZNDAwMDAgb2RkLXVuaXQtdHJpYW5ndWxhci1yYW5rAAiWIvaEz+KSXuW5W0abjq+xUeh+NDAwMDAgb21pc3Npb24tbGFuZXMtcHJvZHVjdGlvbgDPGLQ6U4fnZbleUFp3lPdmEzZUKDQwMDAwIG9taXNzaW9uLWxhbmVzLXNlZWQ5MgDD/XVYoACLTI9r+EjGVFm4bBGU1zQwMDAwIG9uZS1jb3NldC1vcmJpdC1idWRnZXQAaGm8kS/9aa0TDITO1J9VLrX6SsM0MDAwMCBvbmUtZmFjdG9yLW9mLXQAjMyKqPl/5/TiDrojJTUc4qPhE5k0MDAwMCBvbmUtZnVzaW9uLWNvbXBpbGVyLXRhcmdldACNta2Zbq6T0Kh2/QBtix7MHXTchTQwMDAwIG9uZS1xdWVyeS1lbmRwb2ludC1zY2FuAHe1HOqqsnwNEZ+/Qv3jAbh6y76YNDAwMDAgb25lLXNpZGVkLWRlY29kZXJzLWFsbC1tALCiaKXYUImFI0/+Hdt6LAtPZ5dkNDAwMDAgb25lLXNpZGVkLWV4Y2Vzcy10aHJlZQANqBxC1VQJtIhkNwY8YYg+SUW9mjQwMDAwIG9uZS1zaWRlZC1sYW5kc2NhcGUtYXVkaXQAWQGO9hvEJXp0TTEI1SjQ9NzmPlE0MDAwMCBvbmUtc2lkZWQtcGFkZGluZy1hdWRpdADjH6dAsTIwci+HOK6iz8YBV+ghQzQwMDAwIG9uZS1zaWRlZC1zaXgtbXVsdGlzZXRzAAqLyV6cAJQF3yuqFsbqlTqqAGpENDAwMDAgb25lLXRlcm1pbmFsLWgzLXByZWZpeACFOiWDUjYj5QGkodMZa1/DfK/JoDQwMDAwIG9uZXdheS1hbGwtZmllbGQtY2xvc2VkLWZvcm0Agj32A05aZjJCEcpqGJtESzRfPXc0MDAwMCBvbmV3YXktY29yYW5rb25lLWhlYWRlci1sYXcABMpycPXSEMawe5jGudlyN4t2LVc0MDAwMCBvbmV3YXktcGFpci1jb3JyZWxhdGlvbgAM8xgVkQdjI1lSZO9wSMWFPCtkhDQwMDAwIG9wdGltYWwtZGlydHktcHJlcGFyYXRpb24AAOq56eN73cf0QQVy/6A1Ia4U3gw0MDAwMCBvcHRpbWFsLW5ldW1hbm4tcXVhZHJhdGljLXRhaWwAElNywP6fzOh9SzWBATS0txz9pTg0MDAwMCBvcHRpbWFsLXNlY29uZC1jYWxsZWVzAK0tWcaxsuvsz4RkKJQMNOLdHA2SNDAwMDAgb3JiaXQtY2xvc2VkLWNhbGwtYm91bmQAsRqCrIcFM9LX2tdOJURyCQ8nIys0MDAwMCBvcmRlcjIxLW5vcm1hbC10YXJpZmYAz7xyqz4gt6+tdlNr8MpvS5BdM4Q0MDAwMCBvcmRlcmVkLWNlbnRyZS1pbnRlcmZhY2VzADCxlEHY/3rpEmcpMKTtBDQEFpA+NDAwMDAgb3JkZXJlZC1kaXJ0eS1lY2hvAKaUX8gQ2tVOh95B0nV5wMwLuaL4NDAwMDAgb3JkaW5hcnktb25lLWZhY3Rvci1zdG9jawARPi7S7K7Mi6daRmkjoKWeEp5eeDQwMDAwIG9yZGluYXJ5LXJhdGUtZ2FwANremfUVicBQXVpIvzq/UCW5BbL1NDAwMDAgb3JkaW5hcnktcmF0ZS10aHJlc2hvbGQAjPRgsyKdN5LR53kIl8EswobBdmM0MDAwMCBvcmRpbmFyeS1zZWxlY3Rvci1wcmltZS1jbGFzc2VzAGHfU1B28AQK3i0muF7A01rDSOEiNDAwMDAgb3JpZ2luYWwtY2xlYW4tc291cmNlLWludGVyZmFjZQBk0cNdiHksoTWpRqD3w8I39gpz/zQwMDAwIG9yaWdpbmFsLXBhaXJlZC1nYXAAqam6SOJmC38IZh5KfzBXcR5X/ng0MDAwMCBvcnRob2dvbmFsLWNoYWluLWhlYWRlci1sYXcALnlmYHrNx+xJGoe0fGy0tszep6E0MDAwMCBvcnRob2dvbmFsLWNvdmVyLWludm9pY2UtYXVkaXQAFruq3gl6WF4XKNNOXcGVxLMZY5c0MDAwMCBvcnRob2dvbmFsLWludmVyc2Utd2l0bmVzcwBu4Wax3rnEh4Vl6vokJCxZNIHueTQwMDAwIG9ydGhvZ29uYWwtcGhhc2UtZGVmZWN0LXNwZWN0cnVtAGtDTQDkzNmtytt9gSo8eXIX6LzvNDAwMDAgb3J0aG9nb25hbC13aXRuZXNzLXByZWNpc2lvbgAQNTaFSpUc4oLtYSS0+iyxdILCXjQwMDAwIG91dGVyLWJlcm5zdGVpbi1jZXJ0aWZpY2F0ZQAugiy96GTQCTZ32RYGfXAf9BDiNzQwMDAwIG91dGVyMjI5OC11bmlmb3JtLWRvbWFpbgCXfEqhgg/nCHJtqeaqG4IRver1rjQwMDAwIG91dHB1dC1ib3Jyb3dlZC1mYW5vdXQAM4z0371jkn/KLhvzqbdveMPqxEs0MDAwMCBvdXRwdXQtc2lnbi1yZXN0b3JhdGlvbi1zZWVkNTEA2kG23ziSuXunsUwL06YEjgvc52E0MDAwMCBvdmVyY29tcGxldGUtYW5kLXJlYWxpc2F0aW9uLWZsb29ycwD/C1RTJjJtOZ9Mtz6MdWPuOBXQATQwMDAwIG92ZXJjb21wbGV0ZS1yYW5rLWludGVyZmFjZQBOLpErW3fBXmLeX5fIsRf2agI/hDQwMDAwIG92ZXJsYXAtYmF0Y2hpbmctaW5kZXBlbmRlbnQtYXVkaXQAUGiWkB8hXmKB50StWwRoZHhg6As0MDAwMCBvdmVybGFwLWRpc2N1c3Npb24tYmF0Y2hpbmcAD0MDWDGL5UfBy6PZceOI9oeVgJ80MDAwMCBvdmVybGFwLXBhdGgtaW5kZXgAqsVhSFvoeYqAOpN1dnWbLdYkdTc0MDAwMCBvdmVybGFwcGluZy13aW5kb3ctYmlsbACShbDEvgduF/hmeanOcctDpqSNyTQwMDAwIG92ZXJuaWdodC1wci1yZXZpZXctMjAyNjEwMDkA6x71iARVU8lll1u+aaiAfBD+mMQ0MDAwMCBvd25lZC1jZW50cmUtd2lyZS1mbG9vcgA78soUO8VZYOX6mSHczZihT4I8QzQwMDAwIG93bmVkLWtlcm5lbC1zaGFyZWQtbWFwAOOsxohv98K3+9DeeohPkG8SC3D0NDAwMDAgb3duZWQta2VybmVsLXdlYWstZHVhbGl0eQCmKVJvDMzE8VCsWdvukJHWLnUvbzQwMDAwIG93bmVkLXF1ZXJ5LXBvcnRzAL3A6eLBlF5B1mCvfSXtPXz+2MJWNDAwMDAgb3duZWQtemVyby1tYXNzLXNjcmVlbgBG5DkXGbc5+Vmjd1tB/4CprnP7HTQwMDAwIG93bmVkLXplcm8tbmF0aXZlLWRhZwDYldhCyvH1cjBqZnX9aLG8e/aOCjQwMDAwIG93bmVyLWJvdW5kYXJ5LWF1ZGl0AGnKKmQsPKl+oVali0Lz6nU/TdTTNDAwMDAgb3duZXItZm9vdHByaW50LWJpdHNldHMA0FL/ZM1YT/U9aizYhOLakR+N9jI0MDAwMCBvd25lci1mb290cHJpbnQtY3Jvc3NjaGVjawBERiPoaUWo8oCOulYUaRwUq2xamDQwMDAwIG93bmVyLXByb2ZpbGUtdW5pZm9ybQDQH6mJBlBCCUecUMzd0h2OgzU8SjQwMDAwIG93bmVyLXJlcGxheS13b3Jrc3BhY2VzAB8zpbUl5ImfzLiH8YTpRy8BthY1NDAwMDAgb3duZXItc2xpY2UtbGVkZ2VyAHUVI4WOChnUg9eeSCLkNlTE1jxqNDAwMDAgb3duZXIteDItYWNjZXB0YW5jZS1ib3VuZGFyeQBuC3CN/N93zSLgarNAkZc0k3M9ljQwMDAwIHAxMC1maXZlLW5ldy1rZXJuZWxzAATre7tEebyymprMRmh6/me1ovPNNDAwMDAgcDEwNC1hYnNlbnQtaGVhZC1mbGFnMi1hdWRpdAAcpiEifL3mLxEDJRrVr4FozLS5DzQwMDAwIHAxMDQtYWRhcHRpdmUtcm91bmRpbmctY29sbGlzaW9uAHY1c/U1EP/x9nRKMWdcbm0d+8zWNDAwMDAgcDEwNC1hZmZpbmUtY29tcGxlbWVudC1sZWFuAKAd+raM72+xTvA0AHSIiGJJ3U8FNDAwMDAgcDEwNC1hbGwtcGFpci1jb25zdW1lci1idWRnZXQAiMsKVh7bgRGRluZxCl6xmJlemNI0MDAwMCBwMTA0LWFsbC1wcm9qZWN0aW9ucy1zZWVkNjcAB3Ui21ywggEQLo4dlogd2IPEYy00MDAwMCBwMTA0LWFsdGVybmF0aW5nLWN5Y2xlLW5laWdoYm9yaG9vZADSmBCLv1AuNc0/+nS7Wexek+yggDQwMDAwIHAxMDQtYXJyaXZhbC1zaGFwZS1hdWRpdABgQbWCTJ2zpMNRR4E9qQWUD8cCsTQwMDAwIHAxMDQtYXN5bmNocm9ub3VzLWNhcnJpZXItYm91bmQA0jqonJwXntoZMRpjDfVuS95t6880MDAwMCBwMTA0LWF4aXMwLWVuY29kZXItZmliZXIAkTqGXex29LsehI+cI1rKls0cvhw0MDAwMCBwMTA0LWJsb2Nrd2lzZS1saWZ0aW5nAKD4BB1SjZZ1Pl4FWGAGPVB3NJBtNDAwMDAgcDEwNC1jYWxsZXItZmVhc2liaWxpdHkAQZ13MTOdsQLvLpxSY7b0Aud1bDs0MDAwMCBwMTA0LWNhcnJpZXItY2FwdHVyZS1vcmRlcgAKbD+JFbYCW07OF0wwWp/BGhyShTQwMDAwIHAxMDQtY2hhbm5lbC1jb3JyZWN0aW9uLWFic2VudADa9Tb11mqJzYUSLD5M7fIVKX5IKjQwMDAwIHAxMDQtY2hhbm5lbC10b3VjaC1yZXN0b3JhdGlvbi1hdWRpdADlVjlkEZqQQm/fLpvd0/Vxntwm4jQwMDAwIHAxMDQtY2xlYW4tZHVhbC1wcmVjaXNpb24Az/uNiLxCD8HNir3gdRFoWCS38TA0MDAwMCBwMTA0LWNsaWZmb3JkLWV4YWN0bmVzcwBuV6Tg52PDFpitWf9DSH6OeKC68jQwMDAwIHAxMDQtY29hbGVzY2VkLXByaXZhdGUtcmV1c2UtYXVkaXQA81IDtbyg7h/0BIPmlGrbaX4CiDA0MDAwMCBwMTA0LWNvYWxlc2NlZC1wcml2YXRlLXJldXNlAOpYA4glyChsR6a9kZICrvSapUyhNDAwMDAgcDEwNC1jb2hlcmVudC1zdXBwb3J0LXdpdG5lc3MANYLDusY2cEtS0EuKD552WfMLkZQ0MDAwMCBwMTA0LWNvbW11dGF0aW9uLWN1dAB0CvbYBvPWvtPl4Mvi1lkwfycYLzQwMDAwIHAxMDQtY29tcGxlbWVudGFyeS1kdWFsACozNZ/kfI6ucns3/2pAc1bpvgmTNDAwMDAgcDEwNC1jb25lLWN1dC1pbmRlcGVuZGVudC1jaGVjawC6hyUPYZJazNf1BD0tiD6ED0JdqTQwMDAwIHAxMDQtY29uZS1jdXQAreuPoMaq5x2ULvJUksuAWXM2f100MDAwMCBwMTA0LWNvbnN1bWVyLWJ1ZGdldC1hdWRpdABYQ1V4kT9HeJZYZn6x9qtrz/kaATQwMDAwIHAxMDQtY29uc3VtZXItdGhyZXNob2xkLWF1ZGl0ANHpitxVupAbhCwoljt9U+0+ManvNDAwMDAgcDEwNC1jb3B5LXJldGlyZW1lbnQAPRP3ZOaWGXyLFm63853ptzhmdjk0MDAwMCBwMTA0LWNvcnJlbGF0ZWQtZW50cmFuY2UAt1GbgwIck190WFocewBC9pRa0Ok0MDAwMCBwMTA0LWNvcnJlbGF0ZWQtZXhhY3QtbW9kdWxlAEzvKsV4Hb4eJJuqiklhBPfOlJ4MNDAwMDAgcDEwNC1jb3JyZWxhdGVkLWZ1bGwtcHJlZml4AHTtRm4IVyUwQPkSgv+USL7D50BJNDAwMDAgcDEwNC1jb3VwbGVkLWxpZnRpbmctcmVzaWR1ZXMA4QwB/FHUZ1K3LrrSAv9PG08lBEg0MDAwMCBwMTA0LWNvdXBsZWQtcHJvZmlsZS1idWRnZXQAX7bS7BZYZzB9D/zy/ethEdJtfhs0MDAwMCBwMTA0LWNvdmVyYWdlLWdhdGUAE7h8SQ7YTGa0e4O6pXdtwQSNcXQ0MDAwMCBwMTA0LWNyb3NzLWdyb3VwLWNvbGxlY3RvcnMAG2FBGdwLhUhRC33SqDNm0AOgGhY0MDAwMCBwMTA0LWNyb3NzLWdyb3VwLW5hdGl2ZQAV2KUPNaUh3U9SQMujl/iudZbZkTQwMDAwIHAxMDQtY3Jvc3NpbmctcHJvZmlsZS1zY3JlZW4A45piupmw3FdhSLzhZgPvyI0Y26E0MDAwMCBwMTA0LWN1dC1tYXhmbG93LWF1ZGl0AEH92pygrOv90Agovwf5JFLVu6KvNDAwMDAgcDEwNC1kZWZlY3Qtb3V0cHV0LWNoYW5uZWxzAHYwuBZ0uL+mIYdNX2zBp0DDASgPNDAwMDAgcDEwNC1kZWxheWVkLXByZWNpc2lvbgBQDfbN7MaSDKwst6tgiLTQzjOGnTQwMDAwIHAxMDQtZGVsYXllZC1xdWVyeS1zaWRlAJocrbHqkcGkXNmGTabYDgYNPf8qNDAwMDAgcDEwNC1kaXJ0eS1jYXRhbHlzaXMAczrlWf1jAnvV272l4YM8OzdAm280MDAwMCBwMTA0LWR1YWwtYWRkLXJldGltaW5nAIgbSK8JDWR2fRKGr8yJUv75tTFUNDAwMDAgcDEwNC1kdWFsLWJvdW5kYXJ5LWNvbnRyYWN0cwAilDULmK9zkSue8HYCj+kGWOoOMDQwMDAwIHAxMDQtZHVhbC1lbmRwb2ludC1mdXNpb24AzZKNXJYlNC3foIzs7TuSbbQxNQg0MDAwMCBwMTA0LWR1YWwtcHJlY2lzaW9uAKWwCWW87UlMCxbm2yWqaR3GSgJKNDAwMDAgcDEwNC1lbmNvZGVkLWJvdW5kYXJ5AMTKJY/cuoWM+5CiIQ2C5kdgufjcNDAwMDAgcDEwNC1lbmNvZGVkLWV4aXQtY29uc3VtZXIA6wrHtZENjMDTsO2aNrfTgLCuGnk0MDAwMCBwMTA0LWVuZHBvaW50LWNvbXBsZXRpb24tZmxvdwBL+EZfND2xbUflQy8aIqmK3dG/eDQwMDAwIHAxMDQtZW5kcG9pbnQtZ2VvbWV0cmljLWJ1ZGdldAC8W5vF1MzRSgC2749TkWeOoMbWozQwMDAwIHAxMDQtZW5kcG9pbnQtcmFuay1sZWFuAM9ClAnceNke7IOFEzUAvYqNGMt+NDAwMDAgcDEwNC1lbmRwb2ludC1zYXR1cmF0aW9uAB9rAXaNoFCsQ46bq4HOXvSNKza0NDAwMDAgcDEwNC1lbmRwb2ludC1zcGFuLWF1ZGl0AAyi4qICAoclPKmsOVdHos1DoFEUNDAwMDAgcDEwNC1lbmRwb2ludC1zdXBwb3J0LWNhcGFjaXR5ALquFhrV9tdgrGs2Vs7cD8MdRrjeNDAwMDAgcDEwNC1leHRlcm5hbC1wb3J0LWNsb3N1cmUAXoE01MtAw7Y0l0p/GUyaOMm9l1k0MDAwMCBwMTA0LWZpYmVyLXRhZy1vcmllbnRhdGlvbi1jaGVjawBTs9yzwZuxAPgAK96oGiUutjVKJDQwMDAwIHAxMDQtZmliZXItdGFnLXNlYW0AfjAVhs4kyNw4UOc1+OwQHdR8pWU0MDAwMCBwMTA0LWZpZnRoLXRyYW5zZmVyAEXRjW0Ia7GSgeRERo1ft83wp1g5NDAwMDAgcDEwNC1maXJzdC1jb3B5LWRyb3AAVBQwFLf81G2uX4pofmNxEuvLUXg0MDAwMCBwMTA0LWZpcnN0LXRyYW5zZmVyAHxtYItoSxbeLI8VsxRGyEE54UDeNDAwMDAgcDEwNC1maXhlZC1jb3Zlci1jdXQtcmV2aWV3AEEhcBAKev1u4fmRPJK+92KewlFuNDAwMDAgcDEwNC1maXhlZC1tYXRjaGluZy1mbGFnLWNvbnNpc3RlbmN5AOgAVMw93SQS3hdToRm4V9MINaCpNDAwMDAgcDEwNC1mbGFnLWNoYW5uZWwtc2NoZWR1bGUASbhmx3wlQjXZ96JYGFQ52XJn/KQ0MDAwMCBwMTA0LWZsYWctZ3JhbS1ib3VuZGFyeQCoWoCHNdSCIjut+KOkwxS1D2BOczQwMDAwIHAxMDQtZmxhZy1pbmZvcm1hdGlvbi1mbG93AMT/bYZq/rI2ooTOYf2DFmfJsbg6NDAwMDAgcDEwNC1mbGFnLXJlbGF5AALV/ugHICOrwLyDtq5uCIuMs8FnNDAwMDAgcDEwNC1mbGFnMC1yZWxheQC+bBiUqflkJ6NSnm9F0zje1Z6Z4TQwMDAwIHAxMDQtZmxhZzAtdGFpbC1vd25lci1ob3N0AIcQyT8vQEWaR5hFa0IorhLWFslFNDAwMDAgcDEwNC1mbGFnMS1oZWFkLXN0ZXAtcmVwYWlyAGlwPLdqdOFQiQw5FHDHWT2V03XpNDAwMDAgcDEwNC1mbGFnMS1zaWRlLWNvcnJlY3Rpb24tYmlsbAA97dCQPSPdoa7jEvGCxMMmtaX4nDQwMDAwIHAxMDQtZmxhZzQzLWhlYWQtc3RlcC1yZXBhaXIApyF7Y4SFsJmz2ZJg7LWGcDgQt+g0MDAwMCBwMTA0LWZsYWc0My1zaWRlLWNvcnJlY3Rpb24tYmlsbAA3NHCizwEOu5g5OsTRgwrcUTctXTQwMDAwIHAxMDQtZmxhZzktaGVhZC1zdGVwLXJlcGFpcgC3sW8I6ig8J3KVYK8ytmcgFjVjsDQwMDAwIHAxMDQtZmxhZzktc2lkZS1jb3JyZWN0aW9uLWJpbGwAy8xjLdgvF0gVwTW58ftYeyvduEk0MDAwMCBwMTA0LWZvdXJ0aC10cmFuc2ZlcgBGWOi2Nax/T4PTzPbBrXbKL/u6KTQwMDAwIHAxMDQtZnVsbC1jaGFydC1qb2ludAC+IqG++0LT+4ffUFGNigCp077HLjQwMDAwIHAxMDQtZnVzZWQtbGF0ZS1jbGVhbnVwAHbOoA3E3CeyXcu/WOtYp0I4AwGmNDAwMDAgcDEwNC1mdXNpb24tY29zdC1oZWFkcm9vbQAeYa/GUTTPjvKp9pzai3v/x2tdxDQwMDAwIHAxMDQtaGVscGVyLWVuZHBvaW50LXN0b3BzAIalOBgB2lJLoVuqQM+SNoiGIKqDNDAwMDAgcDEwNC1ob3N0aW5nLXRocmVzaG9sZAAYRdGgl/ETpTHRfyS7tlBghLORkTQwMDAwIHAxMDQtaW5kZXgtdGVuc29yLWJyaWRnZQBTgkjmnl1Y50flAu926ot5PAVyGjQwMDAwIHAxMDQtaW5pdGlhbC1yZWFkZXJzANT3BxjPzSFQw7iBj3IVBjn9Wt1pNDAwMDAgcDEwNC1pbnBsYWNlLWVudHJhbmNlADKutnKTNkm/temb4tvlqNrb0xlSNDAwMDAgcDEwNC1pbnRlcmxlYXZlZC1zZWFyY2gAK4VWTo19hnTzVpp6BIhUdAv3qhg0MDAwMCBwMTA0LWludGVybmFsLWdyaWQtY29sbGVjdG9yAFv6nxrp4aAmwVnsQlNKxH3PQAGQNDAwMDAgcDEwNC1pbnRyaW5zaWMtcGh5c2ljYWwtZHVhbAAFuR/lf5iZAX68H+HloiTzPoDPfDQwMDAwIHAxMDQtaW52YXJpYW50LWxpZnRpbmctbGF0dGljZQDojf+zbAFgyieM/RrEowl0WAPTSjQwMDAwIHAxMDQtaW52ZXJzZS1yZXNpZHVlLXBlcm11dGF0aW9uAJmsPy8J9SHtYqsEqyGiE6NOdqhDNDAwMDAgcDEwNC1qb2ludC1jb21wZW5zYXRpb24AUyK01N/k+EsIJD2/AXoNhfJX7Ys0MDAwMCBwMTA0LWpvaW50LWVuZHBvaW50LW9ic3RydWN0aW9uABlu6B5x6kJxOlr+lsg7DCeuA/KxNDAwMDAgcDEwNC1qb2ludC1wcmVmaXgtZ3JpZACJEwijW4uZ5hLdI+yuy21T/GK3OzQwMDAwIHAxMDQtam9pbnQtdW5pdC1mbGFncwCyUlpiUf2QT5KieqIDqrQCZt5N9TQwMDAwIHAxMDQtbGF0ZS15Mi1hY3F1aXNpdGlvbi1zMzQAEKLMrODVITA60jGm0b0DHNtlk800MDAwMCBwMTA0LWxpZnRpbmctcmVzaWR1ZS1yZWR1Y3Rpb24A/rjkHF4MKzR7tXC1CorhGziO5Tc0MDAwMCBwMTA0LWxpdGVyYWwtaGVscGVyLWdhdGUABLcmgIYMG+MguWWwOMybSwWz5100MDAwMCBwMTA0LWxpdGVyYWwtbWlzc2luZwBCiv/OLuSawpDJQiwqo19X0qMJgDQwMDAwIHAxMDQtbGl0ZXJhbC1zbG90LWRlZmVjdACSkqOJBy9lmvR0pD1x/AMzxq16GDQwMDAwIHAxMDQtbGl2ZS1oZWxwZXItcmVhZHMA5YY231zQ6Hjdaymjv2Qa+JmS+Cg0MDAwMCBwMTA0LW1heGltYWwtdHJhbnNsYXRpb24tbGF0dGljZQANNbG/ueRTQPgNcjeKnQzbsc8fMTQwMDAwIHAxMDQtbWVtb3J5LXJlbGF4YXRpb24tc291bmRuZXNzAHkEJ+kO2O1p+Sn78tVNnKMBFKkHNDAwMDAgcDEwNC1taW5pbXVtLXNoYXJlZC1zcGFjZQBm5oZQAuC5PNcEijIeuIW2C3NvVjQwMDAwIHAxMDQtbWlzc2luZy1wYWlyALk099LgNTgs71Yqd4HH7R0WEWuONDAwMDAgcDEwNC1taXhlZC1ncmlkLWNvbGxlY3RvcgCgbhJBAEELcv7FxuLO8RXYT80NcDQwMDAwIHAxMDQtbW9kdWxhci1yZXNpZHVlLXJlZHVjZXIAW4d7mHpYqwvRTlBtlOu2S86EOlc0MDAwMCBwMTA0LW1vbm90b25lLXJlbGF5LWZsb29yLWF1ZGl0AKdkj7ZnvRaHIp4nwvB741CCj7p7NDAwMDAgcDEwNC1tb3ZlZC1oZWxwZXItY3V0ADvyvvdoQiPTUA1W7e8G4QJtjLy3NDAwMDAgcDEwNC1uYXRpdmUtY2hhbm5lbAAu7wSX4gtSti32+j7wGm5NicxEAjQwMDAwIHAxMDQtbmF0aXZlLWNvdmFyaWFuY2UAVF44wJGZd/Uu1Dro89JRrXey6qk0MDAwMCBwMTA0LW5hdGl2ZS1tYXR2ZWMtY2FjaGUAoqHkiVJcFtuu1viF69dpCG8SdXk0MDAwMCBwMTA0LW5hdGl2ZS1wcmVjaXNpb24A6mf16b4GN+oA976SIG6N7uqEi8c0MDAwMCBwMTA0LW5lc3RlZC1yZWZpbmVtZW50LWN1dACXtUVgiHXWsd0wy8+ZIOXvucWKLjQwMDAwIHAxMDQtbmV3dG9uLWludGVyZmFjZXMAsZGTVlxBoGB9BpdXy4xzGo4iQP00MDAwMCBwMTA0LW5ld3Rvbi1zb3VyY2UtY29udHJhY3QAHquFwVVMIs77ZvIGBPeZ468Ygig0MDAwMCBwMTA0LW5vLXJlbGF5LWNvdmVyLWF1ZGl0ADV9qpmI+bCZietinfmI9rtYrnpaNDAwMDAgcDEwNC1udWxscGFpci1jb21wZW5zYXRlZC1zaGVhci1zZWVkMzE4YmQ1AAwQsBEGxX33dsxwBGaP8pRduB4RNDAwMDAgcDEwNC1vYnN0cnVjdGlvbi1pbmRleACzongbcYqyepJol3CYWGgQMgIL+TQwMDAwIHAxMDQtb21pdHRlZC1jb21wbGV0aW9uAC3khQUqE3iuLwyp1z1KT0HqIvhTNDAwMDAgcDEwNC1vbWl0dGVkLWZyYW1lLWFkYXB0ZXJzAC40Mb6G4qgcKkd56gSAqdoPQvgrNDAwMDAgcDEwNC1vbWl0dGVkLXNpZGUtY29uc3VtZXIAhFu3pvPy5d6kvVagS7Zk0uXty5g0MDAwMCBwMTA0LW9wZXJhbmQtd2VpZ2h0ZWQtZmVlZGJhY2sAn+G1Ib+NgTIxZ+pU1G4XRsV4x8M0MDAwMCBwMTA0LW93bmVkLWNvbGxlY3Rvci1kdWFsAERS3C6zrHL0z9OmIM912H2YRL0JNDAwMDAgcDEwNC1wZXJzaXN0ZW50LWR1YWwAXz2/JNBXIGhqfyi7bOk2vaH6UDU0MDAwMCBwMTA0LXBoYXNlLXVuaWZvcm0tZ2F1Z2UAVt4s4j6+QAjRurHdMiLVLcSoRJM0MDAwMCBwMTA0LXBoeXNpY2FsLWNvcnJlY3RlZC1kdWFsAP+s24e3aefS0VJ65LWqoFmVn2jGNDAwMDAgcDEwNC1waHlzaWNhbC1kdWFsLWdyaWQA8gMMVjOjQnYgJoBpLfMQfuxNESQ0MDAwMCBwMTA0LXBsYW5lLXRyYW5zZmVyAMMDO+odBZfajvRi2al4EPGwYywrNDAwMDAgcDEwNC1wb2ludHdpc2UtZGVmZWN0LWNvbnN1bWVyAAOP1aqp6qCWdRG4CiMeMxScz9IoNDAwMDAgcDEwNC1wb29sZWQtY29sbGVjdG9ycwDITKxl5IV6HeAZniO+jA54psgsaDQwMDAwIHAxMDQtcG9vbGVkLWN1dC1pbmRlcGVuZGVudADxoB1gfuh/25s0//SJLiSkl/XAXjQwMDAwIHAxMDQtcG9vbGVkLW5hdGl2ZQC8qU/HVdS8dehhYUEUjMjC/vlxuDQwMDAwIHAxMDQtcG9vbGVkLW9uZWhvcC1hbmQtcGh5c2ljYWwtY29uc3VtZXItYmlsbAAG8cnZe1I3J4xiSl4fdcjU6yfLjjQwMDAwIHAxMDQtcG9ydC1jaGFydC1wYWlyALuw0FtMBo+vNnh2QokiedZKv/4yNDAwMDAgcDEwNC1wcmVmaXgtbWlucmFuawBZd3ILHhY0eWktaB9nftUjb2762jQwMDAwIHAxMDQtcHJlZml4LXRhaWwtaW5kZXBlbmRlbnQtYXVkaXQAXfDqKppGpmMSR1Kz8Bga/3AQYQk0MDAwMCBwMTA0LXByZWZpeC10YWlsAOJpupogYZ9qkmBmUMCq9PnV3j7vNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtZmxhZzAtYXVkaXQAlqXXOn3a1i+suzDswbitKOCO3mo0MDAwMCBwMTA0LXByZXNlbnQtaGVhZC1mbGFnMS1hdWRpdAC9dvHuHUz5vBcwIGVmuCiKG4L6pzQwMDAwIHAxMDQtcHJlc2VudC1oZWFkLWZsYWc0My1hdWRpdADkXcbVP9jKS2tcMN2CNj+tXflRRzQwMDAwIHAxMDQtcHJlc2VudC1oZWFkLWZsYWc5LWF1ZGl0AIQZfqwdrGgXbOvIhW9aAPX9Bu+QNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtc2lkZS1jb3JyZWN0aW9uLWZvcmNpbmctY2Vuc3VzAOn614sasF4GfEFrr+KD1SVbsdAzNDAwMDAgcDEwNC1wcmVzZW50LWhlYWQtc2lkZS1jb3JyZWN0aW9uLWZ1bGwtcm93LWNlbnN1cwDWoqh++alPw4Xe/No2wv4SQBeaZzQwMDAwIHAxMDQtcHJpdmF0ZS1jb2RlLXJlbGF5LWZsb29yAO/Z/EDQcCSs76K1vQhhofttBkC+NDAwMDAgcDEwNC1wcml2YXRlLWRlc2NlbnQtcmV1c2Utc2VlZDkxNWZhOTY5AHgvtdfQfCK4k0UrCdnJ0KUJfeHgNDAwMDAgcDEwNC1wcml2YXRlLW1hY3JvLWR1YWwAF99tGCgJGY6Q8XI73RUhOeEZuEw0MDAwMCBwMTA0LXJlZmluZW1lbnQtcmFuay1idWRnZXQAbTAuOKZYdOwDj8ptxnLdGPi8C4M0MDAwMCBwMTA0LXJlbGF5LWNocm9ub2xvZ3ktYXVkaXQAIRYAccnm8L5Ab2W+IxlGWYTc/Nc0MDAwMCBwMTA0LXJlbGF5LWNyb3NzaW5nLWNhcGFjaXR5ABRoxZ2B4HE29JdceVLthBRDyXP6NDAwMDAgcDEwNC1yZWxheS1mb3J3YXJkLWVycm9ycwBRQo+GdpYuyXbPr1pGmPmU4ySK9jQwMDAwIHAxMDQtcmVsYXktZ3Jvd3RoAE1jrtFbkmqiaqQs3lj/acWsuBFJNDAwMDAgcDEwNC1yZW1hdGNoZWQtZGVwZW5kZW5jeS1zY3JlZW4Aa8BkvRTSlUZ92FJjZxrVAkerLq80MDAwMCBwMTA0LXJlcXVpcmVkLWNvZWZmaWNpZW50AApmxp/HJpceh7C/n/burwCiNdJrNDAwMDAgcDEwNC1yZXNpZHVhbC1jb25zdW1lcgA+c4k+OwfpRceiCILh6Vbp4S0+9zQwMDAwIHAxMDQtcmVzdG9yZWQtcXVlcnkA2z5GurcmBuMO6sd8m14G4xK4uQc0MDAwMCBwMTA0LXJlc3RyaWN0ZWQtdXBkYXRlLWNvZGVzAMyztUYM0HhGozRsTiunRpU/yTPqNDAwMDAgcDEwNC1yZXRpbWVkLWVycm9yLXJlY292ZXJ5AIHvOeZEznnA/JQS49qdSDYW/ueBNDAwMDAgcDEwNC1yZXRpbWVkLWludGVybmFsLWdyaWQAOkqbff5OQakyc5LZ3NPS/x8XLkY0MDAwMCBwMTA0LXJldHVybi1jb250cmFjdC1tYXRjaACS6veN7eeHAIK5hmKsiUrffBhsYjQwMDAwIHAxMDQtcmV2ZXJzaWJsZS1saWZ0aW5nAKeqjL5Xdktt0OCmhPR7oOrXnU9xNDAwMDAgcDEwNC1yb2xlLWV4Y2hhbmdlLWNhbGxlci1hdWRpdAD7He1sQIMdf/VxnLm6LNpwPJjrzjQwMDAwIHAxMDQtcm9sZS1leGNoYW5nZS1yZXNpZHVlAGMhFNyJVL8l+B7W2CgXIt7raMixNDAwMDAgcDEwNC1yb3VuZGVkLWNvbGxlY3RvcgB3tzm6Aw131RAPczhB1ssGE3ecSDQwMDAwIHAxMDQtcm91bmRlZC1uYXRpdmUtY2hpbGQADStMdgwDPd4fS9skMkboLHyyHpE0MDAwMCBwMTA0LXNoYXJlZC1jaGFydC1yZXRpbWluZwAaMBaMG6P934LbwLi7QKvHGvvrozQwMDAwIHAxMDQtc2lkZS1jb3JyZWN0aW9uLXJhbmstb2JzdHJ1Y3Rpb24AQ0vf8oUCQ8cThkW13fqb9OuEvTg0MDAwMCBwMTA0LXNpZ25lZC1taXhlZC1jYXJyaWVyLWJhbmsAzs5ArQ2H7kc0ZfCbroO7r7UH3UA0MDAwMCBwMTA0LXNpbmdsZS1jdXQtcHJpY2UA18Gp5UPzBFk1R4LM3IJ7IxVazcY0MDAwMCBwMTA0LXNpbmdsZS10YXJnZXQtYWNxdWlzaXRpb24Ah+4NEPKFvX5CEFf8Y9Ab+c3kMsk0MDAwMCBwMTA0LXNvdXJjZS1jaGFydC1zaG9ydGN1dAAzLPbNfrbHaxOEVEhcKj/YCdxphTQwMDAwIHAxMDQtc291cmNlLXByZWNvbmRpdGlvbmluZwDsd5yatSosoCAm/Cpnda18k3UklzQwMDAwIHAxMDQtc3RhZ2V3aXNlLWVudHJhbmNlABOysY32s85R+YdjkXgBlDz8chmANDAwMDAgcDEwNC1zdG9yYWdlLWN1dADWP7mnAdkR/mjNmQ0cSeJJzLYEETQwMDAwIHAxMDQtc3VwcG9ydC1wcm9wYWdhdGlvbi1hdWRpdAD6U5YGhtuRrOUCajRDPmQAuEE+YzQwMDAwIHAxMDQtdGFpbC1mbGFnMC1jb2VmZmljaWVudADbQkhcV6xx/vuBiXRNQs6eRjSRjTQwMDAwIHAxMDQtdGFpbC1mbGFnMC1mcmFtZXMAcPXyCfgnVdSz8kWoef7sqeGjPGQ0MDAwMCBwMTA0LXRhaWwtZmxhZzAtaW50YWtlAOUzCuqKncuZLE2cIdGI1YoxnFzKNDAwMDAgcDEwNC10YWlsLWZsYWcwLWlzb21ldHJ5ACv4RqRcOuNFqncBCArQoBBM2nczNDAwMDAgcDEwNC10YWlsLWZsYWcwLW93bmVyAH4wUASPmDQwFZ+0IETzmSs/k8urNDAwMDAgcDEwNC10YWlsLWZsYWcwLXJlY2lwZQA3txx+u13KYMoMmVT/1M0LQQm8PDQwMDAwIHAxMDQtdGFpbC1mbGFnMC1yZXN0b3JlADtUOlohHeH3KPAr4fg4+G2ycY7mNDAwMDAgcDEwNC10YWlsLWZsYWcwLXNjaGVkdWxlAMKd4U2SLUingr6o1ualXJhfr3PGNDAwMDAgcDEwNC10YWlsLWZsYWcwLXRyYW5zcG9ydADcs9farb+g9J77awYG7iBHrOhLrjQwMDAwIHAxMDQtdGFpbC1zaWRlLWNvcnJlY3Rpb24tc2VlZDc0OTcxNwBR2zZmvnFI5yA2FktYaY9h1wORujQwMDAwIHAxMDQtdGFyZ2V0LW9yZGVyLWRlbGl2ZXJ5AKMLJjAUfvsfkzbDP0Kl6JxFxPVUNDAwMDAgcDEwNC10ZW1wb3JhbC1jdXQtb2JzdHJ1Y3Rpb24A42kvxkNUgDZax28UIk+NRoHsPpk0MDAwMCBwMTA0LXRlbXBvcmFsLXF1ZXJ5LWN1dACck0cQrTcyiTC5svQ0sFnjmYbV0jQwMDAwIHAxMDQtdGVuc29yLWNvZGUAgeGQxj1rc6Sb9ZcHkwsHxwuYsww0MDAwMCBwMTA0LXRlbnNvci1jb2xsZWN0b3ItYXVkaXQACAF4hlYXw77MGYwchpM+SgxVcxg0MDAwMCBwMTA0LXRlbnNvci1jb2xsZWN0b3ItZXhlY3V0aW9uAHOCx0PUMp9SSZHkn/VjKu0JkFolNDAwMDAgcDEwNC10ZW5zb3ItbmV3dG9uAMmcqQ3YnCUYfUvC3mTOEX2qVTcJNDAwMDAgcDEwNC10ZW5zb3Itd29yZC1hdWRpdAAbuGSwe8hEq2iAvJ4kdBcO0LaJVjQwMDAwIHAxMDQtdGVybS1zaGVhci1zZWVkOGJlNwA6Y1SJ0uHgVTo/ePx76d3UJP3hITQwMDAwIHAxMDQtdGVybWluYWwtY29ycmVjdGlvbi1mbG9vcgA6DFtUCiLiuKPf3deK53MCxWWdhjQwMDAwIHAxMDQtdGhpcmQtdGFyZ2V0LWNvbGxlY3Rvci1yYW5rAAIEz7vXLRvpnzpCGHD7ydEgfeb1NDAwMDAgcDEwNC10aGlyZC10cmFuc2ZlcgC6CCO+kH+PLsNgoomJYjbW9xywIDQwMDAwIHAxMDQtdGhyZWUtaGlzdG9yeS10aHJlc2hvbGQAwLBQceygeqZVb338pMFABW6W5rc0MDAwMCBwMTA0LXRyYW5zbGF0ZWQtcHJvZ3Jlc3MAGYPY7h9UeHAg27u1DKq3zTUyNnI0MDAwMCBwMTA0LXR3by1heGlzLWNvbXBhdGliaWxpdHkAXSQ9jGk4+Tbsc1nK1BH47XHUE7U0MDAwMCBwMTA0LXR3by1jb3B5LWRyb3BzAJUu6ULsjwpb4QaKmsfEJesLkzqZNDAwMDAgcDEwNC10d28taGlzdG9yeS1saWZldGltZS1mbG9vcgAA4E693kZLtsH8cH+TbmJXVxeMNTQwMDAwIHAxMDQtdHdvLXRhcmdldC1uYXRpdmUtaW5kZXBlbmRlbnQABTwZLoP4fAZgNZqxs2WQs3H9Zf00MDAwMCBwMTA0LXR3by10YXJnZXQtbmF0aXZlAKukeGGTdppbls2WWNU9PBuYOGGJNDAwMDAgcDEwNC10d28tdGFyZ2V0LXNoYXJpbmcAyHvT3YJzHLOcA5qKJwbgiK52lhY0MDAwMCBwMTA0LXVuaWZvcm0tY29tbXV0YXRpb24tZ2FwACwr6BaUnDRJ9eob/mEK/AgnVNuTNDAwMDAgcDEwNC11bmlmb3JtLWVuY29kaW5nLWdhcADUYqcjq8pYa0u4lOLav3XBOzwNyDQwMDAwIHAxMDQtd2hvbGUtd29yZC1pbnRlcm5hbC1ncmlkAC63IQx5JyJY/yvM9jyV0sPVv/82NDAwMDAgcDEwNC15MC1zb3VyY2UtYWNxdWlzaXRpb24AQxudqdjBwz1MjaDiTB4bDhJItOQ0MDAwMCBwMTA0LXkyLWxhdGUtYWNxdWlzaXRpb24ARDJTOWVyfg/qWtQ4VbxjdT98p4o0MDAwMCBwMTExLWNvcHktcmFuay1jZXJ0aWZpY2F0ZQAfa/fN0UPWsV8L75ZnDylheYKBDDQwMDAwIHAxMTEtZGlydHktYmxvY2s1MDkA5cJbpF39m4doZwyZ/tIh7oGSbf40MDAwMCBwMTExLWludGVybGVhdmVkLW1pbmktbm9kZXMA5XBeeQcgzIjDOAuF8zZ9aEbARRw0MDAwMCBwMTExLW1pbmktbm9kZS1iYXNpcwB2GzlSoX+JYiAyThps5uD5uaDSfzQwMDAwIHAxMTEtbWlucmFuay1wcm9vZi1yZWNvbmNpbGlhdGlvbgDZbYV43EgqAaZ4ReVJuBG+QcLtODQwMDAwIHAxMTEtcGFyc2V2YWwtY29weS1pbnRlcmZhY2UAnPehNyr2JAwl/BtaQUz/esqjhng0MDAwMCBwMTExLXJlY2VpdmVyLWNlbnN1cwDapNM/aikAKvExT2z7henv/2t7VzQwMDAwIHAxMTEtcnVwLWVwb2Nocy1zZWVkOTEAmp4CUtvxPXvaAGlXaE0rnQ+JRBE0MDAwMCBwMTExLXNlbGVjdGVkLXBsYW5lLW1hdGNoaW5nACAkGD8RxFCq1Bn8j/t0317ejg81NDAwMDAgcDExMS10ZW5zb3Itc2hlYXItc2VlZDQ3ACequyEXahQKSzFXbW3yObZFfp7nNDAwMDAgcDExMi1hMi1yYW5rNS1zaG9ydGVuaW5nAIq6avnLPP7oKF0caMX9kXEgg74bNDAwMDAgcDExMi1hMi1yYW5rNi1zaGFycC1zaG9ydGVuaW5nAOLRyC+LsSRYcjoqkfgDVptSVtdRNDAwMDAgcDExMi1hMi1zaW5nbGV0b24tc2hvcnRlbmluZwAJdHy+VDnRJ8G0thAErfOC473RiTQwMDAwIHAxMTItYTItc3VwcG9ydDQ1AHMOv3KBuqA863rOoXjZ/xaFbEKmNDAwMDAgcDExMi1hMy1yYW5rLXNpeC1zaG9ydGVuaW5nANt9MKAIUxZJlnA5czJpmmHhMCioNDAwMDAgcDExMi1hMy1zaXgtZmxhdAAdIF2V3SKdDbo9T2eo3nEJBfHnQDQwMDAwIHAxMTItYTMtc3VwcG9ydDI5ABtKyhHUwsl2ddBb1J/GiqNXoxeFNDAwMDAgcDExMi1hNC1vcnRob2dvbmFsLXRocmVzaG9sZACacXJ+wE2kzHmjV0SEvZ38Ubg1HzQwMDAwIHAxMTItYTQtc2hvcnRlbmluZwCD5dNR0h1JEHy8+RkKpg8Ijgdv3zQwMDAwIHAxMTItYTUtc2hvcnRlbmluZwCFcNi35TcWAOMegfVzOhm+HOzJgzQwMDAwIHAxMTItYTYtZml2ZS1mbGF0ALiFnvRZI4kDOcRIaAO82+aDVsR+NDAwMDAgcDExMi1hNi13ZWlnaHRlZC1jb3ZlcgD34a8NfyG7gDDTvg0StDH4o+Q/4DQwMDAwIHAxMTItYWxwaGE3NC1jdXQtcXVhbnRpZmllcnMAZp7T1SHGO6Hdwtx+2i+CncR8Fak0MDAwMCBwMTEyLWFscGhhNzQtZml4ZWQtY292ZXItY29tcGxldGUAgbZrLayGYO29rgS2NuT06IkkUNY0MDAwMCBwMTEyLWFsdGVybmF0ZS1mcmFtZS10cmFjZQDO3ruB8F3CSEV6kDIK5Y7/s4W6IzQwMDAwIHAxMTItYWx0ZXJuYXRlLXN0YXItdHJhbnNmZXIARs66Gac3Om6A7q+K3gvBuQFNf7A0MDAwMCBwMTEyLWFzeW1tZXRyaWMtdW5pdC1hdWRpdC1zZWVkNDMAChwsBWtCVn4HvOn+i/mHjaZIpTA0MDAwMCBwMTEyLWI1LWNhbGxlci1pbnZlbnRvcnkAV4qPjNfnkSNy5tYb+lUus1KkNB00MDAwMCBwMTEyLWI2LXQ0LW9yaWdpbmFsLWNvdmVycwCgP2/nneQi5UitlOs9qoCaMZv3GzQwMDAwIHAxMTItYjYtdDQtcmVjb25jaWxpYXRpb24A1iTZvEsXayCSFggAcHPxFYlV6Xs0MDAwMCBwMTEyLWJhdGNoLWNlbnRyZS1mbG9vcgBIw2yKNZauXDzwsBfQLCcvV615vTQwMDAwIHAxMTItYmF0Y2gtY2hhcnQtY2hhbmdlAONMxHYkoe4stNbWM0SbQgr6Pmn6NDAwMDAgcDExMi1ib3VuZGFyeTI0LXNlZWQzOQC9z454IiwMzT9JdsBn7YVKOomzpjQwMDAwIHAxMTItYzUtZm9sbG93dXAtYXVkaXQATJ+NiLgMkuAvUcf0VYzEFH41/Gw0MDAwMCBwMTEyLWNlbGwtY3Jvc3NpbmctcmVzaWR1YWwtZmxvb3IAbDdLAaA4xcUGHIW8naPu5m1i6U80MDAwMCBwMTEyLWNoYXJhY3Rlci1jb250YWN0LWF1ZGl0AEpGfOp3QhVYgPpRUtm/u/BlSYKUNDAwMDAgcDExMi1jaGFyYWN0ZXJpc3RpYy10d28tbWlucmFuawDxtPyUyVzGirc/hLcmBd7d8C+VGDQwMDAwIHAxMTItY2hhcmdlZC1yaWdodC1leHRlbnNpb24Ar9iH8tTmH2nZryDaNddGRSVzk0k0MDAwMCBwMTEyLWNvZGVsaXZlcnktbmF0aXZlLWJsb2NrAL0/Ul1kZOIZ5BMEprs1+mAN4tzsNDAwMDAgcDExMi1jb2VmZmljaWVudC1jb3B5LWZsb29yAMJyS4uqZh8APOOWQryVB6xx4KnBNDAwMDAgcDExMi1jb2x1bW4tY29ycmVjdGlvbi1mbG9vcgB4PwVQ6tlV0dMiy90FZ7E7/bLKizQwMDAwIHAxMTItY29tbW9uLWN1dDIzLWNhbGxlcgA6iLhOVTsBSKl/iZ1nC613m7g2BTQwMDAwIHAxMTItY29tbW9uLWRlbGV0aW9uLXNsaWNlAE6hP6piTSGWHNJFkSLr2dEApKxcNDAwMDAgcDExMi1jb21tb24tZGVsZXRpb24tc3BhbgAEIojEQi2eRFd6FXvVttGHusiYsDQwMDAwIHAxMTItY29tbW9uLWZpdmUtZGVsZXRpb24AoQ8ypMjUngxRhM4hbtFGVGaQoho0MDAwMCBwMTEyLWNvbW1vbi1mb3VydGVlbi1jdXQALei46+t5DWpgQq+l+SjB6RkVVck0MDAwMCBwMTEyLWNvbW1vbi1zaXgtc3BhbgDo0LKR02e1yhXKpKKKqTVZPwEhSDQwMDAwIHAxMTItY29tbW9uLXNwYW4tdHJpcGxlLWZsb29yACvKaeR1n+e/YsU8n8+N0I0KZWj9NDAwMDAgcDExMi1jb21tb24yNC1jYWxsZXIAHHXP1UY495t+g0qYDl4jV5cQAPQ0MDAwMCBwMTEyLWNvbW1vbjI0LWdyYXBoLWF1ZGl0AOAiujXEs4dkrmf4eS7MsKIXLDqnNDAwMDAgcDExMi1jb21tb24zMC1zcGFuACmiGYVnnMJTK+rexG8RN7jDc10cNDAwMDAgcDExMi1jb21wbGV4LXNpbmdsZS1saWZ0AJZqDRY+y0dd/MCkK7LtyaspEjfkNDAwMDAgcDExMi1jb3N0YXItY3Jvd24tb2JzdHJ1Y3Rpb24AaYxus/zKwCLY/Bxw7NR6q5RfuMs0MDAwMCBwMTEyLWNyb3NzLWZvcm0tcmFuay10cmFkZW9mZgDLFjTSicnVNqRugk9oALgVq6f19TQwMDAwIHAxMTItY3Jvc3NpbmctYXR0YWlubWVudAB3CiuJligLKCw6xqN7pGbvTyvLNTQwMDAwIHAxMTItY3V0LWNvbXBsZXRpb24tc2VlZDM2ANH/gMWt2boAI59hCYFLyZaN5fsYNDAwMDAgcDExMi1kMy1hY3R1YWwtaW52b2ljZQDBpqNqw+wuHJ/ucO9KQnUHq63njDQwMDAwIHAxMTItZDctc2F0dXJhdGlvbgC+zJddqFGhKkCI5EUhDU4umpUO1zQwMDAwIHAxMTItZGVuc2UtcXVlcnktcmVhZGVyLWZsb29yAFy4DtxGKeyT2wOBL1yp4+aF7G6hNDAwMDAgcDExMi1kZXBlbmRlbnQtcmVhZGVyLWZsb29yAEjDiMlOfa5G0DsJsVXIVx0zA2N5NDAwMDAgcDExMi1kaWFnb25hbC1yYW5rLWJvdW5kYXJ5ADZFMgFN8QaUUCbVhFwzeuG968LPNDAwMDAgcDExMi1laWdodC12ZXJ0ZXgtdW5pb24A5xi//Hq0P/Pn8kDgyKuBf8fJmQg0MDAwMCBwMTEyLWVsZXZlbi1waWVjZS1xdW90aWVudACgUNhh47hZ7IGZIWqxqIQsQE74FTQwMDAwIHAxMTItZXZlbi1ncm91cC1hdHRhaW5tZW50AB95uocFJqtXRCP/Obv734nU8bGsNDAwMDAgcDExMi1leGNlcHRpb25hbC1odWxsLWZsb29yAHvoPEqbh9iYro1hnPIBKfldEE9HNDAwMDAgcDExMi1leHRlbnNpb24tZmllbGQtcmVhZGVyLWZsb29yAGDK29lEM7qFTWsdalWj6I5Fb12CNDAwMDAgcDExMi1leHRlcm5hbC1zdGFyLXJlYWRlci1mbG9vcgBjMgFOQ6X03hLHE4prTCzIOUxLOTQwMDAwIHAxMTItZml2ZS1maXZlLXNsaWNlANh0zKnnj3jG4Hm8tHwPsUT9GmwUNDAwMDAgcDExMi1maXZlLWdyb3VwLXByb2plY3Rvci1saWZ0AO2JY+x0iTkjL9uJF6b4YS01h59uNDAwMDAgcDExMi1maXZlLXRlcm0tcmVhZGVyLWZsb29yALZvZl8nPEP9kaBtErixxr+dURMyNDAwMDAgcDExMi1maXhlZC1mcmFtZS1kaWFnb25hbC1zZWVkNTIACEBa5HgCfYbQRMXH6LJn1VQ97vE0MDAwMCBwMTEyLWZvdXItZGVsZXRpb24tY291bnRlcmV4YW1wbGUAOhkfvULYenj7tMGJKRa7M3+IIYQ0MDAwMCBwMTEyLWZvdXItcGllY2UtcmFuazMArqMEb/ygpxksjuhW7eZCXQZYGnA0MDAwMCBwMTEyLWZvdXItcGllY2UtcmFuazQACzhSzGsp2AUtyvuHORso4p8NhJU0MDAwMCBwMTEyLWZvdXItdGVybS1xdWVyeS1jbGFzc2lmaWNhdGlvbgDYm93rOjJFBvFIRqZDi2MabfySkTQwMDAwIHAxMTItZm91ci10ZXJtLXJlYWRlci1mbG9vcgCgVUbCU99NaGr/+hVf01ch5z/iujQwMDAwIHAxMTItZnJhbWUtYm91bmQAAZE8W5ujMvMGr12qSBAWPn0GPhg0MDAwMCBwMTEyLWZyYW1lLXBhcnRpdGlvbgCDHpKrIwuYfZ7olQJ8dOMyMWCSsDQwMDAwIHAxMTItZnJlZS1yZWN0YW5nbGUtbWl4aW5nAEq4h73tALcxyhU89CIt9W1r90rZNDAwMDAgcDExMi1mcmVlLXJpZ2h0LWV4dGVuc2lvbgAauFIiNAF224zAqy5SZ8+BFgIIgTQwMDAwIHAxMTItZnJlZS1zaW5rLWF1ZGl0OTcAQuzY1ew8Z05qmSXiIvVVr0KHO1o0MDAwMCBwMTEyLWdlbmVyYWxpemVkLW5vbmZhbm8taW52b2ljZQAB3pQpBD4oEFvul7cTxLns2QGyEDQwMDAwIHAxMTItZ2wzLXN1cnZpdm9ycy1zZWVkNDYAjbivpBIr12CGvaqcGGl3scnNJQM0MDAwMCBwMTEyLWdyYW0tc3VwcG9ydC1zZWVkODAAHP/TIG7JFUwsUhQm/pXb58rOINE0MDAwMCBwMTEyLWdyYXBoaWMtcXVlcnktdHJhbnNmZXIAL+zSz7FNOTW+FMBk2eTKTCAr5cs0MDAwMCBwMTEyLWhvdXNlaG9sZGVyLWdhdWdlLXNlZWQwNmFjZQBG/HaV+QBYgk7a6/ZDqRNf72gmJTQwMDAwIHAxMTItaW5oZXJpdGVkLWJvdW5kcy1hdWRpdADgGCM/YJNDxfIzrb2zNbKZtzt4pDQwMDAwIHAxMTItaW50ZWdyYWwtcmV0cmFjdGlvbi1pbnN0YW5jZQCedz3euxfMUhCG69dERg2BNGQ7oTQwMDAwIHAxMTItam9pbnQtbG9zcy1ib3VuZGFyeS1zZWVkNDkAbzh4bX0Lk6VWI5P++bDd6jYJbqs0MDAwMCBwMTEyLWpvaW50LXJhbms1LXBhcmVudADIk0XXjBcImMKds9YSwblaf6GmRDQwMDAwIHAxMTItam9pbnQtc3VwcG9ydC1sb3NzLWF1ZGl0AAOjX2xhpnIwvPhcNiK9B3Roz0z8NDAwMDAgcDExMi1sYXJnZXItcm9vdC1zaW1wbGljZXMAMdiRlHDbLo9CYNdwo2dDp3wVQ9A0MDAwMCBwMTEyLWxpbmVhci1lbmRwb2ludC1saWZ0cwB9qKG77JtPeerfWP1gsZf79XqH6jQwMDAwIHAxMTItbG9zdC1mcmVlLWZyYWN0aW9uYWwtY292ZXIAuYZNu+ZPbJg1yRNn8WnlIvtp2xg0MDAwMCBwMTEyLWxvc3QtZnJlZS1wbGFuZS1ib3VuZADWRwVa4YeObwJ9VrbFNM6RJNfStjQwMDAwIHAxMTItbWFza2VkLXRhbmdlbnQtYXVkaXQA9KA9B8v9QXbsIGiz5XbG38uqX+I0MDAwMCBwMTEyLW1hc2tlZC13YWxzaABytmbJ3NUH3kPx8b2Z8qVF1P5CfjQwMDAwIHAxMTItbWF0Y2hlZC1mcmFtZS1jb3B5LWZsb29yANnDB0sMqzy+aihvICNeJwRGbNsWNDAwMDAgcDExMi1tYXRyb2lkLXJlYWRlci10cmFuc2ZlcgCcCsM6HfnUMd82veyvWDMtXTJ0EzQwMDAwIHAxMTItbWl4ZWQtYTItY2FsbGVyAOeW5rfePWKcxXHXK25OnLtvnUgRNDAwMDAgcDExMi1taXhlZC1iYXNpcy1hdHRhaW5tZW50ALxZ6sA/TibanUI89ggEaP2mebOyNDAwMDAgcDExMi1taXhlZC1lZGdlLXNpbXBsZXgA2dd32jkmihN+feOmrM2kxUSavZk0MDAwMCBwMTEyLW1peGVkLXF1ZXJ5LXJlYWRlci1mbG9vcgBsrMhmIM0QtG/Ki4gTfXWm9+ND2TQwMDAwIHAxMTItbWl4ZWQtcmFuay1hbmNob3IAuGZmQz/fGPxNXOqvWH4+pSORJ7g0MDAwMCBwMTEyLW1peGVkLXJhbmstcmVkdWN0aW9uALJ+ajZHx92cXGUYTvJkcD6ZldjdNDAwMDAgcDExMi1taXhlZC1zaGFycDM5AIhgqzWx1Nyn+QXJt0OR5imviIuGNDAwMDAgcDExMi1taXhlZC1zdXBwb3J0MzgA4r06VxLUsFXeSvfcQKGFpUjcL/c0MDAwMCBwMTEyLW1peGVkLXN1cHBvcnQzOQDs/WrwScMA4sQEpAN5i7y4JuBPCzQwMDAwIHAxMTItbWl4ZWQ1NjYtY3V0MzIALo1eC0JZnZrXoq6c4fxtt3XrUeM0MDAwMCBwMTEyLW1peGVkNTY2LWN1dDMzACzvCueFPT3F+4FGwo2HTHnZROT7NDAwMDAgcDExMi1taXhlZDU2Ni1jdXQzNAD17BH6tS7Kpf15JVslju8xOItalzQwMDAwIHAxMTItbWl4ZWQ1NjYtY3V0MzUAx1tvfuueqeX3MyDon5/UWylhw7M0MDAwMCBwMTEyLW1peGVkNTY2LWN1dDM2LXdpdG5lc3MAwT0QNF3Tr0o91GcDk27XNj+c7RI0MDAwMCBwMTEyLW11bHRpbGluZS1mcmVlLXJlY3RhbmdsZXMtc2VlZDQyAAyKLv8nxWix0PU3bPGmdiKpKRkfNDAwMDAgcDExMi1tdWx0aXBvcnQtcXVlcnktYm91bmRhcnkAgwlmq16mcejA3NbGHcBs+LFSMjg0MDAwMCBwMTEyLW5vLWF4aWFsLXRocmVlLW1hcmsAxK8RSa4azJQ22tv9iylVwxZ1dEk0MDAwMCBwMTEyLW5vbmZhbm8tYWZmaW5lLXJlYWRlcgATs6R4vPdCNSpwujXVDsY2+job4DQwMDAwIHAxMTItbm9uZmFuby1yZWFkZXItZmxvb3IALRP7ODGdse9l6mJi0uNfZLwuCt80MDAwMCBwMTEyLW9mZi1wYXR0ZXJuLXVuaXQtYXVkaXQtc2VlZDUyANP6FeZSZQugpUREAY5BqYbvVZJPNDAwMDAgcDExMi1vcnRob2dvbmFsLWJsb2NrLXRyaXBsZS1mbG9vcgA/9ptZO6LA2fO9m1zKP3JzuztUvDQwMDAwIHAxMTItb3J0aG9nb25hbC1zaG9ydGVuaW5nAPmGFnT+XKaxHqO9D1Vb9Pl9QPqwNDAwMDAgcDExMi1vdmVyY29tcGxldGUtZmFjdG9yLXNwYWNlcwCQi3EaS4fyzCWzOL8A9ls4la73eDQwMDAwIHAxMTItcDgtZXh0ZXJpb3ItZmFtaWx5AKdObbGhhqcSk2GIcqt/eXId4/JmNDAwMDAgcDExMi1wYWlyZWQtZW5kcG9pbnRzAKhxcROaErTq5gP848kUWzzfqRMbNDAwMDAgcDExMi1wYXJpdHktbGlmdC1hdWRpdC1zZWVkNjgAUOGA8PYtnEFPsdcZ8K0NRtGFuYo0MDAwMCBwMTEyLXF1ZXJ5LXNlcmllcy10cmFuc2ZlcgCFN0VrYUCCfZbaK3n20ToyXu9IlDQwMDAwIHAxMTItcXVvdGllbnQtcGFyaXR5AJbgmiA7k/WbqJKbfCqoynWRaGz0NDAwMDAgcDExMi1yYW5rNS1zaGFycDQ3AGN4GjzdbL/m8nuZTIvktJXjt3ApNDAwMDAgcDExMi1yYW5rNS1zdXBwb3J0NDYAzVPwIw1Nomjh712dJcqoTlnshzo0MDAwMCBwMTEyLXJhbms1OS1lcXVhbGl0eQDtF/UfJ+yKpIaJEzM80hp7c2dbSzQwMDAwIHAxMTItcmFuazYtY292ZXItcmVwcmVzZW50YXRpdmVzAMIfzwu1X5leE/FzPSOeRaRodB1+NDAwMDAgcDExMi1yYW5rNi1mcmFtZS1jb3ZlcmFnZQAPwaiAtQKISsCLzL/27PdF2Vs8djQwMDAwIHAxMTItcmFuazYtaGFsbC1vYnN0cnVjdGlvbgB/n104tXDCh4d9ygx2ldsGB6XAQTQwMDAwIHAxMTItcmFua29uZS1jcm9zcy1mb3JtLWZsb29yAKVms2hpL+K3iRDdbQVuOHaw+oVJNDAwMDAgcDExMi1yYXRpb25hbC1kZWNvZGVyLWdhdGUAc4IqH3Mn/T4uXBCyLD9HvX1Lcr80MDAwMCBwMTEyLXJhdGlvbmFsLXJlYWRlci1wcmljaW5nAMGOKDM0Ff2xQJe1+ng1OvRhhNpnNDAwMDAgcDExMi1yZWFkZXItbWVtby1zZWVkOTIAHjv6OHQ/gLIyuEqR4OgKgwbXYlw0MDAwMCBwMTEyLXJlZ3VsYXItcXVlcnktZmxvb3IAJsK1xfU71j7hPfV2mpp9ULGMznE0MDAwMCBwMTEyLXJvb3Qtc2ltcGxleC1leGNsdXNpb24AN3gAPRfm/cCzfSGUXM7cPFYPRjE0MDAwMCBwMTEyLXJvb3Qtc3VwcG9ydC1yaWdpZGl0eQDpU9MzAPp1us1jomBU2wuyXbYdmTQwMDAwIHAxMTItcm9vdGVkLW1pbm9yLXRyYW5zZmVyACUrdRpz6sFenvArcn9na4/XygjUNDAwMDAgcDExMi1yb3ctbWFzay1iYXNpcy1zd2l0Y2gArc/T8vjG1yLESPLFZNXvY9G07bs0MDAwMCBwMTEyLXJvdzU3OS1kZWcyAMVOQvlENUPOCw5VKGFGVFNKOsAvNDAwMDAgcDExMi1zYXR1cmF0ZWQtcHJvamVjdGlvbi1maWJlcnMAX8qHmSAySXtp2vnNdKp7juBK92E0MDAwMCBwMTEyLXNjYXR0ZXItb3JpZW50YXRpb24AnXPkiV/4w+Y/Fa/thLsK/YVhbDo0MDAwMCBwMTEyLXNlbGVjdGl2ZS1jaXJjdWl0LXJlbGF4YXRpb24AXm4INXY7nCCwCl4b/f2/h2WZtPY0MDAwMCBwMTEyLXNldmVuLWZsYXQtZml2ZS1saW5lLWJvdW5kYXJ5AHZYO9Uu/QGoL6a3Ks95H15iqUQ4NDAwMDAgcDExMi1zaGFyZWQtY29ycmVjdGlvbi1jb3N0LWF1ZGl0ADyuiVFHFoHtTJKkCdwwAmXGTpouNDAwMDAgcDExMi1zaWduZWQtbW9kdWxhci1wcm9kdWN0aW9uAFDi/peDQMFr5hDXLU9DweSCOFyoNDAwMDAgcDExMi1zaWduZWQtbW9kdWxhcjg2ALu1ZR7zUQNPVqFrcGvGTk42skdDNDAwMDAgcDExMi1zaW1wbGV4LWNvb3JkaW5hdGUtYm91bmQA2Fok8OrXBBwarZaULMWBSPugOqo0MDAwMCBwMTEyLXNpbXBsZXgtc3VwcG9ydC1idWRnZXQAlJ4WdwGm60K/H814crwXqeWbWmY0MDAwMCBwMTEyLXNpbmdsZS1odWItdHdvLWJlYXJpbmcACNeKJxqb2hEdAug7xXL84jJP5nE0MDAwMCBwMTEyLXNpbmdsZS1saWZ0AN/8uaP4dSwSrTaxmRcJ88HHAqzONDAwMDAgcDExMi1zaW5nbGV0b24tcmFuazkATgqRMnsreQaDWq6fBnfADM0mFns0MDAwMCBwMTEyLXNpeC1kaW1lbnNpb25hbC1pbmNpZGVuY2UAjotb/6kVDMsdtSsnOqrHHIlK2/80MDAwMCBwMTEyLXNpeC1tb2RlLWV4Y2x1c2lvbgDt46ojMZy/j/Y73pZc1OrmkrVzPzQwMDAwIHAxMTItc2l4LXBpZWNlLWNvbmNlbnRyYXRpb24AuiC31sTVwqSuNMm7pIdMaRENr0g0MDAwMCBwMTEyLXNpeC1zZXZlbi1zdXBwbGVtZW50AFYGz7tXnQl1G9BOe7bSD5ceyh1YNDAwMDAgcDExMi1zaXgtdmVydGV4LWJ1ZGdldAC3JHJHrXZ6UsZAZV0Adgv5M9eYuTQwMDAwIHAxMTItc3BhcnNlLWNvbXBsZXRpb24tcmFuawCVXH8GrKDeA9MRWlMxJokyuybXqjQwMDAwIHAxMTItc3BhcnNlLWdhaW4tdHJhbnNmZXIAP0p0mhtOVCNXVTzMPTRWxY6260E0MDAwMCBwMTEyLXN0YXItZmlyc3QtY29zdC1kcm9wAGUNAG7jzMQ+7rtMVk0SOLa3/fJHNDAwMDAgcDExMi1zdXBwb3J0MzAtc2hvcnRlbmluZwB8318nwju2WXvLcseclLm+7bv5DDQwMDAwIHAxMTItc3VwcG9ydDMxLXNoYXJwbmVzcwAZAuZ9mevXqoVEg5aF4XpPxfLFBTQwMDAwIHAxMTItdGVuLWRlbGV0aW9uLXNwYW4A2Ms1F7QSYKoLbaezhew9mG9cxO40MDAwMCBwMTEyLXRlbi1waWVjZS1zaW1wbGV4ANKhuM2cxbPjQk40ZjikZ/v1+6t4NDAwMDAgcDExMi10ZXRyYWQtbG9jYWwtZGVjb2RlcgB4o5DjC0uiM2qmiFvNVAGytW+vkTQwMDAwIHAxMTItdGhpcmQtaHViLWV4dHJlbWFsAJQ5yyvwPR0wUpbaPgiRd0c7bgw8NDAwMDAgcDExMi10aHJlZS1jYWxsLWlzb21ldHJpYy1mbG9vcgAxFGhbK+Qv0jVfcuRMmxi/YD+oJzQwMDAwIHAxMTItdGhyZWUtZW5kcG9pbnQtc3BhcnNpdHkAxVegmBHzg+VOQaMFk5dJGc/bys00MDAwMCBwMTEyLXRocmVlLWZyYW1lLXJlcGFpcgCaDiwfaLrl8UoEoEAwpf7Vpkgl2zQwMDAwIHAxMTItdGhyZWUtbW9kZS1zZWVkNDAATkQCAw7Rv+QiSLMEuH2V2IQDeOw0MDAwMCBwMTEyLXRocmVlLW1vZGUtc2luZ2xldG9uAA2xy/9+jejsPRZ6oEajVFnMcymmNDAwMDAgcDExMi10aHJlZS10YXJnZXQtZGljdGlvbmFyeQCSYAnymdIT9GVxOnUAOyzsewsNFzQwMDAwIHAxMTItdHJpYWQtbWF0cm9pZC1ib3VuZGFyeQBZiymYX3Mh733hl/3WD/Pm2jy4eTQwMDAwIHAxMTItdHJpcGxlLXRyYW5zZmVyLW9ic3RydWN0aW9uAH8+GBTl7Ry3XflVQdpwfT5pYi51NDAwMDAgcDExMi10d28tY29sdW1uLWNvbXBsZXRpb24AhxRMDi7kJqpEB/IvGpyhQW92zTk0MDAwMCBwMTEyLXR3by1jb2x1bW4tY29weS1vcHRpbXVtAMxcU6Su8+reuHsxQPwPRmQkZ6FjNDAwMDAgcDExMi10d28tY29vcmRpbmF0ZS1zbWFsbC1yZWN0YW5nbGUACWC/Ugp92wH4FaX0Tot9eFDYUgc0MDAwMCBwMTEyLXR3by1odWItdGFyaWZmLW1pbmltdW0AIlZa6t+khbrdmzehUaBUZzi353Y0MDAwMCBwMTEyLXR3by1odWItdHJhbnNmZXItb2JzdHJ1Y3Rpb24AJPTmPYQxqeLDV1weBTO3dqX/MeU0MDAwMCBwMTEyLXR3by1vdXRzaWRlLWRpcmVjdGlvbi1zd2FwLWRlZmljaXQAKi9IgCQ+MUmXb2JbKADmANydG+o0MDAwMCBwMTEyLXR3by1wb3J0LXRyYW5zZmVyLWNsYXNzaWZpY2F0aW9uALt0jgZTo5ST6t/nD8SN62YAJ8SANDAwMDAgcDExMi10d28tcHJvZHVjdC1jb21wZW5zYXRpb24A4A6MmT2UCp0TjO+UC+81zrcDiPw0MDAwMCBwMTEyLXR3by1zaXgtZmxhdC1jb3ZlcgB8fLjw5y/opUF/4I+kJ2N6n4Pj7TQwMDAwIHAxMTItdHdvLXRvdGFsLXJhbmstb25lLXNlZWQyMQD2hiw7vtcrYFO/WDJi3SQAmI4aQDQwMDAwIHAxMTItdHdvLXRvdGFsLXN1cHBvcnQtdGhyZXNob2xkAO4LBikXcEXSw3JovlIF7bPOINp+NDAwMDAgcDExMi10d28tdG90YWwtdW5pb240OC1zZWVkMzAA71JnqKkR4dsIKvfjU2RxFeKekIc0MDAwMCBwMTEyLXR3b3NpZGUtYTMtYXBwbGljYXRpb24ArbXhl851LwEcdWeQV6g7IEaCsEM0MDAwMCBwMTEyLXVuZXF1YWwtZW5kcG9pbnQtZGVsZXRpb24As1rjummQQ1zyDfYGniVFLWlMsIk0MDAwMCBwMTEyLXVuZXh0ZW5kYWJsZS1jbGlxdWVzAFRVlniW8OvNVjJoO4dnJmXoTlDGNDAwMDAgcDExMi11bmlmb3JtLWNvbHVtbi1yYW5rOQCjULAGAA1LjQU85nQkq1MWHh0AmzQwMDAwIHAxMTItdW5yZXN0cmljdGVkLXRocmVlLXF1ZXJ5ALb7Z2C6DvqmxI0ipdyfR9vqTt37NDAwMDAgcDExMi13YWxzaC10d28tdG90YWwtc2VlZDZlZDgzZAAamZjLQs6X7tdrcvyzz4mfGE3WPjQwMDAwIHAxMTItd2VpZ2h0LXNldmVuLWRlbGV0aW9uAMjUiZTgzO3GqkyJSyLtCbTNoshiNDAwMDAgcDExMi13ZWlnaHRlZC1mbGF0LXBhaXIA72bShxzU9tIF88/hapswDbp07H80MDAwMCBwMTIwLWNhbGlicmF0ZWQtdHdvLXRhcmdldC1zZWVkNTEAkc3dv+dieVsmX8GWNanUQG7X8J40MDAwMCBwMTYtY2FvLXNjYWxhci1kYWcAcFLARXbOZNWmS3bTxk2D/WkgWy40MDAwMCBwMTYtdGlnaHQtdHJhbnNmZXItMjAyNjEwMjIAAeJ+oGUtzpxVWKaEs0bMmA7GQ9g0MDAwMCBwMTctYjQ4MC1jaGVjawCAuOU6n1BEncrb5W33wtRLei1fLDQwMDAwIHAxNy1jaGFpbi1yZWNlaXB0ANeDsN2+zAx1MIRb0+jZGFU6xlm9NDAwMDAgcDI1LXJvb3QtcGFpci1ib3VuZC1zZWVkNjMyNjM5AL94U1TnLRNmifELgu1DM3DNJCvNNDAwMDAgcGFja2VkLWNhcnJ5LWF1dG9tYXRvbi1hdWRpdADlYmfBuPOp6waT1ixCxOdbeKaw+DQwMDAwIHBhY2tlZC1jYXJyeS1zeW1ib2xpYwAH1JB1XmH/KBPlW7/e6SQkIzANYDQwMDAwIHBhY2tlZC1jbGlmZm9yZC1nYXRlLXRhYmxlcwDz0LkWMC9Lj4lQAiHPBd4z0gOMDTQwMDAwIHBhY2tlZC1ndWFyZC1lbnZlbG9wZS1hdWRpdACvlV+gV2O7jdFYHquttS/pjd+tajQwMDAwIHBhY2tlZC1yYW0tc3BlZWR1cAD2RMoniJJF/U9yX60bjSAtdS9thTQwMDAwIHBhY2tlZC1zb3VyY2UtZmliZXJzLXNlZWQ2MgCpA+lzVWyiWjZNgjlSGXf1DhcAWzQwMDAwIHBhY2tlZC10YXBlLWZ1c2lvbgCit9sqtBjGurVdW6KCaYkL4MlHvTQwMDAwIHBhaWQtY29weS10cmFuc3Bvc2UtYXVkaXQtc2VlZDY3ANLoMTKltvafgXR5ZvGqueXsk93iNDAwMDAgcGFpZC1yZWFkZXItZGVmZWN0LXNlZWQ1OABhBK0mwdHImko1o/GzEgvvdSyj0zQwMDAwIHBhaXItYXNzZW1ibHkA1RKlpF2SsX+YNl2Avxtkn5OvoS80MDAwMCBwYWlyLWNvbGxpc2lvbi1pZGVudGl0eQC3aqTnb5DUjQKPkNXzr4E4+9wyojQwMDAwIHBhaXJlZC1jYXAtdW5pZm9ybS1vcHRpbWFsaXR5AA9+UPbyE8qac+yseE+/6oUFN9GaNDAwMDAgcGFpcmVkLWN1YmUtYml0LWZhc3QAu0lZ3vhQ3ZO9owcNV4rzR172BXY0MDAwMCBwYWlyZWQtZGlhZ29uYWwtYm9yZWwtZ2F1Z2UAPkyfZ0ltLOJlJi5P6RqF9ddM0Dw0MDAwMCBwYWlyZWQtZXh0ZW5zaW9uLWNhcC1maWxsLXJld3JpdGVzAOWkpW1XkPlZDBT1XS9BJn/22LIeNDAwMDAgcGFpcmVkLWV4dGVuc2lvbi1jYXAtZmlsbABzArt1dYEAsrTdgvds4WH80sN55TQwMDAwIHBhaXJlZC1leHRlbnNpb24tbm9ybWFsNDUAccuHXZ4MPf/nbSqX2m4slquxpxw0MDAwMCBwYWlyZWQtaGVscGVyLWV4dGVuc2lvbgDMOT/YK69wUa6EEJXrGv9BQKbRUTQwMDAwIHBhaXJlZC1oZWxwZXItZnJhbWUtbGVkZ2VyAPfekrxSy0dcEf9Qw3xtjq5lg/FHNDAwMDAgcGFpcmVkLWxvZy1vcmRlcmVkLWRlY29kZXIAf7GdIZ06todaAQaWDQP9AKtPvbM0MDAwMCBwYWlyZWQtbG9nLXBoYXNlLXF1ZXJ5LWJvdW5kACgiVBworoHEjTJruL6DnaKUpjGTNDAwMDAgcGFpcmVkLWxvZy11bml2ZXJzYWwtaWRlbnRpdHktc2VlZDgzANKUzCZ7jXH+DOzq4D3FMlmpydLhNDAwMDAgcGFpcmVkLXBsYW5lLWJsb2NrLXJhbmsAQfrXUVN+8YTSEKeNqXdkih/6tD40MDAwMCBwYWlyZWQtcGxhbmUtYzUtc2NodXItbGVhbgA2IjhUKsWD0T7DExxR2GZ1kEIugDQwMDAwIHBhaXJlZC1wbGFuZS1mb3VyLWNoYW5uZWwtbGVhbgD7A2aYVQhWbzzLfWGeYQ3GAX47QzQwMDAwIHBhaXJlZC1wbGFuZS1mcmFtZS1wYWNraW5nAD7g2o8U3l+QjHQsxMvxdT+noV1LNDAwMDAgcGFpcmVkLXBsYW5lLWZyYW1lLXJlcGFpcgAMLbcB5+W/H0ro63zv9OwguaJ6yzQwMDAwIHBhaXJlZC1wbGFuZS1pZGVudGl0eS1maXQtc2VlZDIxZWY5OAD76cM4KW3QGWy9pFAFFcuINJ6cqjQwMDAwIHBhaXJlZC1wbGFuZS1sb2NhbC1zd2FwLXNlZWQ5YzY1YTUACqkvk5pUN6E+kueNZmN1DSlbEJI0MDAwMCBwYWlyZWQtcGxhbmUtbWlucmFuay1icmFja2V0LWF1ZGl0ABVhDa5xL5caHfuMQWFCqliMSwARNDAwMDAgcGFpcmVkLXBsYW5lLW5hdGl2ZS1wYXlsb2FkACeuhosdeM9YMlUtYkkDOv2AtlRBNDAwMDAgcGFpcmVkLXBsYW5lLXBvcnQtbWF0Y2hpbmctc2VlZDZjNTYzYQCcuMYS9oCROPh1JznOiQ+lVoKS+jQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtY29weS1hdWRpdACZsO6sPzYlyh6qz0P82DJ6WWMdnDQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtY29weS1pbnZvaWNlACJPt+ZIOotUrEBlEE7WpTJI715PNDAwMDAgcGFpcmVkLXBsYW5lLXJhbmszNC1jeWNsZS1ob2xvbm9teQDhO9EvQgBVXdVJ7Kt9wSsgFBSRszQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtcmFua29uZS11cGRhdGUAT7eOwhFEylFqIeqFXIdA2SAdDIU0MDAwMCBwYWlyZWQtcGxhbmUtcmFuazM0LXJhdGlvbmFsLXBhaXItZ2F1Z2UAVG4yE4rmLCDBmGgqBaztYSslPrs0MDAwMCBwYWlyZWQtcGxhbmUtcmFuazM0LXJhdGlvbmFsLXRyaXBsZS1nYXVnZQAxjUbcR8QIq8BQ8CIQQJfNk7cq7DQwMDAwIHBhaXJlZC1wbGFuZS1yYW5rMzQtdHJpcGxlLWdhdWdlAL7NAplg9APlmqaFmvHI5glusdvfNDAwMDAgcGFpcmVkLXBsYW5lLXJlbWF0Y2gtcmFuazM0AHYBT9Lm867le3b0nge9v386/Vu7NDAwMDAgcGFpcmVkLXBsYW5lLXNjYWxhci1tYXNrLW9ic3RydWN0aW9uALOXfyuZ9a18wNoi4+tlXYLYCYeKNDAwMDAgcGFpcmVkLXBsYW5lLXNjYWxhci1yYW5rLWZsb29yAB5MLogrWPWrj/iicFjy8PF90Fb5NDAwMDAgcGFpcmVkLXN0YXItcmFuawDbtbk9rUHp/dnV5ODD3QTZUqED/TQwMDAwIHBhaXJlZC1zd2FwLW5vcm1hbDQ1ACGKBxA0iDhMHhWc0Ar/myvOICKyNDAwMDAgcGFpcmVkMjYtaW5kZXBlbmRlbnQtYXVkaXQA6NOWKbcqMl3u71QEZfxcDDHMTzA0MDAwMCBwYXBwdXMtbWl4ZWQtZnJhbWUtb2JzdHJ1Y3Rpb24AeXmlvY17y2w6tOaOzgs5PiFfeAE0MDAwMCBwYXJhbGxlbC1hbm5vdW5jZW1lbnRzACFJYS/F2372PEdovOTW3AIsKJMaNDAwMDAgcGFyaXR5LWVkZ2UtY29tcGF0aWJpbGl0eS1zZWVkNDYASi6MhGP675HlLQS3KLfxMyNhoug0MDAwMCBwYXJpdHktaW5jaWRlbnQtY29tcGxldGlvbnMAo3MmeBgi6ofa0KEy2TNJvAu/zh40MDAwMCBwYXJraW5nLXBzaS1leHBvbmVudC10aHJlc2hvbGQAmoUOalct8WT4OHBXjWwvs4JSwE40MDAwMCBwYXJ0aWFsLWhlbHBlci1jYXB0dXJlAKMeaesOA1ULK3X8Pm5AVjkRsLsgNDAwMDAgcGFydGlhbC1pZGxlLWN1dC1ub3JtYWwtZm9ybQDNN2BiNY9Ua1+W4DjNcuUtKZSnYTQwMDAwIHBhcnRpYWwtay1mYWNlLWJ5cGFzcwBvWOOgMsmcWz2vu7j8dp4eGNspnTQwMDAwIHBhcnRpYWwtb2JzZXJ2YXRpb24tYm91bmRhcmllcwByMyGun3EaCkrf14d8aBWX03NXszQwMDAwIHBhcnRpYWwtcGF1bGktZ2F1c3NpYW4tbWluaW11bQAtqBc/glDB1mVYg4WQRVGslRCsOjQwMDAwIHBhcnRpYWwtcGF1bGktdHdvLXRyYW5zdmVjdGlvbgA2amVIgw0WH/p6B0doiVD5FZ2VsDQwMDAwIHBhcnRpYWwtc3dhcC1kaWdlc3QA2auDZLsWELLg5Lq5Pl8bq0TAlSU0MDAwMCBwYXJ0aWFsLXN3YXAtaW5pdAB8BN/J/kyHhxBnnZMWkmYnwLoQ1DQwMDAwIHBhc3NpdmUtc2F2ZWQtcXVlcnktY2VpbGluZwD4aJiR/WKfoAQAjOZ9ifANTs4wvjQwMDAwIHBlbmNpbC1kZXRlcm1pbmFudC1pbWFnZQBIUMqtrNZd8o0jEZYXa2ZrI9TY7DQwMDAwIHBlbmRpbmctY2xhaW1zLWluZGVwZW5kZW50LXByaWNpbmcAd85Ue6WSNAX6fPeQ8njl0Jlmoys0MDAwMCBwZXJpb2RpYy1nYXVzc2lhbi1kaXJlY3Qtc29sdmUAH5B7Rwr4LpXyWLyU/hUZXsp6xWQ0MDAwMCBwZXJpb2RpYy1nYXVzc2lhbi11bmlmb3JtLXNvbHZlADfEPT0LKEKMr3i7JodPhM322UuQNDAwMDAgcGVyaW9kaWMtZ2F1c3NpYW4td2VpZ2h0ZWQtcG93ZXItYm91bmQAXEJz7ROxc6vy+YL4/UEPxLNnhMQ0MDAwMCBwZXJpb2RpYy1yZWZlcmVuY2Utcm91bmRlZC1pbnZlcnNlLXNlcnZpY2UA5Gyi3Y/HkjjM6XrtE4N+K+EYEpQ0MDAwMCBwZXJtdXRhdGlvbi1sZHMtcHJvZHVjdADK0GtjRzPXzMY2gCFG8NRa1nAzETQwMDAwIHBlcm11dGF0aW9uLXNsYWNrLXdvcmtzcGFjZQDj9W62pFgyygOK5umdOwTIIjjNkTQwMDAwIHBnMTZtLWJvb3RzdHJhcC1vcmRlcnMAM/0R/I2goLLR1nnbFkLBdklOaKg0MDAwMCBwZzI5LW1hdGNoZWQtZGlydHktY29tcGxldGlvbgDNaN9speaxDh0Hx7MmVVx6eNbdWjQwMDAwIHBoYXNlLWFjY3VtdWxhdG9yLXRlbnNvci1jbG9zdXJlAPfFMTYUVj6cNrDSymdeYFu3JITuNDAwMDAgcGhhc2UtYWxpZ25lZC10d28tY2FsbC1wcmVmaXgAzRk7/AR7hk3BBfZFHhZoYSxaS6E0MDAwMCBwaGFzZS1iYW5rLWludGVydmVuaW5nLXdvcmstYXVkaXQABNs76MLsl52rER0YjB8GzKoxpkU0MDAwMCBwaGFzZS1jb2RlZC1jYWxsZXJzAEvy1j/qDoleUeMvJOspb76K3oNHNDAwMDAgcGhhc2UtY29ycmVjdC1qLWhhbmRvZmYAawUkD4d3TXPD+4HyBHmTRv6cIoc0MDAwMCBwaGFzZS1vcmRlci1iYW5rLWF1ZGl0AKUXeAabTMX0RQjc20AmdiUVBF3sNDAwMDAgcGhhc2UtcmFuay1kZWJ0AI3DoZxxTE1dVOlTcDRv6BGIpQseNDAwMDAgcGhhc2UtcmVjaXBlcy1wYXJhbGxlbACf1lfd0a6oygI+K/Qn0/aPMwln7DQwMDAwIHBoeXNpY2FsLWE1LXByb2plY3Rvci1jYWxsZXIAydp8qnvEQrYhYqCLW1WRgK2cHQc0MDAwMCBwaHlzaWNhbC1ib3VuZGFyeS1wYWdlcwDy1+C83phFbnu9zkq6oEH3MnKGkzQwMDAwIHBoeXNpY2FsLWNoaXJwLW1pZGRsZQDuzniKLpnIIBajAe1r9TNq+ir+nDQwMDAwIHBoeXNpY2FsLWNvbXBpbGVyLWNvcnJlc3BvbmRlbmNlAJH5q2wmlIGCMd7Z9XbHaMjNOQo4NDAwMDAgcGh5c2ljYWwtY29tcGxleC1jb21wYWN0AOmsvXBT5rBlrXg6opvylImGb8Y0NDAwMDAgcGh5c2ljYWwtY29tcGxleC1jb250cm9sbGVyAKCQhRFrtNEF94Wby5x1PBXuvbAXNDAwMDAgcGh5c2ljYWwtZmZ0LXdvcmQA/hbofDAFLUfuM7ayHPpL7Hk5Xfg0MDAwMCBwaHlzaWNhbC1nYXVzc2lhbi1jb3JlAL02WPiBnCrxI0WEeMFaz1NVPIMQNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tZXhwYW5zaW9uAF+eHG+urgH3Pef2InBCbKbOkN/zNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tbGVhZgAmpNvKiTLGjkXskn1KCHGj6T2NmzQwMDAwIHBoeXNpY2FsLWdhdXNzaWFuLW1vbm9taWFsAGby8kdd3HDkPuY7dGuT5l0S2HKYNDAwMDAgcGh5c2ljYWwtZ2F1c3NpYW4tdGVuc29yAMEW9jZ8SmGx51sXmAjUxF05X2cVNDAwMDAgcGh5c2ljYWwtaW52ZXJzZS1wYWlyAPMgiLeKLhl+9V8VB/cN5zvycj2HNDAwMDAgcGh5c2ljYWwtb3JkaW5hcnktaW50ZXJjaGFuZ2UAjrxjv00mRX/UKCnMsuOeDz2kS1I0MDAwMCBwaHlzaWNhbC1wYWlyLWVycm9yLXRyYW5zZmVyAMWcGXK01VkM/52oScd+DExwo2jjNDAwMDAgcGh5c2ljYWwtcGFpci1mdWxsLXJlc2lkdWFscwCWbNRB7SlNmfkcSpUNDlDNTBvjnDQwMDAwIHBoeXNpY2FsLXBlcmlvZGljLWdhdXNzaWFuLXVwZGF0ZQAufn4e/FTKfUlxL1JosMwR0sJsFDQwMDAwIHBoeXNpY2FsLXJpbmctcHJvZHVjdADv5RQWijYPldwnOTF/NhBt/lvaWzQwMDAwIHBoeXNpY2FsLXNjYWxhci1zdHJlYW0AHzMbS4Llop7nQMZFVZpdpG9Q/lg0MDAwMCBwaHlzaWNhbC1zcGFyc2UteG9yLWJhdGNoAB15PgodnrbePk/V7EE+mnMIdw7ZNDAwMDAgcGh5c2ljYWwtc3VwcG9ydC1yb3V0ZXIA1MF9Nqj+5OUMriyf4A1rerRWwiY0MDAwMCBwaHlzaWNhbC1zeW50aGV0aWMtZm91cmllcgA840p0NUEhNY1yjr4mudk8oq4MBjQwMDAwIHBoeXNpY2FsLXRlbnNvci1jcnQtc2FuZHdpY2gtcmVjb3ZlcnkA91jWwTp5zH5rTJxB4GQxV7KXk6M0MDAwMCBwaHlzaWNhbC10aHJlZS1sYW5lLXJldmVyc2FsAEyL0SSSb3uUWswsLyqKrW0yXGBKNDAwMDAgcGxhbmUtZml0LXJlY29kaW5nLXRhcmlmZgDNW8j5l45nBI6Nzj7gyjv1ShzmNzQwMDAwIHBsYW5lLXBvcnQtY29weS1idWRnZXRzAKU8nqFtB0Fdpf+Fv93Zhm0Zybr/NDAwMDAgcGxhbmUtcG9ydC1lbmRwb2ludACm6RTT0xQORvuPgRXX4/w1GpDlEzQwMDAwIHBsYW5lLXF1ZXJ5LXJlYWRlci1ib3VuZGFyeQB8ffQ/AjVpZGF08WH8yccMQpSICjQwMDAwIHBvbGFyLWxhdy1zbWFsbC10LXNjcmVlbgA62O2Edl4hnra0Tm+TC3Z4BeyDWDQwMDAwIHBvbGFyLWxhdy10Ny1vdmVyY29tcGxldGUtc2NyZWVuACCP7Q6vTX3X846YqI3HhfSqYL/gNDAwMDAgcG9sYXJpemVkLXAxMTItY29kZS1ib3VuZAC8uJNKfJXCRd0WHHivCQkDU2/BfDQwMDAwIHBvbHlub21pYWwtY29zdC1kaXN0cmlidXRpb24AmoA0zUykmm7OIOGnBKXCQJ7LT740MDAwMCBwb29sMTIxLWpldC1yaWdpZGl0eQBFNiHM6IgG0lJ2suDLgvZ+P4JM1DQwMDAwIHBvb2xlZC1jbG9uZS1lcG9jaHMAPwp4iCA7uyINrAFuCyQAc4J9SwM0MDAwMCBwb29sZWQtaWRsZS1tb2RlbC1yZXNjdWUA7fPF0TsbUUtwXqXa6+E48Hcmtj80MDAwMCBwb29sZWQtbmF0aXZlLWhvc3RpbmctYWRtaXNzaW9uAJMcTXCJRqnm6YFitO7dO16f+VZcNDAwMDAgcG9zaXRpdmUtc2tpcADdYqsowcLASTfoP5OyyqiLGvbtvzQwMDAwIHBvc3QtY2VudGVyLXJhbms0LWdsb2JhbACAvZrPJZ79yuVvIQrnnodNB0sTOjQwMDAwIHByLXJlY29uY2lsaWF0aW9uLTIwMjYxMDEyAEFoFFlQczDNmoxiisH1qH9pin7TNDAwMDAgcHItcmVjb25jaWxpYXRpb24xMDAtMjAyNjEwMTMA2x8z0ZXYmNLp/lvqkieaZ4ojvlA0MDAwMCBwci1yZWNvcmQ2OTktNjg1LWF1ZGl0ANzWfB2Rsr5ngsWNDps1+Bp6Zbx4NDAwMDAgcHItcmV2aWV3LTIwMjYxMDA5AO4qBBRfjMe5tfY6qKXm0300pT2MNDAwMDAgcHItcmV2aWV3LWJhdGNoZXMA8oI8NibBCNBiX/4gel1SO9OV43I0MDAwMCBwcjEtcmV0ZW50aW9uLXJlY2VpcHQAM01GquR+E5yiYin4v259ZVblhcg0MDAwMCBwcjEwNDgtYWxnZWJyYWljLW9yZGVyAEH4uYwXuGKVgHCnCjc3AoOyTEchNDAwMDAgcHIxMDQ4LWNlcnRpZmllZC1yZXBhaXIAN5furlXtiZQ5EZmTEp5xvOarW3M0MDAwMCBwcjEwNDgtY29tcGxldGUtZmVhc2liaWxpdHkA8or/1c7xI8ZXvRBLQ8QFLlVg8oI0MDAwMCBwcjExNi1ldmlkZW5jZS1yZWNvbmNpbGlhdGlvbgDvLRZK/YBelUofH3p6ITvx3SGgoTQwMDAwIHByMTI5My1sb2ctZW5jbG9zdXJlLWF1ZGl0AOeXx4VhkumSWMdhnyvaPHNpnkWpNDAwMDAgcHIxNDA3LWNvbXBsZXgtbW9tZW50LWF1ZGl0LXNlZWQzOQAQ+MQWj7uLe+fxZPtIRIKbVmiEfzQwMDAwIHByMTQxNy1maWVsZC1zZW5zaXRpdmUtcmFuay1zZWVkNDcAXNaHRS+OGLIP/48R8ZBHPYa59zs0MDAwMCBwcjE0OC1zb3VyY2UtcmV0ZW50aW9uAI1R/ykkN6B+9uZNm4JqF7QPZytnNDAwMDAgcHIxNTM2LXJvb3QtZW5kcG9pbnQtYXVkaXQAFdUTPYkav6XQ/qkPBPiG7WgYI/Y0MDAwMCBwcjE3MzEtdW5pb24tcmVjdC1yZXZpZXcAcon4dgPcXhzHj4C22qdoIWPOG3s0MDAwMCBwcjE3ODYtZmluZS1wcmltZS10cmFuc2Zlci1hdWRpdAB75yBRonY/quwIh1UjfOAZFB0naDQwMDAwIHByMTg2Ni1vdmVyaGVhZC1pZGxlLWNyZWRpdC1hdWRpdACM86h29lQFvqWRoWzD12TKHsfzFDQwMDAwIHByMjAzLXJldGVudGlvbi1yZWNlaXB0ADOord6G6Nvu3HACUNLc5Zamx58WNDAwMDAgcHIyMTAtaGVhZC1yZWNvbmNpbGlhdGlvbgB1GzpoofsMaU7Ys8aC6Jqj6IJfODQwMDAwIHByMjExLXJldGVudGlvbi1yZWNlaXB0AJ2YnYA6c6oQp+C9LOIe5n9TH+BWNDAwMDAgcHIyMjUtZml2ZS1zdGFnZS1yZWNvbmNpbGlhdGlvbgBC+iLzBITb3cJRKDnbBC8dvPYQvjQwMDAwIHByMjI2NS1zdXBwbGllci1hZG1pc3Npb24tYXVkaXQAUPs7Srv6sp3J3Ey/Ca9PgLIIAq80MDAwMCBwcjIyOTctcHJpbmNpcGFsLXJhbmstZmxvb3IAVYDypDcUCNWXxiDNake8C1nzbrM0MDAwMCBwcjIyOTgtZm9ybWF0LXJlY292ZXJ5LWF1ZGl0AHELTOX/TKdfwSzW2/uvpz4Kp0faNDAwMDAgcHIyMjk4LXNlY3Rpb24zLW9wY291bnRzAPHydLJX5dE6dkDYfx8VvrVhIIa4NDAwMDAgcHIyMzYtaW5kZXBlbmRlbnQtY29tbWFuZC1hdWRpdABhxE6OAUvwnlK2Ai+VzOOVLQD+QjQwMDAwIHByMjM2LXNvdXJjZS1yZWNvbmNpbGlhdGlvbgDAuGMHaT93fdQvn7ktMqqOZsu9xzQwMDAwIHByMjc1My1yb3V0ZS1jdWJlLW93di1maWJyZQC4xVaHC63xyEuvnfcPlmYblhuV3zQwMDAwIHByMjc5LXBhcmVudC1jbG9zdXJlAO5btQMdOPFJXw8U6R+EwWJSSditNDAwMDAgcHIyNzktdGFyZ2V0LXByZWZpeC1yZWNvbmNpbGlhdGlvbgBA68X30sNAlB1e2LfZujVVvcAbIjQwMDAwIHByMjgwOS1jb250aW51YXRpb24tc3RhY2stc3BhY2UABWuSCln5y3wKPKBOJ2vJbeLtDq80MDAwMCBwcjMwNDQtaW5kZXBlbmRlbnQtY29sZC1yZXBsYXkA3KhNIxlKYBsj3UKUbLT3zZZxrVU0MDAwMCBwcjMwNDQtbmF0aXZlLWNsZWFudXAAx+eup54lTj9J9t07Is29wGbwGRM0MDAwMCBwcjMwNDQtcjItbmF0aXZlLXNsaWNlAG4QuDd21DSF4C0t7JySym8EOnDZNDAwMDAgcHIzMTkwLWRpc3RpbmN0LWF4aXMtYmFzaXMtaXNvbGF0aW9uAMwPSG2LNg1vEdE5Yp97YLupSvRNNDAwMDAgcHIzMTkwLWluZGVwZW5kZW50LW9wZXJhdG9yLWF1ZGl0APVZGquzgOQ+4QpG3dFJaYUwk82zNDAwMDAgcHIzMTkwLXJlbWFpbmRlci1zdHJlYW0tb2JzdHJ1Y3Rpb24Ahr+ohpClKwacGvba1BtUd/lhXkg0MDAwMCBwcjM1NjItb3JkaW5hcnktY291cGxpbmctcmVwcm9vZi1hdWRpdAAGYUaEiQc8NdBkMz9ssxFCi3aGCjQwMDAwIHByMzkzNC1wcjM5NTUtb3BlcmF0b3ItcmVwbGF5AFBmXFmmk/dmIo+WrwTvqLEusrr9NDAwMDAgcHI0MTAwLWJpdC1tb21lbnQtZW5jbG9zdXJlAG7mK/AfYA0UVoSLlXsxc2+kDywuNDAwMDAgcHI0MTAwLWNoaXJwLW9kb21ldGVyLXRhcmlmZgBgqNdfT+wIgXW4dcvyZxocByU/FjQwMDAwIHByNDEwMC1jcnQtcmVwYWlyLXRhcmlmZgCVudzMd/Vm0hznVKSyrohOzIcaHjQwMDAwIHByNDEwMC1ndWFyZC1jb2xvcmluZwD6U/hcSe8R5NchxVu+c6c7qEM6rTQwMDAwIHByNDEwMC1sZWRnZXItYm91bmRhcnktZXhwb25lbnQAD9z0CMOLuZPQuD34jJiSZ7J4tfA0MDAwMCBwcjQxMDAtcHJvb2YtY29tcG9zaXRpb24t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8XNgazQwMDAwIHByNDU0MS1wYWNrZWQtaW8tY2hlY2sAV+n3M95WDwuBmC/wg60KSDdW9Fc0MDAwMCBwcjQ1NDEtcGFja2VkLXRyYW5zZmVyLWNoZWNrAPAudD1CyGyuUQlpJp4+3KK0TFO9NDAwMDAgcHI0NTQ0LWNhbmNlbGxhdGlvbi1jaGVjawCReGPG7a2ixQFS2llDMslWpqwhXjQwMDAwIHByNDU0NS10cmFuc3BvcnQtY2Vuc3VzLWNoZWNrAEbiiHCMoq4kkpItCFSwroDblpxVNDAwMDAgcHI0NTQ2LWV4dGVuZGVkLWNlaWxpbmdzABp7O5t3zgsvqorROfS/CSZEgasNNDAwMDAgcHI0NTU0LWJhbmRlZC1pbnZlcnNlLWNoZWNrAMv8UHZEMOOg8abaRVEsg3PjtSIoNDAwMDAgcHI0NTU0LWdhdXNzaWFuLWNoaXJwLWNoZWNrAFBkaGrgOtj9/udKjmF92XSLsADhNDAwMDAgcHI0NTU0LWxvd2VyaW5nLWNoZWNrAOYIepjCT5UlLgEEyPiztPDe98gZNDAwMDAgcHI0NTU0LW5hdGl2ZS1mZnQtY2hlY2sAFm3TDwUwnbKu+B4U4e5KmTwb/rM0MDAwMCBwcjQ1NTQtbmF0aXZlLXN0YWJpbGl0eS1jaGVjawBNaFW7F/IhCpLumrJ4nfIQDlUhvjQwMDAwIHByNDU1NC1uYXRpdmUtdGFibGVzLWNoZWNrAKC7gR1d7c04wFtvLnHMG9rFQTWrNDAwMDAgcHI0NTU0LW91dGVyLXJlY291bnQtY2hlY2sAoWZAn7STbcBHA5fcSEIeWIQjevI0MDAwMCBwcjQ1NTQtcm9vdHMtcmVjb3ZlcnktY2hlY2sAKWDmMbKtZhQyL1tXwnqSITPsaOw0MDAwMCBwcjQ1NjgtYXJpdGhtZXRpYy1jaGVjawCOAv4g3pOOQnx8cclrNKK9N8tRSjQwMDAwIHByNDU4MC1idWRnZXQtY2hlY2sAcJ2IX9vNR5A/bd5ExMRaubmc35Y0MDAwMCBwcjQ1ODMtaGVhZGVyLWNoZWNrAGGV4z1nvGC1UBufCZ32wN86rehBNDAwMDAgcHI0NTg1LWdlb21ldHJ5LXNvdW5kbmVzcy1jaGVjawAkPZkiFH+axGbxbxV4995AGijrTjQwMDAwIHByNDU4Ni13aWR0aC1ncm93dGgtY2hlY2sAMc9DFYt5y06oivY2CK4zSSYo8Ew0MDAwMCBwcjQ1OTYtZW5kcG9pbnQtZnJhbWUtYXVkaXQASSU4pGpp5sIzSxNLDfalv6jerSg0MDAwMCBwcjQ1OTctc2NodXItZXhoYXVzdGl2ZQBjQNiaW+BhE/4r9/C5gbB6kW8GdzQwMDAwIHByNDU5OC1oZWFkZXItcmVjb3VudABqcAjPVOeMcE24k91OXDTROaXXJjQwMDAwIHByNDU5OS1mb3VyLWV2ZW50LWNoZWNrANqHz2TaZSh3AvrX/i3owCdXTUdgNDAwMDAgcHI0NjAxLW5vbmNvbW11dGF0aXZlLWNoZWNrAEgIxMaFxud09RAlktVz48faraHuNDAwMDAgcHI0NjAyLWxldmVyLXJlY29tcHV0ZQBT9alXCQKWRE3r8omuLrZ0nKGGGzQwMDAwIHByNDYwMy1zaGVhci1mbG9vci1jaGVjawBp9IbmsBeyW5om62gOnYMANHsO6DQwMDAwIHByNDYxMC1jcm9zc2luZy1yZWNvbXB1dGUARPRj+nywr2EQTOrj80WotduRKMU0MDAwMCBwcjQ2MTAtZW5kcG9pbnQtcHJvZmlsZS1jaGVjawB7NGoKVhIc5oDJzNlaBgp4AT+P8zQwMDAwIHByNDYxMC13YXJwLXN1YnN0aXR1dGlvbi1jaGVjawAUqk7im1NNqzELUmO4Gua8IB0EtzQwMDAwIHByNDYxMi1zbWFsbC1wcmltZS10aHJlc2hvbGQAnH6qfOurHywfASGLh/lphaYLGeg0MDAwMCBwcjQ2MjMtYnVkZ2V0LWNoZWNrAPCeF0DawSfu80qEydP/ea1AEUXoNDAwMDAgcHI0NjIzLW1vbm90b25lLWRlY29kZXItY2hlY2sAX3f+sV1BNwY2KLil5+EH/ofolvk0MDAwMCBwcjQ2MjYtaGVscGVyNjIxLWNoZWNrAL2dz/fP92AQ4fchTLMgd2MngtCzNDAwMDAgcHI0NjI5LXJlcGFkLWxlZGdlci1hdWRpdAAGTDvva+dn1gAQZiIKrIaV8UmuuTQwMDAwIHByNDYzMy1jb250cmFjdC1hdWRpdABAFc7eXT6aI8v0/xWJDaJF+/wpRzQwMDAwIHByNDYzMy1xdW90aWVudC1jb250cmFjdC1hdWRpdAAIb0k5f3kpgkMuRrPZOpKaTHvRmzQwMDAwIHByNDg1LXByaWNlLXJlY29uY2lsaWF0aW9uAHe27nKerdgOiPHliLdubaPP81oTNDAwMDAgcHI1MjcwLXJlZmVyZW5jZS1hdWRpdABjp/i9b4+PPrPH0YL8gv0qhjLpQTQwMDAwIHByNTQwLWxpdGVyYWwtc291cmNlLWF1ZGl0AE5pg5eHJINJsOdsksK+9o35ap5fNDAwMDAgcHI1NDAtcGVuZGluZy1yYW5nZS1kZXJpdmF0aW9uADxq0kb7XAxeyKYmVY5fvO7GTRHfNDAwMDAgcHI1NDMtYmlub21pYWwtYXVkaXQA17SiVHCLx/JJKLhjyn94xuOuvHA0MDAwMCBwcjU4OS1maXZlLWhlbHBlci1ob3N0aW5nALzIpHpC60Z7XkiTrIXJ2fRvWteuNDAwMDAgcHI2MjYtbmF0aXZlLXBheWxvYWQtYmluZGluZwDmTJG2+uS/N1ZWPa03QotmC4tFBzQwMDAwIHByNjI2LW9taXR0ZWQtZGlnZXN0LWF1ZGl0ADP9g7ggIO30Ko4sUDfeLMgiwiSyNDAwMDAgcHI2MjYtcm9vdC1tb21lbnQAoWgIaMoZVY3fBiuz6c0Aep8Nz+M0MDAwMCBwcjYzNi1mYW1pbHktd2l0bmVzcy1tYW5pZmVzdC1yZWNlaXB0ACNpPec4AaCYfID7Du0cjkWlIGiQNDAwMDAgcHI2MzctaW1wcm92ZW1lbnQtMjAyNjEwMTMAlwjI3R3V1aZXWqqUIBATegHqrL40MDAwMCBwcjYzOC1pbXByb3ZlbWVudC0yMDI2MTAxMwCC9b8r7SSoQQColE9HYbHRFLOLFjQwMDAwIHByNjQzLWltcHJvdmVtZW50LTIwMjYxMDEzAFpPyOJKsC5eKlmRYnPjowBVgAgxNDAwMDAgcHI2OTUtZGlnZXN0LWF1ZGl0AKePvd+ahYwgbOvvkNjr6cSwR8FINDAwMDAgcHI2OTktZnJhbWUtcmV0aW1pbmctdmFsaWRhdGlvbgChc6s7cGw6p0cXR0GClZT3l0F5/zQwMDAwIHByNjk5LWZyYW1lLXJldGltaW5nAJOpxQn3mi8cC0rwiuSo8DnbobnyNDAwMDAgcHI5NDYtcGluLW1pZ3JhdGlvbgAGdK4Xls/4YCvHNU2eGFdB8g/RSzQwMDAwIHByOTktcmV0ZW50aW9uLXNlZWQ5OQDOFZpqUBSazcU/Gxd0V9bKb5TRRjQwMDAwIHByZWNpc2lvbi1ibGluZC1ib29sZWFuLW5vcm0taW52b2ljZQAzzZoOchNQr5Ng5g94ot8r7WAP/zQwMDAwIHByZWNpc2lvbi1ibGluZC1jb21wb3NpdGUtcmlnaWRpdHkA2k9ysJQHs9Ilf9LIvwhXPl8BUpo0MDAwMCBwcmVjaXNpb24tYmxpbmQtZHVhbC1zY2FsZS1leGlzdGVuY2UAXHjQ7VJ0fJvqJ8mL7P3exUsNxrE0MDAwMCBwcmVjaXNpb24tYmxpbmQtbjMtZHVhbC1zY2FsZQCJroB5MBUYnW/8aJJMAlnXTuZ2MzQwMDAwIHByZWNpc2lvbi1ibGluZC1vZGQtbi1zdXBwb3J0AKEiAVgXKUuyz+1CWNWeeBhQoT++NDAwMDAgcHJlZml4LWJ1ZGdldC1jb3VudGVyZXhhbXBsZQBGTJ8j+IEwlDmqq2+h+tuNpWygRzQwMDAwIHByZWZpeC1tYXNrLWJhc2lzACdkmB8Oxfnjgktvbus5J+4PiCgdNDAwMDAgcHJlbHVkZS1saW5lLWZvcmNpbmcAXJCkRLjBWpMjOo0QmGpGYGRgTuQ0MDAwMCBwcmVsdWRlLXJldHVybi1yaWdpZGl0eQD62GoLjMj3oRT/mYxOGdkW1uVWTTQwMDAwIHByZXBhcmVkLWdyb3dpbmctY2FycmllcgD++LogQVhR0zI9X4OQEfls7eQlRTQwMDAwIHByZXNjcmliZWQtc3Rhci10cmlwbGVzAHc5H/KhhyukEh8Qd8rfU4Se+fniNDAwMDAgcHJlc2NyaWJlZC10aHJlZS1wb3J0LWRlY29kZXJzAKZ/zHLBDi9CSiwLKiKNMwhk8L1lNDAwMDAgcHJlc2NyaWJlZC10cmlwbGUtZGVjb2RlcgC/u0r9F1qSxoZ8liAJOCfwwB7dGjQwMDAwIHByaW1lLXBvd2VyLWN5Y2xpYy1pbnZlcnNlAAXG+PvEVRlGmFgJ7rVKRMHr7WNONDAwMDAgcHJpbWUtcG93ZXItbmV3dG9uLWF1ZGl0ALY0RiPJOGEMApqrZ4bO4IjF54IvNDAwMDAgcHJpbWUtc291cmNlLXNlbGVjdG9yLXRyYW5zZmVyAKxwqXJCUlP/7D6sOP7zs7tmJQ7DNDAwMDAgcHJpbWUtc3Vic2V0LWFzc2VtYmx5LXNjb3BlAEY+XUvk2kEPA0uWk6CmCn0ThEXBNDAwMDAgcHJpbWUtc3Vic2V0LXJlY29uY2lsaWF0aW9uAO4VqxbDs6DyOhdfntJ9wj+zC0xdNDAwMDAgcHJpdmF0ZS1xdWVyeS1jb25jYXZlLXJhbmdlAHr4q10hmioVWrJnnNwQZlltCAFqNDAwMDAgcHJvZHVjdC1leHBvbmVudC1nYXAAGudUWZto0P0X2lgHvPlczA7dfZc0MDAwMCBwcm9kdWN0aW9uLWRvbWFpbi1nYXAAPZJ27ICfW0m3uBqzYcr4iDpd20M0MDAwMCBwcm9kdWN0aXZlLWNvbnRyb2xsZXItYmFzaXMtc2VhcmNoAFiXFoUwUvsJPmVjseMx/3g7grHRNDAwMDAgcHJvZHVjdGl2ZS1jb250cm9sbGVyLWxpZnQtYXVkaXQAt5WD9q6xHUo7wPzYLwGoErK2tRg0MDAwMCBwcm9kdWN0aXZlLWhlbHBlci1kaW1lbnNpb24tZmxvb3IAzuOG//xwO5wOAoyuG2OMWjUZYRc0MDAwMCBwcm9kdWN0aXZlLWhlbHBlci1mdXNpb24tY2VydGlmaWNhdGUANBMpkF+vtE3XbUIwrNgS1DveXss0MDAwMCBwcm9kdWN0aXZlLWxldmVyLXJlcHJpY2UAEPGgYPnPIJu33YDqHDpyH9Cqyqk0MDAwMCBwcm9maWxlLWJyYWNrZXQtYXVkaXQ2NAAVbfXLh7vTGMKoZiUd4GzazCDRBzQwMDAwIHByb2plY3RlZC1jbGVhbnVwLWZpYmVycwCfxsKQaDfVzwd4ODX5VeHkvKgeUTQwMDAwIHByb2plY3RlZC10aHJlZS1jeWNsZS1taW5pbXVtACSth5JdTwFDttn+d86OTs6F+I1vNDAwMDAgcHJvamVjdGlvbi1jdXQtdG9vbGtpdAAU1XFROCzW3iODKmghQqUXHCs/HTQwMDAwIHByb2plY3Rpb24tZ2VvbWV0cmljLXRhaWwAf8u5ikM9JmzTIjI+3OJMNTApp8A0MDAwMCBwcm9qZWN0aW9uLXJlY3Vyc2lvbi1jaGVjawAOct+RVpTCL5+SNmhryM8ZA4S7uzQwMDAwIHByb2plY3Rpb24tcmVjdXJzaW9uLWZpbml0ZS1pbmZpbXVtAP4eYUaRbnfY9E34O378Agiy+YZnNDAwMDAgcHJvamVjdGlvbi1yZWN1cnNpb24tbGltaXQAcvvf8SI0el3DdNcIz/DHXvQz6Ps0MDAwMCBwcm9qZWN0b3ItaGVhZGVyLWRlbnNpdHkAeYkczmDq0OQZ9qmzn3zldF3oXaI0MDAwMCBwcm9qZWN0b3Itam9pbnQtaGVhZGVyLWRlbnNpdHkAq6Xp6nsh7rUDZ73G+jwbNqF1/240MDAwMCBwcm9qZWN0b3ItcGFpci1oZWFkZXItbGF3AAZyBJFGteJIkY63g3t6+ViO5P2iNDAwMDAgcHJvamVjdG9yLXByaWNlLW9yYml0LWNvbGxhcHNlAGTBKgCJoLatpy9UHudtdMW9cf6XNDAwMDAgcHJvbW90ZWQta2VybmVsLWNvYWxlc2NpbmctdmFsaWRhdGlvbgDV6gC+3WXAk3AP71NRKWuGd8ELiDQwMDAwIHByb21vdGVkLWtlcm5lbC1jb2FsZXNjaW5nAOKbFhPYfBqYyqG/e7NTesh/uDhxNDAwMDAgcHJvb2YtZXhwbGljaXQtNHAtZXJyb3IAEWWIEZJvNPu05ppgSHGjZRr1+js0MDAwMCBwcnVuZWQtdHJhY2UtcmVzcG9uc2UAJGQRhNk/IdXmzB7B7fkSIz0bW/s0MDAwMCBwc2wyNy1jb25qdWdhdGUtYW55LXJlZ2lzdGVycwCDP2xy+gphVxQHPNGKMBbIVkm8BDQwMDAwIHB1YmxpY2F0aW9uLXJldmlld3MA4qqxGUtcll08eC7YjiwPX7yvn8c0MDAwMCBwdW5jdHVyZWQtZTgtNDgtNTYA7GiLwArBygL+J8lVvpXF9Als5QU0MDAwMCBwdW5jdHVyZWQxMTItZ2xvYmFsAHW5SC/Tki3h++96gXkthoCo73ycNDAwMDAgcHVyZS1tYXRoLWF0bGFzLTQwMAAIR4EmrbWB2wzE4n1Y1sSKisAWwjQwMDAwIHEtdG9lcGxpdHotZmFjdG9yaXphdGlvbgCV9qeq3UztQ4wmqM3qvnRJf8neOzQwMDAwIHE4LWFmZmluZS1kaXJ0eS1jb21waWxlcgCRVIa4uSUsqXLazl/j4aFH2IISdjQwMDAwIHE4LWJvdW5kLWF0dGFpbm1lbnQAjc8Z13Yj+wtVpGofh6KoJgSii540MDAwMCBxOC1jZW50cmFsLWNvbW11dGF0b3ItcGFpcgAdV3CvxPYFA8JU9wIwb3Xj9OZdvzQwMDAwIHE4LWNlbnRyYWwtbWludXMtb25lLWFueS1yZWdpc3RlcnMtc2VlZDAzMzJmNAATmAhm62LLhDz+PTdzl0lBwFvyPDQwMDAwIHE4LWNvdW50LXJlZ2lvbi1yYW5rLWZsb29yAM56/MHhA3DNgOEaIMUXVNWP43YXNDAwMDAgcTgtY3ljbGljLWN1YmljLW9ic3RydWN0aW9uAN5JviiVWLPj7jQVok/qgbHXe7iuNDAwMDAgcTgtZ3JhbS1jb3JlAD/V57Ujw29imv1gXXL3UHN6MblwNDAwMDAgcTgtaG9tb2dlbmVvdXMtbWl4ZWQtZmxvb3IAKy4B4HYTtBXJbu9qSUI+RHITBzo0MDAwMCBxOC1pbnZlcnNlLWxhYmVsLXBhaXItY2Vuc3VzAJtLKx3KOGQOzY2J8F4T4XH1nnYFNDAwMDAgcTgtaW52ZXJzZS11bmlmb3JtLXRhcmlmZgBvinLljC2j1IpJxZUH6nNQ8T19YDQwMDAwIHE4LW1pbi1sZW5ndGgtY2Vuc3VzAH2aegT4qflW4s22aJEbPUkmp1tsNDAwMDAgcTgtbWl4ZWQtYm91bmRhcnktcmFuawDJawseF6K9fiFb1+mv1lO6R2/3qTQwMDAwIHE4LW1peGVkLWN1YmljLWNvdW50cwBDzBwfERteI1FaFlESVXl2rnEd8DQwMDAwIHE4LW1peGVkLXRocmVlLXJlZ2lzdGVyLXNlZWRjYmQ1ZWJjNADXl1LV/xjV9knNzVfzlx/2u0FgXDQwMDAwIHE4LW1peGVkLXVuaWZvcm0tdGFyaWZmANgaAkShlvf6TY250W909Ts+d2OjNDAwMDAgcTgtbXVsdGlwbGUtbmVnYXRpdmUtY2Vuc3VzAOyHysl8c0iUmQ24jRGLXqkCQVulNDAwMDAgcTgtbmVnYXRpdmUtY29yZS1ib3VuZAC8gIy09waRgolYgLenD60SythvxjQwMDAwIHE4LW5lZ2F0aXZlLXNoYXBlLWJvdW5kAAT73yooYjJaN75XGbSI6q0tJm8cNDAwMDAgcTgtcG9zaXRpdmUtb25lLWludmVyc2UAmCXjXxDyd2yFTjCAEfEs5R54/P00MDAwMCBxOC1xdWFkcmF0aWMtc2F0dXJhdGlvbgDYnszyyxscpcqbCjXMlQtdKyOdujQwMDAwIHE4LXIzLXR3by1jZW50cmFsLW9uZS1nZW5lcmF0b3Itc2VlZDgwOWZjMzlkAE91/a0gTm0ATuRV6pc6eAQOMhSLNDAwMDAgcTgtcmFuay1mbG9vcgCcc07Aczzrh3lSECJeN6ViFFvVHzQwMDAwIHE4LXJlZ3VsYXItY2VsbC1yYW5rLWJvdW5kAFmDh0GbrgRIYstfecfn4Gi7iIXuNDAwMDAgcTgtc2hvcnQtbmVnYXRpdmUtZ3JhbQCeZCYpVBbz8aMkEYBsunSE3HPRuzQwMDAwIHE4LXNxdWFyZS1pYmxvY2stb2JzdHJ1Y3Rpb24AGtf/wnmB5gGu+i8Zq32NG1MLC800MDAwMCBxOC10d28tbmVnYXRpdmUtd2VpZ2h0ZWQAmwC9CC4BfEAbVGw65mwT3mlF+i40MDAwMCBxOC13b3Jrc3BhY2UtcmVkdWN0aW9uAHpOv8vAys8fAMCT/NsVjLDd3eX7NDAwMDAgcWFkaWMtcm91dGUtY3V0b2ZmLWF1ZGl0AI8cexK89d17IC1DzVvOfDBho8i6NDAwMDAgcWFkaWMtcm93LWV4Y2VzcwChtdx24rreMmhIvXkwoCk5m/4XzDQwMDAwIHFxMTYtNjZwb3J0LXNlY29uZC1heGlzACNGldrxRsCwoQHGmnq1nQazghFuNDAwMDAgcXExNi1hY2N1bXVsYXRlZC1mcmFtZS1sMgC0BicCOQrQnhtUYjaQQDqd0CJ6qzQwMDAwIHFxMTYtYWRhcHRpdmUtY29vcmRpbmF0ZS1yZWFkcwDFhzcj1Sb94UK0X2b/RM0O+8KyVzQwMDAwIHFxMTYtYWRqYWNlbnQtYWRkLWJpbGwA4YmjOfE5LUg9uNDxdrid6hUilqs0MDAwMCBxcTE2LWFkamFjZW50LWNvcHkARSrUF/uU3Z3LhGco0AyUnP+hUQ40MDAwMCBxcTE2LWFmZmluZS1oZWxwZXItbWl4LXNlZWQ5OGM0NQCcC1OTk+mA9KwNrmegpjGBy7nIiTQwMDAwIHFxMTYtYWxsLWRlcHRoLXByb2R1Y2VyLWdyaWQAV4eFD2Wk8Y0/abay7l6681YRSoQ0MDAwMCBxcTE2LWIxLXByZWZpeC1yZWFjaGFiaWxpdHkA9w8XXQma0aZzOxsCjMDjJacR5uI0MDAwMCBxcTE2LWIyLW9ic2VydmF0aW9uLWtlcm5lbADOCwyKwL5Nn7C1jnt2aK2R8YeyADQwMDAwIHFxMTYtYmlkaXJlY3Rpb25hbC1zd2VlcHMAwCu+Ftbb28lmN2pUQcCVdcjOU/g0MDAwMCBxcTE2LWJsb2NrLXNjYWxlLXNjYW4APMmOU5H6kskuuT/6Dowin3xtiTY0MDAwMCBxcTE2LWJvcnJvd2VkLXJldXNlLXN0YWJpbGl0eQA8IuyoN9GDwaKqix1IyrPz2M9PPzQwMDAwIHFxMTYtY2FsbGVyLWdyaWQtcmVzZXJ2ZQBDL+KDS2AwgRrJ8AOwZKgQ0SKEHzQwMDAwIHFxMTYtY2FsbGVyLWluc3RhbGwABH+EflF8e7QxFNTKVl46y+ulIk40MDAwMCBxcTE2LWNlbnRyZS1saWZldGltZS1ib3VuZGFyeS1hdWRpdADpZDrhbGmP3+2UGrAGws80MuhE0zQwMDAwIHFxMTYtY2hpbGQtZGVmZWN0LWJvdW5kAM8ySJUlkOObss8HSRgOOM8A94mtNDAwMDAgcXExNi1jbGlmZm9yZC1kZW5vbWluYXRvcgDGQrISrqG0rkdEckQFNiLOu+xlJTQwMDAwIHFxMTYtY2xpZmZvcmQtcmluZy1vYnN0cnVjdGlvbgCLgH6hCe5sWNU5IzwjtlFOfMPUCjQwMDAwIHFxMTYtY29tbW9uLXF1ZXJ5LWZyYW1lLWNvc3QA2mtuFnjUVXzo8749/kzBt+9glyY0MDAwMCBxcTE2LWNvbXBsZXRlLWNvc3QA/t7pDw7ZWsfT1II9ekaAZ6xalm00MDAwMCBxcTE2LWNvbXBsZXRlLW5hdGl2ZS1kZWNvZGVyADoPmkSMJ7OfPrpSLeRoXt1P8ho5NDAwMDAgcXExNi1jb25zdW1lci1idWRnZXQtaW5kZXBlbmRlbnQA/1CmTdwl76RlllVuTmVNDUUJH4U0MDAwMCBxcTE2LWNvbnN1bWVyLWluY2lkZW5jZQAetUEj7X/XjH89AE7YQ/aF9W7HDjQwMDAwIHFxMTYtY29vcmRpbmF0ZS1jdXQtZGVjb2RlcgC2hH3JbF+b0lCPFhWdktNj4DfOuTQwMDAwIHFxMTYtY29vcmRpbmF0ZS10YXAta2VybmVsAID0+yf9J58usZlpsvtzHMQYDfDONDAwMDAgcXExNi1jdXJyZW50LWZyYW1lLWNvbnN1bWVyAJDc9CSybRTL+G1IFadHdwrzicT5NDAwMDAgcXExNi1jdXQtY29lZmZpY2llbnQAz/y6W5m0aKsiinWdAjQryB0UNB00MDAwMCBxcTE2LWN1dC1vcGVyYXRvci1hdWRpdABF7JJ1HWm/CdqEWanz/aPYWwoeNTQwMDAwIHFxMTYtY3V0LXJldGVudGlvbi1jZW5zdXMAqdKo/M9OrWj/XR0sdwCMtfQiVrc0MDAwMCBxcTE2LWRlY29kZXItZXJyb3ItYnVkZ2V0AERr00SofCLyLE/obbzLCsCML0PrNDAwMDAgcXExNi1kZWZlY3QtaW5kZXBlbmRlbnQtYXVkaXQA9V5Djpc1OlcbDcCgdfZc6aItcaE0MDAwMCBxcTE2LWRpcnR5LWNvbW11dGF0b3IAELbJd6QOVlcD7xoqiZmWOmu0UaI0MDAwMCBxcTE2LWRpcnR5LWhlbHBlci1tYWduaXR1ZGUA7OWNHsDm/nNgNqwrjEsdT9cpSsY0MDAwMCBxcTE2LWR5YWRpYy11bnJlYWQtbWlub3JzAHissxMprTDKbynZ9W6UMFx+hyDaNDAwMDAgcXExNi1laWdodC1heGlzLXJlYWRzZXRzABOQs9hYDJr26+CxZyLOcruPe2gQNDAwMDAgcXExNi1laWdodGZvbGQAd55yGgic5nGUFaJLjxrT0YnQp840MDAwMCBxcTE2LWVpZ2h0aC12YWx1ZQBur+LEOhLCUabjDoQbNZH/xuqlIzQwMDAwIHFxMTYtZW5kcG9pbnQtYm91bmQAsd7G+/WjDjkpTk1A/A2LjrEbwbw0MDAwMCBxcTE2LWVudHJ5LWZyYW1lLXRhcmlmZgAPYBJ+Pjsd/2lcT4BzbT7dRi/c/DQwMDAwIHFxMTYtZXZlbi1tYXAtbmF0aXZlLWN1dABlyPi4K8vh6k10wAbQADIXtLRwEzQwMDAwIHFxMTYtZXh0cmEtcXVlcnktcmVzaWR1YWwAZjmOz3NRYyBYKpc6ReIhiW1d9Z00MDAwMCBxcTE2LWYwLWFsbC1wcmVjaXNpb24AjJs34pvDVmA4ppLhl34EK+BlnIw0MDAwMCBxcTE2LWYwLWIxLWV4YWN0LWdyaWQA1bCq4/Y0GgeDnsHkDuJ5oJK3Yl80MDAwMCBxcTE2LWYwLWRpcnR5LXJheS1tYWduaXR1ZGUAC3fXQcg45I5cAlB3SrihfERAsv40MDAwMCBxcTE2LWYwLWZpcnN0LWNhbGxlcgDlpJlZ3xSJDUyBO9YO/Nw+ZdQFljQwMDAwIHFxMTYtZjAtcGh5c2ljYWwtcm91bmRpbmcAm1cnZ7oHefMYqBNyM6vk9pKuRUQ0MDAwMCBxcTE2LWYwLXJvdW5kZWQtc2NhbGFyAHd0OLdjupxkCiTUUXXisVRn1pATNDAwMDAgcXExNi1mMC13aG9sZS1zdGF0ZS1jb2xsaXNpb24A8TCIz8ooGuZy49TAUuA+r5Pe4bE0MDAwMCBxcTE2LWYxNy1kZW1hbmQtcHJvamVjdGlvbgBw34RAnwiyku7y4gwOeu7pdU0jsTQwMDAwIHFxMTYtZjE3LXBhaXItYmlsbACGLJwTOuefhMQFDqYEsFuXn9eM6TQwMDAwIHFxMTYtZjE3LXNjYW4tYmlsbACIBd/YFAuKDjhrDElsLfvrS/8yQTQwMDAwIHFxMTYtZmF1bHQtc3VtAA6poAkVTapFC1lC7TLWZXVeevXPNDAwMDAgcXExNi1maW5hbC1wYXJ0ADTnQ13APzcYxrF/Je+tzj6P3csbNDAwMDAgcXExNi1maW5hbC1yZWNvcmQtb2JzdHJ1Y3Rpb24Akeeh5f90k5glVd5ASGgqTIb+GN40MDAwMCBxcTE2LWZpbml0ZS1jaGlsZC1oYWxmYWRkAKWNOsT2JUzT93tsFEAUYM5CjQ/YNDAwMDAgcXExNi1maW5pdGUtZHlhZGljLWZvcm1hdADIBDVmMJmuvWB5USHMmQNUN6XpyDQwMDAwIHFxMTYtZmluaXRlLWhhbmRsZS1jaGFyZ2UA6UaqJDvMelVLYnwZzDoIM5fFZFM0MDAwMCBxcTE2LWZpeGVkLXNjcmF0Y2gtYWxsb2NhdGlvbgBZ7e2TGdAEcHTwP8yUWXeTWDW/IDQwMDAwIHFxMTYtZm9yd2FyZC1sb2dnZXItb2JzdHJ1Y3Rpb24A7ezA5R45b4u2RIuMYt8PYeieWyg0MDAwMCBxcTE2LWZvdXJ0aC1tb21lbnQtY2FwYWNpdHkATMm7wR5GjGjqvUFHa05/bHBcFn00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cmF0aWMtYWZmaW5lLXBhY2tlZADrPA1ZRilaTtSSJydUs1p4ePFeEjQwMDAwIHF1YWRyYXRpYy1hZmZpbmUtcGVyZm9ybWFuY2UAGVRrq0pNPFV4qoyrKAqsxVMshiU0MDAwMCBxdWFkcmF0aWMtcmVhZGVyLXJlc3RvcmF0aW9uAHbX/XCBm84ZwiyU7bflR8BpTTEeNDAwMDAgcXVhdGVybmFyeS1wb3J0LWJvcnJvd2luZzU1ACbwGSlOkgWBjaKbemLtOTneR6/jNDAwMDAgcXViaXQtY29tbXV0aW5nLXJlcGFpcgBbZb89AT0hvsjZNSaP2WoHEpGLXzQwMDAwIHF1ZXJ5LXByb2plY3Rvci1pbnRlcmZhY2UtMjAyNjEwMjIALXCV+EPwhpCHwPBGFdt+PQ6urVo0MDAwMCBxdWVyeS10aGlubmVkLWNvbnRyb2xsZXJzADaHgANSh7rQuOnNGp99pzIj36RWNDAwMDAgcXVpbmFyeS1yZXNvbmFudC1kaXNqb2ludG5lc3MtcmVwYWlyADCOwNTGVb+YW+riQ6nOy/hoQpNRNDAwMDAgcXVpbnQtdG9nZ2xlLWNvbm5lY3RvcgC6HOu3+7AFG4CFRX+EE353Dr00BDQwMDAwIHF1b3RpZW50LWtlcm5lbC1mYW1pbHkAhc1HfUrl59TOZ9QAAk2gBKgKm500MDAwMCBxdXRyaXQtbXViLXN0YWJpbGl0eQAfefyz96SveEo0FduBsoJ2CHtqRjQwMDAwIHIyLW11dGF0aW9uLXBhdGgtY29weQBKNaAtIe/QvnjVOjtNU8gMaVBFUjQwMDAwIHI0MjAtYWRqYWNlbnQtYS1zZWVkMDAAkE1zw5V8keCp94twvnndbPFK6l80MDAwMCByNDIwLWFkam9pbnQtY29tcGVuc2F0aW9uAMXpOhDVQRadhT9nMf3kXsHPU5MXNDAwMDAgcjQyMC1hbGwtbGVuZ3RoLWNsZWFudXAtZmxvb3IA2ipgFGqoqpIp+jV9xeqHfBb+fJE0MDAwMCByNDIwLWJsb2NrMy14b3IA1Vxeh20c+6z2XzqaGB5zq395wzo0MDAwMCByNDIwLWJsb2NrNC1yZXN5bnRoZXNpcwCbBEku2VGlbCiDNJ3JdAtB+F6QGzQwMDAwIHI0MjAtYmxvY2s0LXRydXRoLWF1ZGl0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uyhNHPvtnr3oxYoEWF995Z83NDAwMDAgcjQyOS1jb250cm9sbGVyLWFjY291bnRpbmcAI6B8LtsV8ocAjyc+VOq/ZSnTmWM0MDAwMCByNDI5LWZ1bGwtdGFyZ2V0LWludGVyZmFjZQBAkT4mPYt4Fq8wCtDJpIsJJf0dYjQwMDAwIHI0Mjkta2VybmVsLWVuY29kaW5nLWJvdW5kYXJ5AKgXR7EQL8S74dx6NQY2iuq1HOIjNDAwMDAgcjQyOS1zaWduZWQtcmFuZ2UA8XCDV8wfPuHxJ1cuZtUStF/RUSI0MDAwMCByNDM3LWFkbWl0dGVkLWNvdW50LWNvbnN1bWVyAEfJvA1t1CsacJIJo5UbRDXXQHzgNDAwMDAgcjQzNy1hZG1pdHRlZC1jb3VudC1wb3dlcgDAsdE203r7ZEAfw0GlQKhM/0jy4TQwMDAwIHI0MzctYWZmaW5lLXR3by1jaGlsZC1ib3VuZADLd2ehsTLRbuow2E6ERd6j9CKgOzQwMDAwIHI0MzctYmFkLWNsYXNzLXBpdm90LWF1ZGl0ACW33zKvJDtU+N55CDHZUXXOjLyDNDAwMDAgcjQzNy1iYXRjaGVkLWhpZ2gtcXVvdGllbnQAPKGy3IySFchABaiPh4z+KDtpu5g0MDAwMCByNDM3LWJpbmFyeS1kaXZpc29yLXJlYWxpemF0aW9uAPn0aH6EG649BlcvgBnAHAaJhVlYNDAwMDAgcjQzNy1jYXJyaWVyLWludGVncmF0aW9uABZ9VxBGQq07LAl6T/GceQC9TDKeNDAwMDAgcjQzNy1jYXJyaWVyLXF1b3RpZW50LWN1dABpahCdcOgRQTbo0cKFGhY4GadZ8TQwMDAwIHI0MzctY29tcGxldGUtdHJhbnNwb3J0LXRhcmlmZgDv0J/pmbbjPImatWFaJRzos4vs2zQwMDAwIHI0MzctY29tcG9zZWQtYml0LWluZGVwZW5kZW50LWF1ZGl0AFNTJ/1zT3AFr6pP4Gnbj6OyxAmWNDAwMDAgcjQzNy1jb3B5LWVjaG8tYnVkZ2V0AEGyNhdAhbBgxUtDoB/osWOQqPVINDAwMDAgcjQzNy1kZXNjZW5kYW50LWluZ3Jlc3MApVWxymCU6KL+ty7Mnh2b45M8skk0MDAwMCByNDM3LWRlc2NlbmRhbnQtc3RvY2sA9dVfARGGUqLXjc5W5svo+eUbJn40MDAwMCByNDM3LWZpeGVkLXBhaXItY3NlAE0lr+awtZGiSFnEHN9/79ig6pVLNDAwMDAgcjQzNy1oaXN0b2dyYW0tbWFzcwAKeFWtbeLWNMXmIwmOBMnkhNlfojQwMDAwIHI0MzctbGVhZi1kaXNwYXRjaABR59pRqAmrcZU2IsQw7MvJL22BxzQwMDAwIHI0MzctbmF0aXZlLXRyYW5zcG9ydAABYpaZFDEnUpLM7A1XZAWTt1UD6jQwMDAwIHI0Mzctbm9uemVyby1oaWdoLWxlYWYABYTDUHtrSMjNnP4o+ejTvq02F3E0MDAwMCByNDM3LW9xNC1jYWxsZXItYmluZGluZwCMCOwcGokICMqADkdyzDhW4/tmRTQwMDAwIHI0Mzctb3JkaW5hcnktdDM2MACKNtRb6zrUUsXE54XJvXHasR95ujQwMDAwIHI0MzctcGFyYWJvbGljLWNvcHkAv9bs6NQ8oDQnlmHsk/nKEHsqPu40MDAwMCByNDM3LXBhcmVudC1zcGVjdGF0b3ItYmxhbmsArj0b6uL3s2uwjb7NJmj898i3Mbg0MDAwMCByNDM3LXBpLWNoaWxkLWNvbnN0cnVjdG9yAIck6phwMKmkUXVm2gBULep83hIlNDAwMDAgcjQzNy1wb29sZWQtbmF0aXZlLWludGVyZmFjZQB60598kNsBIHCQ+KKfepqEWF5cBjQwMDAwIHI0MzctcHJlZml4LWNvbnN1bWVyLWZ1c2lvbgBhxLcM6IVdB8RlWvu/UuisCe8nLzQwMDAwIHI0MzctcHJlcGFyYXRpb24tY29tcG9zaXRpb24AiGDMPYTSnB/0lDTd93YOvedISVo0MDAwMCByNDM3LXByb2dyYW0tc3RvY2stcGF0aAAu9oAb5oftuCqYbZ1RSLTbtUQ4mzQwMDAwIHI0MzctcmVwbGljYS1pbmRleGVkLWVtaXNzaW9uACYh+vVXMHFa0Idv04sfzxLHA/JBNDAwMDAgcjQzNy1yZXNpZHVhbC1jb250cmFjdAB0wOi5CXtzqBs4dijZ34J8k65oyDQwMDAwIHI0MzctcmVzb3VyY2UtZW52ZWxvcGUAvp/FZSbfdDg6850XJl8UjPfdq6s0MDAwMCByNDM3LXJldmVyc2Utcm93LWNvZWZmaWNpZW50ALCbeYgZoYvgJAzALpIYiQh2nLtUNDAwMDAgcjQzNy1yb290LXN0ZXAtaGFuZG9mZgCzWb8FPdvWHO1/Up9su6ocOiUqIjQwMDAwIHI0Mzctc2hhcmVkLXJhZGl4LXF1b3RpZW50AEgFOXZ0ETbZTpF8YaNYL+qdMu/uNDAwMDAgcjQzNy1zaGFycC1zdG9jay1lbnRyeQChd/rR/11moHJL+kI+JtUdG2xBKzQwMDAwIHI0Mzctc291cmNlLXByZXBhcmF0aW9uLWJvdW5kAGNNAFA7ij7ZHSVUWOboHvqr0TNMNDAwMDAgcjQzNy1zb3VyY2U4Ny1maWJyZS1tdWx0aXBsaWNpdHkAnPwcIMhSJ94kq3a4OixaMPOQ74I0MDAwMCByNDM3LXN0cmVhbWVkLWxlYWYtd29ya3NwYWNlAHsR31N9x8eK/BT0MS8J4PiaWFSpNDAwMDAgcjQzNy1zdHJlYW1pbmctZGlyZWN0b3J5ANn1eo32OWrTAJTFSnGwTSGPQHZxNDAwMDAgcjQzNy10d28td2luZG93LWNhcnJpZXIAqegGDlEEpfBwlTbEdLocpfvQkW40MDAwMCByNDM3LXVuaWZvcm0tY29weS1yZWR1Y3Rpb24Az8tF8ylMtdjaI1bD6uxQLyLu04Q0MDAwMCByNDM3LXdob2xlLXdvcmQtcmVmaW5lbWVudADO50QFz7erQOqc9BHlh5Zs0O77JzQwMDAwIHI0MzgtbmF0aXZlLXJlaG9zdADJUrgduZiaOIzBVTMg6qSMFbd9tjQwMDAwIHI0MzgtcmFuay1kcm9wAEANThdaG7RRycX8Lv+DOPwl08K/NDAwMDAgcjQzOC1yZWhvc3QtcHJvamVjdG9ycwDCr6TThwD9E2zdr4pTxikgfyB3eDQwMDAwIHI0MzktYWJjLWhvc3RlZC1pbnZvaWNlACDuLF9nzyrUbdxDTB7WkoFFCHqjNDAwMDAgcjQzOS1hYmMtc2VtYW50aWMtYnJpZGdlAPIjQHcq4ADzA0Zx10kG+E5Gl4Y0NDAwMDAgcjQzOS1hYmMtc3Rhci1jb21wb3NpdGlvbgCg6yYwwweiXWnhIqzJRqHbNUR4EDQwMDAwIHI0MzktYWJjLXpyZXdyaXRlLXNlZWQxNgBRZIHdT/c2JlSikNdGKUH6omxBATQwMDAwIHI0MzktYjUwOS1ib29sZWFuLXNlZWQwNQDGCyGNUjXTp8kA8Es3cMJY92uUYzQwMDAwIHI0MzktYjUwOS1pbnZlcnNlLWZvb3RwcmludC1zZWVkMTkA34hHtb94rnmtTScn5bw4I1cimvU0MDAwMCByNDM5LWI1MDktbG9jYWwtbWluaW1hbGl0eS1zZWVkMDYAVxK42Xh/EH1VaLOcoSVyWmG5Sak0MDAwMCByNDM5LWJibG9jay1mcmFtZS1iYXJyaWVyALX5CE/V0N5h/29PUXmZuJwuOaBRNDAwMDAgcjQzOS1ibG9jazEtc2NoZWR1bGUADw+bkG9L5d72Kvuvx4Bew+YPjNg0MDAwMCByNDM5LWJsb2NrNTA4LXNjaGVkdWxlAPYIht0kOgFlyQa+k8kyxB/NHQUvNDAwMDAgcjQzOS1ibG9jazUyMS1mYWN0b3IAU6rWQVjMSCeBpiJ3eJzX+mGzREs0MDAwMCByNDM5LWJsb2NrNTIyLWZhY3RvcgCYlPzB0qkI/m89PVV2IwdSXmE+QTQwMDAwIHI0MzktYmxvY2s4LWludGVnZXItZmFjdG9yAFpPR71xtFMYanWU/ii5eJah/PFeNDAwMDAgcjQzOS1ic2VjdGlvbi1tdWx0d3JpdGUAwF2Jx4UjDn28yNlBvUL1KEap3M00MDAwMCByNDM5LWJzZWN0aW9uLXN0YXJzLXNlZWQwMQDc+HuuRSlgKZ91hgqVc6lq9nmTyzQwMDAwIHI0MzktYnNlY3Rpb24tc3VydmV5AKpHIxeU1TB/eIxEE71gf30+CpPeNDAwMDAgcjQzOS1jb2FsZXNjZWQtbGVnYWwtam9pbgCNXHB0KsnycWEXZTVnkAe9koRkszQwMDAwIHI0MzktY29weS1wYXRoLXNoYXJpbmctYmFycmllcgD4g7nYQ6kDg0hnp2zhMlQ7cI2eLDQwMDAwIHI0MzktY29weXNoYXJlLWgyc2VtLWFkbWlzc2lvbgDh3hafA9FRV4Rb22oePbgfP/EeoDQwMDAwIHI0MzktY29weXNoYXJlLW9wdGltYWwtbWF0Y2hpbmcAwus2UMsGKDHPsO9VQe37+UJ8LxU0MDAwMCByNDM5LWNvcHlzaGFyZS1wcmljZWQtd3JhcC1zZWVkYWFhM2U0MAD2CyTB7Q0p07Hm1RpdaQbOfwTUIDQwMDAwIHI0MzktY29weXNoYXJlLXN0YXItY29tcG9zaXRpb24AD6ms3HovDw2a3NMdlE+4c8rno3w0MDAwMCByNDM5LWRlZmVycmVkLWlkZWFsLW9wdGltdW0AE6QwCGhu63zA8HH+AHbJOgM5qaY0MDAwMCByNDM5LWRlZmVycmVkLW5hdGl2ZQC4a55Cmw795t6/HdG+wF/oAS1ySDQwMDAwIHI0MzktZGVmZXJyZWQtdGFyZ2V0LWJhc2lzLXNlZWQwNgCEtXZuDoFIGUQi7yu+bAGS3CfVJTQwMDAwIHI0MzktZGlydHktcGFja2V0LWFkYXB0ZXIAsZ84C//4xiLEDdkeTf6/vvdlBhU0MDAwMCByNDM5LWRpcnR5LXdvcmtzcGFjZS1mcmFtZS1ib3VuZAAAFj/+UX8hlVNHeix7+6VM/TovZjQwMDAwIHI0MzktZG9ub3Itc2VwYXJhdGlvbjE3AANRZk/G0L33njjF6GKJtwi1VDVrNDAwMDAgcjQzOS1kb25vcjQ2Ni1lbmxhcmdlZC1zZWFtAKQcZvL2ipTS5W55IyeoJ5fTsHFMNDAwMDAgcjQzOS1maXZlLWN5Y2xlLXNlZWQ5ZjAxAHM/qPaz6zpQawWcXHNRhvDmmxPCNDAwMDAgcjQzOS1maXZlLXdpcmUtcHJlZml4AP5BFyry1MVfZW0ezT9/VZ5cyz6oNDAwMDAgcjQzOS1mb3VyLWJsb2NrLWNvbXBvc2l0aW9uAM0lfvimbQR+pwOiqVz6lK9tijTaNDAwMDAgcjQzOS1mb3VyLW9taXNzaW9uLWJvdW5kYXJ5AKGVRO9y3jrQA2iJTQ2PG2O/6jJnNDAwMDAgcjQzOS1mb3VyLXdpcmUtcHJlZml4AN9iwyS/KqI6SMI/hZ4LcHb5wql2NDAwMDAgcjQzOS1mcmFtZTI2Ny1zZWVkMDEAdDHNLeE81KLzWETebakO3zpi5yA0MDAwMCByNDM5LWZyYW1lMjcyLXNlZWQwNgAD84K9mCvK24VuImjxL+JIEMWWLTQwMDAwIHI0MzktZnJhbWUyODEtc2VlZDE1APi+qmNt8MNtVfB+kMjbmnjOdkF2NDAwMDAgcjQzOS1mcmFtZTUwNi10d28tZmFjdG9yAOrREP1LLXp2HfET4wcai/Qt1Yz3NDAwMDAgcjQzOS1mcmFtZTUwOC1pbnZlcnNlLWN1dC1zZWVkM2IADyqNjzrCC/UT2JGpFXDM6NAJGNY0MDAwMCByNDM5LWZyYW1lNTA5LXNlZWQwOACV2i2c2wevbmO6gdOyHpe5A7ZqyjQwMDAwIHI0MzktZnJhbWU1MTktc2VlZDAyAI8PNFMOelbyFLO4TIqjjjVYIGHcNDAwMDAgcjQzOS1mcmFtZTUyMABGm9Y9HT0vCSMCqACcFuQOY1MZRjQwMDAwIHI0MzktZnJhbWU1MjQtc2VlZDEzAHM9BpGkwHsMLb05j6ZZXrgrKTAaNDAwMDAgcjQzOS1nbDUtc2hvcnRlc3QAQi4kSgzOG6NK+Q2XXXHWNkqAnkY0MDAwMCByNDM5LWdsb2JhbC1wcmVmaXgtYWRtaXNzaW9uAOvGJZhLx3nl8HkSezncbO9mUmDPNDAwMDAgcjQzOS1oZWxwZXItZGVzY2VudC1zZWVkMTUAv6Q2ncc3TGi8HhvHBAhyxqw47dc0MDAwMCByNDM5LWhlbHBlci1tYXRjaGluZwBIzTCPzGewHfDNdfyEiXmZt9XQUTQwMDAwIHI0MzktaGVscGVyLXF1YXJ0ZXRzLXNlZWQwNwBYDu2l8v9e+RyRY4mQl0dQUmugQTQwMDAwIHI0MzktaGVscGVyLXN0YXJzLXNlZWQxOQDxyGDkzVP46CoUsbPPRaDnZZ7IbTQwMDAwIHI0MzktaGVscGVyLXRyaXBsZXMAVU/njWEmkGJ4mEYqSv3KeAJiASw0MDAwMCByNDM5LWhlbHBlcjQ2OC1sYXRlLWN1dADtrXf5qwtP1646ECp/JoI7hkniRTQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtY29weS1jb250cmFjdAAF7Lm/KQW3EIlFULBx9eJ9oSyn6jQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtbmF0aXZlAGrKfQf3nO9ql/sZeFKpaZTdhEuRNDAwMDAgcjQzOS1pbnRlcmxlYXZlZC1wYWNrZXQtcm91dGluZwBgbBpNXdtuYEyL8WtVRYKOtAgVBDQwMDAwIHI0MzktaW50ZXJsZWF2ZWQtc2NhdHRlci1zZWVkMTYAnHb5Vbra8Vg7fyLYJzE96Oe37w00MDAwMCByNDM5LWludmVyc2UtZC1lbnZlbG9wZS1zZWVkMDAAzYp9pVLQxMlWN/oOcUyHKXmy2480MDAwMCByNDM5LWpvaW50LWxhdGUtZW50cmFuY2UtYm91bmQAHdI7UD7Ekz1oU5H+OS6fpcgH51Y0MDAwMCByNDM5LWstY3Jvc3MtdGVybS10YWxseQA4yCvMUoUaeyHNTfKp2sF6KedTxTQwMDAwIHI0Mzkta2VybmVsLWVudHJhbmNlLWNsb3N1cmUA1ZF9SfULaYQQ2bX2lWravgb9KwU0MDAwMCByNDM5LWxhdGUtZW50cmFuY2UtY2Vuc3VzLXNlZWQwOQAZ4iQecvqX3U1+ncDPn0SlYojDcjQwMDAwIHI0MzktbGF0ZXItcmV0aXJlbWVudC1jdXRzAKCzOg3gU4HW8ZhMVXWgdIzcyid6NDAwMDAgcjQzOS1tYXRjaGluZy1uZWlnaGJvcmhvb2QxMwCtG0VCg9BWzQgjl7vQ0Z3iCsVf+jQwMDAwIHI0MzktbXVsdGktZG9ub3Itc3Rhci1hYnNvcnB0aW9uALx+M9/p93YRjTENmZ1q/wY/kkUfNDAwMDAgcjQzOS1tdWx0aWNvbHVtbi1uYXRpdmUAA3jM0jBiHJYWdZWJURf0JLjyqjs0MDAwMCByNDM5LW5ldXRyYWwtaGVscGVyLWNoYWluLXNlZWQxNwBJmtOqptCPVvYFijgiRQCupBCQnTQwMDAwIHI0MzktbmV1dHJhbC1taXhlZC1zaGVhcnMtc2VlZDEzAKy5fZD4r6Q1dPExv8iC2fwcT1aINDAwMDAgcjQzOS1vbWlzc2lvbi1hdGxhcy1zZWVkODEAYIN8VfRgDoErYQZZLG6pE3zKO4Q0MDAwMCByNDM5LW9uZS1idWZmZXItcGFja2V0AL+/aMs8H9Kd0ERexR9SDLFjFs55NDAwMDAgcjQzOS1vbmUtc2xvdC1tdWx0aWNvbHVtbi1pbnRlcmxlYXZlAIMYTpJG/+0XtDFn+p8txLIkEquDNDAwMDAgcjQzOS1vcHRpbWFsLW9taXNzaW9uLXByb2Jlcy1zZWVkNjYAIll6gGEk7Sbw6g2hAvY1nwXKbJc0MDAwMCByNDM5LXBvc3QtaGVscGVyLXNoZWFyLXNlZWQwMwCHGf4QlBUqXpYRMRRQwY5t6TUyoTQwMDAwIHI0MzktcHIxMDE1LXJldGVudGlvbi1zZWVkOTUAkvdaGqwhNIAyinw1R6pdddPLLPI0MDAwMCByNDM5LXF1YWQxNy1zZWVkMTcA8puDE2/W9OPWp5VsFYblkG8EZ700MDAwMCByNDM5LXJlc2lkZW50LXBhY2tldHMAaXvznxKFturgo9h5CL3/BrZoqN40MDAwMCByNDM5LXJlc3ludGgtZnJhbWUtc2VlZDEwACgUb6vYVVwUp8nru8u8ZoFSiOFSNDAwMDAgcjQzOS1zY2FsYXItaGlzdG9ncmFtAL593vAbSIbdW9bC0EF1rnQ7AKbONDAwMDAgcjQzOS1zZW1hbnRpYy1kLWNvbnRyYWN0LXNlZWQxMABdYMuQTgXJ8CrMw+LFX4ksmld1cjQwMDAwIHI0Mzktc2VtYW50aWMtZC1uYXZpZ2F0aW9uAD2n6+/yO2PCCHWE/QJvfSNxlG3SNDAwMDAgcjQzOS1zaGVhci1jb21wZW5zYXRpb24taHlwb3RoZXNpcwBnpp4ohoQXaWpMViQCdm/w69dyPzQwMDAwIHI0Mzktc2luZ2xlLWNvcHktaW50ZXJsZWF2aW5nAOoTL5WMJR0i1rtunTXtHIsZZHENNDAwMDAgcjQzOS1zaXgtd2lyZS1ib29sZWFuAKN47ojW3jkyVrkzZnFadwlljazJNDAwMDAgcjQzOS1zb3VyY2UxOS1kdWFsLWZyYW1lLW9ic3RydWN0aW9uACrGdh2glSBFoWw9OTKhcaCarpv7NDAwMDAgcjQzOS1zb3VyY2UyMi1kdWFsLWZyYW1lLW9ic3RydWN0aW9uAIUAFf7OOHevLJm/eh60qKjm0cAfNDAwMDAgcjQzOS1zdGFnZWQtcmV0aXJlbWVudC1ib3VuZGFyeQBT0GTzaMYDuMv/VZQCgqza+SnK6TQwMDAwIHI0Mzktc3Rhci1rZGVmZWN0LXNlY3RvcnMAF99xh4FsYm7OQ8sV/2iT9Jrvsw80MDAwMCByNDM5LXN1YjEway1zaXh3YXktYW5kLXN0YXItZHVhbC13aXRuZXNzZXMApuMcspF8D3bb7E1Jl48SlQlBisM0MDAwMCByNDM5LXRhcmdldC1jbG9zZWQtay1yZXNpZHVhbACYEAI10BQtRD/Apc5THL+p8d6w5TQwMDAwIHI0MzktdGFyZ2V0LWNvbXBlbnNhdGlvbgAwmyE1BCw5yK4ayzDdFF/XAADhyTQwMDAwIHI0MzktdGFyZ2V0LXJldHVuZS1zZWVkMTQA2N74SGvn+eiv+ylb13TvvItYVrY0MDAwMCByNDM5LXRlcm1pbmFsLXJlcGFpci1iYXJyaWVyAPD51QpDy7MHMLXiwYATXduUKTLINDAwMDAgcjQzOS10ZXJtaW5hbC1zdGFyLXJlc3RvcmF0aW9uAOO4eNmWo3y5JQ812s5SaP1JxbnANDAwMDAgcjQzOS10aHJlZS1vbWlzc2lvbi1kaXN0YW5jZQC34gAJL0w8Q7uaMupdv6YeYAuBlDQwMDAwIHI0MzktdHdpc3RlZC1uYXRpdmUtYXVkaXQAPlygsKh9T8gfgzXpkmldAxqVAjI0MDAwMCByNDM5LXR3aXN0ZWQtc3Rhci1hYnNvcnB0aW9uLXNlZWQwMgDWfuknlB7Msw//V57R/6jIYCGF2DQwMDAwIHI0MzktdHdvLWNlbnRlci1kZWZlY3QtcmVsYXktc2VlZDYzZTkAOJCis7Ew4PWXEcH8/FgxnO0aWEs0MDAwMCByNDM5LXR3by1zaWRlZC1jb21wZW5zYXRpb24A+qJ5Z9ztj0UU66skmgJBNK8fcCg0MDAwMCByNDM5LXR3by13cml0ZXItYWJzb3JwdGlvbgCmmLbJIL9L6vIML7mxFtyT6y37ZzQwMDAwIHI0MzktdHdvLXdyaXRlci1yZWZyYW1pbmcAV4Y9Eo+P0n9HjvYDA+Tp8Ar/MIQ0MDAwMCByNDM5LXozdG8yLXNlZWQxMwBzxDFHGZB3+H3GIQ9jooWffZK41jQwMDAwIHI0ODAtbGVhdmVyLXJhbmstYmlsbAASNW5aghAPYZrwkvdBm5DCrXD7ATQwMDAwIHI0ODAtb3duZXItb3B0aW11bQDHIupAIOdzGO9m7zWDl/myLhU+TTQwMDAwIHI0ODAtcHJpdmF0ZS1jZW50ZXItYWRqb2ludDgwAFJ63HVYNKn9vDcP+UgDha1z3P0xNDAwMDAgcjQ4MC1xbm9kZS1zZWVkMDIAJwjB3gm/siUNLjkTvgOaTiiT6Ew0MDAwMCByNDgwLXFub2RlNS1zZWVkMDUAinHRtA9S/SPAOvz6bgBBt+w/kd00MDAwMCByNDgwLXFub2RlNi1jb21wb3NpdGlvbgDjk3aCNSJXIugbb29re5fZZhUU4TQwMDAwIHI0ODAtcXVhZC1zZWVkMQBMhNJmgPXbwU3XivDjm0bSR+fpWTQwMDAwIHI0ODAtcXVhZDEyLWV4YWN0LXNlZWQxMgAktFhlIsL4zWeJzBm2kZKmFirmHDQwMDAwIHI0ODAtc2hhcnAtY2hhcmdlNTM1AAxUn7qUC0jVn9iVyVuoNqOlLrONNDAwMDAgcjQ4MC1zbGljZWQtbWluaW1hbC1mcmFtZXMAU567CCjimLi20DISni9rrNDsXrU0MDAwMCByNDgwLXNvdXJjZS1pbmRlcGVuZGVudC1jbGVhbnVwAOm46U6A04fEIOy3vb5lR1zpZiaNNDAwMDAgcjQ5Mi1wYXJlbnQtYWNjb3VudGluZy1hdWRpdACh+Nm/l3gNI/TpMBEUSKr0VGy2MTQwMDAwIHI3MTQtZXZpZGVuY2UtcmVjb25jaWxpYXRpb24AdsfJmZzjyv5FTbtkaPTJY7PKTss0MDAwMCByNzE1LWNhbmNlbGxhdGlvbi1yZWNvbmNpbGlhdGlvbgC6znhK+zoXnLENERRY3Po65kAeCTQwMDAwIHJhZGljYWwtYWxsLWZpZWxkLWNvdW50AJoQh/UgFIuphmJtduIrnB0BT1fJNDAwMDAgcmFkaWNhbC1jaGFydC1tdWx0aXBsaWNpdHkAycckUhpCoT6Z9C5Xsyah5vzYccA0MDAwMCByYWRpeDktYWxnZWJyYWljLWF1ZGl0AH4qp87d0p7VULO8ySXEuz7goY4kNDAwMDAgcmFtLXJvdXRlLWNvbXBhcmlzb24AF9D/uzMwCTVOZiRpRdUneifBzUQ0MDAwMCByYW5rLWNvbnZlcmdlbmNlLWdhdGVzAMfifuWP8Y1/V2bys3dfEGRJoUnsNDAwMDAgcmFuay1jb252ZXJnZW5jZQD2CdvhZWUvEgilMD1vj7KBUFMoPDQwMDAwIHJhbmstb25lLWNvbm5lY3Rvci1kZWx0YS1zZWVkMGU5ZAAAhCxUksGYOQqte2EONCZmhR7vcjQwMDAwIHJhbmstb25lLWlkZW1wb3RlbnQtY291bnQASQz3A9Qka6saa+eSGaEbQu9j+Yo0MDAwMCByYW5rLXByb2ZpbGUtcmV0aW1pbmctb2JzdHJ1Y3Rpb24AQxsr0sXOxsHIzPB4NnbXG5cS7qw0MDAwMCByYW5rLXNoYXBlLWNvZnJhbWUtYmlsbC1zZWVkODUwYmMzALKpObVOvZSUF6ZPa/dGPKc2q0ugNDAwMDAgcmFuay11bml0LWRlbGV0aW9uLW9yZGVyAJYkLdpzbeV3Z5Gt6yMnW5mwb2lHNDAwMDAgcmFuazEtY2VudGVyLWRlbHRhLXNlZWRkZmMyACna7xPgvNBN0C79+olLEP96s+F3NDAwMDAgcmFuazEtZGVsZXRpb24tdGFyZ2V0AO1MsunMw1A5RUAiqCAGV5LXTu6+NDAwMDAgcmFuazEtdHJhbnN2ZWN0aW9uLWJvdW5kYXJ5LXNlZWQwNDEwAJLlmGvnKJbH14c8orx2ibs7HFDPNDAwMDAgcmFuazE2LXJhbmsxLXN1cmNoYXJnZS1zY3JlZW4ArRAuvb0S6dYipPwccuiWU/+mzh00MDAwMCByYW5rMi1zd2FwLWJhdGNoaW5nAMq3aDNKEQWg4AV1RlXLMNCcROzUNDAwMDAgcmFuazctYWxpZ25lZC1iaXQtYWRkZXJzAPcENF1pjrcki8jU0SWQIVa8QqV8NDAwMDAgcmFuazctYWxsLXRlcm1pbmFsLXNlbnNpdGl2aXR5AJ15DPv3bpS3Qtv8uH11DxXeAFbvNDAwMDAgcmFuazctYmFzaXMtY292ZXIAmQJ3T4j4VIlWtnODX0pkLJOyu940MDAwMCByYW5rNy1ib29sZWFuLXNjYWxhci1jYWxsZXIA5B1ckcY/WFEwoEmbVErzOJdh+ic0MDAwMCByYW5rNy1jYXA3NDAAPkAk4KD7yPj72+bgW59MT2OF95I0MDAwMCByYW5rNy1jaHJvbm9sb2dpY2FsLWZhY2UAdx9fhOFDnW9gBAWOaiwgDa4mjTg0MDAwMCByYW5rNy1jbGVhbnVwLWRpcnR5LWlkZW50aXR5AACaVMCwtS5M2YDh6BzBBYHeO8s3NDAwMDAgcmFuazctY29lZmZpY2llbnQtY2FwYWNpdHkAGrPxci56JVEX3MK5TlTSbHAV0bM0MDAwMCByYW5rNy1jb2VmZmljaWVudC1ncmlkAJyN1OXPTjRxl0Jj35a+GfkJrfIaNDAwMDAgcmFuazctY29tbXV0aW5nLWNvbnRyYWN0aW9ucwDggTWpMhap+cBwgZqUAepr6b71XDQwMDAwIHJhbms3LWNvbXBsZXRlLW5hdGl2ZS1ib3VuZGFyeQAcDwjcbv8WKFQraUO8UchL7SmV0TQwMDAwIHJhbms3LWNvdXBsZWQtNTg2LTU4OC1jYXJyaWVyLWZvbGQAwamt36M+GRF5DQ+WSTOmRyLzloU0MDAwMCByYW5rNy1kYXRhLXNoZWFyLWJvdW5kYXJ5AJutMoO16H6GF29Eo2kPybcACftHNDAwMDAgcmFuazctZGVwYXJ0dXJlLW1pbm9yLWF1ZGl0ACP7TkCW+ebPXPbt1DMKtRTOlR/yNDAwMDAgcmFuazctZG91YmxlZC1yZXNpZHVhbC1leGNoYW5nZQAyLCeu4J8kOf5JSP4/f2X1q6PGGTQwMDAwIHJhbms3LWZhY2UtYm91bmRhcnktZmlsbAA8xV6HTdiHUU4UpNPg+GryPqF7vDQwMDAwIHJhbms3LWZpbmFsLWZpbGwtY29udHJvbHMA1kpeRUqM4fMqvW8W/UX0RlExnAE0MDAwMCByYW5rNy1maXhlZC13aWR0aC1oYWxmLWFkZABeiRwQhb0HNHju81+Op8KH5nFGxjQwMDAwIHJhbms3LWZyYW1lLWxpbmVzAKLXKM0aH/MvUlUkPwm2LtJbyBBYNDAwMDAgcmFuazctZ3JvdXAtYS1lbnRyYW5jZS1hdWRpdAD1yIeYgYzdw2GDqNvcvPJngDb0czQwMDAwIHJhbms3LWdyb3VwLWItbmF0aXZlLXdpZHRocy1hdWRpdABrMCn8x+lCjrqk8FFqeGphdRpSlDQwMDAwIHJhbms3LWdyb3VwLWQtbmF0aXZlLXdpZHRocy1hdWRpdACFlojdYyDNqhZyk1CIMrhbwkw46jQwMDAwIHJhbms3LWdyb3VwLWludGVyYWN0aW9ucwAKumpLglOqHNosf/tQ0O5jvEnJoDQwMDAwIHJhbms3LWh5cGVycGxhbmUtY291bnQAHB6yfImS8mRbp2WFQ9cXEN8Kqvk0MDAwMCByYW5rNy1pZGxlLXN0YXItc3RyZWFtLW9ic3RydWN0aW9uAPeQ1NwB/MiSi1DKrn41jomtQnf3NDAwMDAgcmFuazctaW50ZWdyYWxpdHktZXhjaGFuZ2UAHoPbEx7MJVxWxmqHOl6u3FDtQkI0MDAwMCByYW5rNy1qb2ludC1lbmRmcmFtZXMtcmVzdG9yZS1lZGl0ALoee29MEtHpL3LF+JbYwMhnSHbHNDAwMDAgcmFuazctam9pbnQtZW5kZnJhbWVzAJmBqME12YEFximbMk/5+u9AnypBNDAwMDAgcmFuazctam9pbnQtZnJhbWUtYXVkaXQAudNJeZFY47yvRB2tl+Ce6AKpwP00MDAwMCByYW5rNy1qb2ludC1mcmFtZS1vcHRpbXVtALQKL0DzaUkDvIuq4dCMUoayRTi/NDAwMDAgcmFuazctbXVsdGliaW4tZmFjZS1yZWxheQA3LcEB7PqAhykcHhxDgm9gV6OCnjQwMDAwIHJhbms3LW5hdGl2ZS1hLWZvcm1hdAC5Nu3Q8iXWUk1uWL+lDk5878j+DTQwMDAwIHJhbms3LW5hdGl2ZS1oYWxmLWJvdW5kYXJ5AMS5TYusx7UapnLJud65jIdru9tGNDAwMDAgcmFuazctbmF0aXZlLXRhcmlmZi1vcHRpbXVtAJm5j5wd7e6VBR0xujcRhjfEXtUUNDAwMDAgcmFuazctb25lLWNhcnJ5LXNjYWxhcnMAR74jNvy0zzcnCYmCex91uq7YsCI0MDAwMCByYW5rNy1wYWlyZWQtc2NhbGUtcm91dGluZwDthbDJGwOa+xuXUbzSJ/It1+WZyDQwMDAwIHJhbms3LXBhaXJlZC1zY2FsZQDjdkXZHFLpK6G28tGEb6vlPlfDsDQwMDAwIHJhbms3LXBlZXItcHJpdmF0ZS1mcmVlLWF1ZGl0AIBYJWATC9OKr38h3ygUgYjsz21UNDAwMDAgcmFuazctcGh5c2ljYWwtYTEzANePP2WHcdboxZ6SBp3sdYYyvX9dNDAwMDAgcmFuazctcHJpbWl0aXZlLWxvd2VyaW5nAFGaqi2cqF7lbFjXepAT8N2usGtPNDAwMDAgcmFuazctcjEtdDc0MC1jYXAACgDwRidDCwH7r+6i5qx3woc1koA0MDAwMCByYW5rNy1yZXN0b3JlLWNhcnJpZXItc2tpcHMAXwC/afPSW11iqe/Ucc2laNGXMzg0MDAwMCByYW5rNy1yZXN0b3JlLWNvbnRyYWN0aW9uAFp/YaL+VlBOJr0X91rtkvoym4PDNDAwMDAgcmFuazctcmVzdG9yZS1mcmFtZS1vcHRpbXVtAIGcmBv/Hg9RjghyE+NjQdbylcqSNDAwMDAgcmFuazctcmVzdG9yZS1wYWNraW5nLWNvbXBvc2l0aW9uAKLg+ulJQ1AtNwmBK4VZPU7NnHTcNDAwMDAgcmFuazctcmVzdG9yZS1zdWJzdGl0dXRpb24tYXVkaXQA/9NWN1NcM5WpwB1Sf1E1eGmUfAA0MDAwMCByYW5rNy1yZXZlcnNpYmxlLW5hdGl2ZS1jbGltYgAQSnPJl/bvA6AWGXBJ11mBS+pFqDQwMDAwIHJhbms3LXNjYWxhci1sYXR0aWNlAFXOqr1Ny9DHZKiWCGHfg45k64DRNDAwMDAgcmFuazctc2NhbGFyLW1pY3Jvc3RhdGVzAD/fipLgp++eki+zNkVhwjIdgQX6NDAwMDAgcmFuazctc2VsZWN0ZWQtdHJhbnNmZXItYnVkZ2V0AGnRSu6NHPp1BvCZAWm0RBpxP40FNDAwMDAgcmFuazctc2hhcmVkLXJlc3RvcmUtZmFuaW4A4EUGs7GIMGm6BtDuAsv7jMlGdRw0MDAwMCByYW5rNy1zaXgtc2tpcC1jYXAtcmVsZWFzZQA+5uvotPPjVkgfiX48VvqnQ8c7vzQwMDAwIHJhbms3LXNraXAtcmVzdG9yZS1vcHRpbXVtANj4RK2jDmAQaQJTykB9RDbfBiE4NDAwMDAgcmFuazctc3RhZ2UtY2FwLXJlc29sdmUAfNQLi1jlSq92zPyWEXTKVYA4hpU0MDAwMCByYW5rNy10MTQ4LXJlc3RvcmUtcmVsZWFzZQB4MrvukxZpLS/8pWO0N7/neLU7CDQwMDAwIHJhbms3LXQ3NDAtY2Fycmllci1za2lwcwCj91jeGv8jQDIRekUEmJPRVwcFlTQwMDAwIHJhbms3LXQ3NDAtcmVsZWFzZQBp9sCyOojDg5+dtFr+Fk947XD5BzQwMDAwIHJhbms3LXRlcm1pbmFsLWluZm9ybWF0aW9uLWJhcnJpZXIARut0OM0J7wFbg5OO79hc384vURc0MDAwMCByYW5rNy12NDUtZXZlbnQtYmluZGluZwCkwKRCk8BVlGZH0KuBh+SIEQ3KJDQwMDAwIHJhbms3LXY0NS1mcm96ZW4tb3duZXItaW52b2ljZQANT1KUwCPWMrTYy4CypKz7ABSg3jQwMDAwIHJhbms3LXY0NS1ncm91cC1hdWRpdACIaIFjzkMwUZitSDsHjWVwNCSLiDQwMDAwIHJhbms3LXY0NS1pZGxlLWNocm9ub2xvZ3kAeSEZWZlgX0PHuEvEaMruyEm/pt80MDAwMCByYW5rNy12NDUtbWFyZ2luAKMDkk35/yCLKhjXQ4KX0NCkZXlQNDAwMDAgcmFuazctdjQ1LW5hdGl2ZS1jb25lLXNlZWQ3OADqbdHaxR9sfdsQgZ8qPtc6ohnDUzQwMDAwIHJhbms3LXY0NS1uYXRpdmUtZW5kcG9pbnQAimNxxNBVSGFJdPspd1manLoEXlA0MDAwMCByYW5rNy12NDUtcHJvZmlsZS1hdWRpdAAbmUDMJdTX9hLAhKTWuMFd2CoMmDQwMDAwIHJhbms3LXY0NS1zaGlwcGVkLWludm9pY2UA/ltTs9E4nMqqDJvrnqtbDVC+C/k0MDAwMCByYW5rNy12NDUtc2luZ2xlLWxvd2VyaW5nAHg0r/BvgAQQmfFKNWjb4kPF6SlhNDAwMDAgcmFuazctdjQ1LXdpZHRoLWlkbGUAIL1l+YSRuWfqSb/8WqtlnyfiURg0MDAwMCByYW5rOC11Mi1lbnRyYW5jZS1vYnN0cnVjdGlvbgBsiAtBRU2XQjrrrJ1UvqBh07dLkjQwMDAwIHJhbms4LXUyLXBsYW5lLXBvcnQtc2xhY2sAOEywdqyq0R7/zQWIkDXjpMavoeg0MDAwMCByYW5rOC11Mi1zcGxpdC1ib3VuZGFyeQAJLk/Xnw9BF/JmEnLDTUXn/s0wHTQwMDAwIHJhbmtlZC1wYWlyLXZlcmlmaWNhdGlvbgDqshRngI7C+6WWEWuxs+1BqDsnxDQwMDAwIHJhbmt0d28tb3ZlcmxhcC10ZXJuYXJ5AOUasZ5ZMiL4718oXmKbPeadEIKiNDAwMDAgcmF0aW9uYWwtY2lyY2xlLWJvdW5kABHgBIrrnZVxkOaaf51mjZKuT1+VNDAwMDAgcmF0aW9uYWwtY29udGFpbm1lbnQtY2hpbGQtaXNvbGF0aW9uAKObiLnzw+H8F8SczRqWDiI8xQJeNDAwMDAgcmF0aW9uYWwtY29udGFpbm1lbnQtcGVyZm9ybWFuY2UA9FT8K6cadh+VhwjM2F9uVwCk3PY0MDAwMCByYXRpb25hbC1mZnQtZml4ZWQtaABghGdp8ygtU35JWUBRlvSFN//9ITQwMDAwIHJhdGlvbmFsLWpvaW50LXN1cHBvcnQtc2NyZWVuACMKLy5EuOD6mMEf5mX5GP81grE2NDAwMDAgcmF0aW9uYWwtbGlmdC1kZXNjZW50LXNlZWQ5NQAVfIUHfqErDfLwRcJQMQWE6y+ucjQwMDAwIHJhdGlvbmFsLXJlc2lkdWUtc2NvcGUAFuITs/OOd3+yKFtQYYW7kC0p4j40MDAwMCByYXRpb25hbC1zdGVpbi1nZW5lcmF0b3JzAHDraULgpVosoMzKoVj/RMFSFdomNDAwMDAgcmF0aW9uYWwtdGhyZXNob2xkLXJhbmstZXhjaGFuZ2UAXgAlGCZNN5LD/YIZJYp16VnC9g40MDAwMCByYXRpb25hbC10cmlhbmdsZS1zZWVkNDgAGDkTRG6ZLaGGr+D2EV3rrEkcF1s0MDAwMCByYXRpb25hbC11bml0YXJ5LWZmdADR/trNQpUOVOynxH6sZq4HY5OMITQwMDAwIHJhdy1nYXVzc2lhbi1jYXAtYXVkaXQAIaxKZZeckGBniXt4glP+MxpxtYU0MDAwMCByYXctZ2F1c3NpYW4tcm91bmRlZC1jYWxsZXIAl9BhI8AsHp4+Tu0Bxb94axz3XM00MDAwMCByYXctc2VsZWN0ZWQtY2VudHJlLXVuaXRzAF6DhDsQpp7kA2Uwl8FAnAB2MS4qNDAwMDAgcmVhZGVyLXJlc3RvcmF0aW9uLWN1dHMtc2VlZDUzABrSqqEQRnOhxzaIBc+UC7tw0DgBNDAwMDAgcmVhbC1wYWNrZWQtdGVuc29yLXN0YWdlZC1jYWxsZXIAmoJxogjBPWbkUrmnDkbeoeCV7Iw0MDAwMCByZWNlaXZlci1hbGwtbGVuZ3RoLWZsb29yAIDyUChxXe1EGAtKZosvPMqnweoPNDAwMDAgcmVjZWl2ZXItY29udGFjdC1mbG9vcgBtot2QfaQ+8bTUeatfLu+PBhvwhjQwMDAwIHJlY2VpdmVyLXdpbmRvdy1hbGwtbGVuZ3RoLWZsb29yAJzr+lbnDwmEPyRQvyJVPnpgQSqgNDAwMDAgcmVjZWl2ZXItd2luZG93LXRyYW5zZmVyAM/h63C3UFEOBXdgHAJkkKyTn2BINDAwMDAgcmVjaXByb2NhbC1kaXJlY3RlZC1ndWFyZHMAqJVknnC6ZXX/uST+sdVAE3hLZwM0MDAwMCByZWNpcHJvY2FsLWZpcnN0LWZhaWx1cmUtYXVkaXQAR88HptpY4JYOWw8dFAFx/ynfiBU0MDAwMCByZWNpcHJvY2FsLW5hdGl2ZS1yZXNwb25zZXMASJQwG2P5a8Rw0KOir+H2/1JB2ac0MDAwMCByZWNpcHJvY2FsLXNlZWRlZC1ndWFyZC1ib3VuZGFyeQDGwVQLT3CgaYoNVjcJghwG3ut0gzQwMDAwIHJlY2xhaW0tb3JkZXItcGVyZm9ybWFuY2UAnjeTm+w2y2gHvSaBXzIR1nlvj5I0MDAwMCByZWNsYW1hdGlvbi1wcmlvcml0eS1wZXJmb3JtYW5jZQC2bRzrJTJ3tcZfjAMbLXfbn4yrVTQwMDAwIHJlY3Rhbmd1bGFyLW91dHB1dC1ib3Jyb3dpbmcAwVZVP6zqjXPp+3ShAliZwFnKlIw0MDAwMCByZWN1cnNpdmUtbXVsdGl0ZXJtLWFuY2hvci1zZWVkYjlhMjMAOhxisKWH4JTfFa/8d+Tw6wHuZEs0MDAwMCByZWN1cnNpdmUtb3V0cHV0LWV4Y2hhbmdlANMleJjEBMxHvKEVpNw/Fc6j/4qBNDAwMDAgcmVjdXJzaXZlLXBhcmtpbmctYm91bmRhcnkAZpCxEtL2NzM2Nf/L9DqEhNix9uw0MDAwMCByZWN5Y2xlZC1iaXQtaW50ZWdyYXRpb24ArqVUxVySBuREsT/lm4EWLEXmtps0MDAwMCByZWN5Y2xlZC1iaXQtbmVzdGluZy1yZXVzZQAal5XE/B1mxxgxNwMLbVvGMqInDzQwMDAwIHJlZmxlY3Rpb24tcm91bmRpbmctcmFkaXVzALuHCZQ6LOrIl0xjTRgzvR8ZgEgbNDAwMDAgcmVnaXN0ZXItcGFpcmluZy1jb21wcmVzc2lvbgApp/6gtgeIAnZ08dBqVZ60gTg18TQwMDAwIHJlZ3VsYXItb3JiaXQtbGVhbi1pbnRlcmZhY2UAfDC5fjpMKiGp6LUxPm4nBDYE7hQ0MDAwMCByZWxlYXNlZC1vcGVyYXRvci1jbGlmZm9yZC1jZWlsaW5nAItIOUr4NNL2MDLDBW60u1z1vKEyNDAwMDAgcmVtYXRjaC1ibG9jay1yYW5rLWF1ZGl0AMIJKolSuNUh3R8XCLOSntaoGrB/NDAwMDAgcmVwbGF5LWFzdC1jYWNoZQA0Mnkekc3PJK+DDrb4Kq9Q8CMBcDQwMDAwIHJlcGxheS1pbnB1dC1jYXNlLWFsaWFzAIRWlrw22eL+0ny32A14q+X6EMO3NDAwMDAgcmVwbGF5LWlucHV0LWhlYWQtc3BlbGxpbmcAS6BoQORmS1gviGm9OwneKjm15hA0MDAwMCByZXBsYXktaW5wdXQtc3ltbGluay1hbGlhcwB++dTYKbxTdYgrJsFS9CWpzv8DDzQwMDAwIHJlcGxpY2EtcHJlZml4LWF1ZGl0AE1Bzz6NOAAsdgdo/UVoyayaPLTTNDAwMDAgcmVwbGljYS10YWlsLWdhaW4ACYjDdX5EDqgKvpKQg96rC9Sqicw0MDAwMCByZXF1aXJlZC1yZXBsYXktY292ZXJhZ2UAo5ynsPBJV9x2Za+4eaCOZVyKtiE0MDAwMCByZXNlYXJjaC1wYWNrYWdlLXBpbi1iYXRjaGluZwBjR/cBivuvr/CFEN2OYVtfTKjFoTQwMDAwIHJlc2lkdWFsLWNhbGwtcmVmaW5lbWVudADQwDXcK5z7hdNpH/JLvT1qmaJnYTQwMDAwIHJlc29uYW50LWFsbC13aWR0aC1wcm9qZWN0b3IASRfH/WXwJ1fPRhQGxEQ4G8JRrVY0MDAwMCByZXNvbmFudC1jaGFubmVsLXJhbmsA60nD8yQYssZOHta0J0eN4o0h/Wo0MDAwMCByZXNvbmFudC1vYmxpcXVlLXNlY3Rpb24AIyu7xACthSx3NmxD2MAuHk79Obo0MDAwMCByZXNvbmFudC1vd25lci1leHRyYWN0aW9uAGW87VAUdhi3GN7f1tmmK4u+erymNDAwMDAgcmVzb25hbnQtcmVjb3Zlcnktc2NhbGFycwCA4nRSk0gTj238gu//fFowLjoFpjQwMDAwIHJlc3RvcmF0aW9uLWNvYWxlc2NpbmcAri1QV1u0KJEIWwizn6QV0RW+1kM0MDAwMCByZXN0b3JlZC1jeWNsZS1nYXAAy0ItKaXwgb1kTifBwNZ3+JFW7qk0MDAwMCByZXRhaW5lZC1hbGlhcy1wYXJpdHktYXVkaXQAOH8EI7lUp7WULPZ4esSRUfuUkMY0MDAwMCByZXRhaW5lZC1hcnJheS1jYXRjaC11cAB39KawKMOwIG2EnEUO1dtafrD7qjQwMDAwIHJldGFpbmVkLWJpdC1zdXBwbGllci1iaW5kaW5nAMFGeR679gDiqG2o8GNUkP1RUNjpNDAwMDAgcmV0YWluZWQtc2NoZWR1bGUtZGVmaWNpdAAEqUNcLTOnLOP/AsetANB44DrRqjQwMDAwIHJldGltZWQtcGFpci1tb21lbnQAUb3GR1HYLoPm43zrz32JgJ6Ggrw0MDAwMCByZXRpbWVkLXdvcmQtaW5kZXBlbmRlbnQtYXVkaXQAsUY6KvgE2R2ocWw47UP3q63owy40MDAwMCByZXRpcmVkLWxlbmRlci1leGhhdXN0aW9uAOyss/4VXs2YEG1tNVXqS+L4TNUMNDAwMDAgcmV0dW5lZC1vcmRpbmFyeS1jb3VwbGluZwBP0xGy/TyZKrX9HeY5NfvunTOmMTQwMDAwIHJldXNhYmxlLWNsZWFuLWNoZWNrcG9pbnQAMcaHalAuFVO5EV40ayote5cVaZs0MDAwMCByZXZlcnNhbC1zdGFibGUtbGFuZS10YXJpZmYAZFQqkF1ZTu6trDwxCBmyCQlyhKI0MDAwMCByZXZlcnNpYmxlLXBoYXNlLWRpc2stb2JzdHJ1Y3Rpb24AFDfbcIPLaKHAEmlRDpqMuhzcxfc0MDAwMCByZXZpZXctcm91bmQtbmF2aWdhdGlvbgA8YUfUE7zLvJfO3kVs/TN8PIgoFzQwMDAwIHJldmlzaXQtbGVuZ3RoLXdpdG5lc3MAAncz3CBhoo9CvR9LoQ2hHVQv/ZY0MDAwMCByZXZpc2l0LW9uZS1yZXR1cm4tZ2FwAIWJZbbALuGlTqm317M2AmRsZbvhNDAwMDAgcmlkaW5nLXNoZWFyLXNhbmR3aWNoAOwkydip+dY0OKvoUw1rp/P75FHvNDAwMDAgcmlnaHQtdmVjdG9yLWNvbW11dGF0aXZlLXByb2R1Y3RzABDDsFjjtJXxF70zHJb452IjMG2gNDAwMDAgcmlnaHQtdmVjdG9yLWRpYWdvbmFsLWZyZWUtYmFzaXMAhUlqPbOmmEFsPDBr6OqBNC6kdm80MDAwMCByaWdodC12ZWN0b3ItZXh0ZW5zaW9uLWZpZWxkcwC5BCNTbLRxozzBeIutLovWkmBypzQwMDAwIHJpZ2h0LXZlY3Rvci1leHRlbnNpb24tcmVzaWR1ZQBxCFCs5KdpBDlIMu+4D/H6hQmbdDQwMDAwIHJpZ2h0LXZlY3Rvci1nZW5lcmFsLXRhcmdldAAXsjC3wiWO3Fhi4grpxzkFpaxUrjQwMDAwIHJpZ2h0LXZlY3Rvci1sb2NhbC1hbGwtcm9sZXMA0NScxB+OnMA+49tXYd/dsLaPvjU0MDAwMCByaWdodC12ZWN0b3ItbG9jYWwtcHJvZHVjdHMAPN2BrvMYuOKnTPHFDPtpyoyySwM0MDAwMCByaWdodC12ZWN0b3ItcG9seW5vbWlhbC1jb3N0AGymE5u9tbanDyDzVn7qcRQaqN9tNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmstb25lAAEurhXmFRH06krx5018CvHvAeAdNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmstdHdvALukD75C9Afpo6FpdyfEk/tT6zhkNDAwMDAgcmlnaHQtdmVjdG9yLXJhbmtvbmUtcmVzaWR1ZQDf06trB0J/Fe+ysvDVzjgAg5mOCjQwMDAwIHJpZ2h0LXZlY3Rvci1zZW1pbG9jYWwAHwTlYXD9iOZMUuJSXaaS6fn5vTI0MDAwMCByaWdodC12ZWN0b3ItdGhyZWUtcm9sZS1wcm9kdWN0cwB88rP+2+Byk2qlkDjYkYBHLTQCuDQwMDAwIHJpZ2h0LXZlY3Rvci10d28tZmFjdG9yLWNyaXRlcmlvbgAt3j+8qzP0sXjhrwstSaTc3OwjiTQwMDAwIHJvb3QtcGFpci1maXJzdC1kcm9wLXNlZWQ0OAAbiOkLoDH4NCMA8EwoV/VruXZfTDQwMDAwIHJvb3Qtc3Rhci1pbnRlZ2VyLWNvdmVyLXNlZWQ0NgCPkNDNPs0if87zy/gEJ5SMFO7PJjQwMDAwIHJvb3QtdW5pdC1kZWNvZGVyLWxlbW1hcy1kcmF0ANnhR5T8tIkAHor8Tu9zxENAyM2dNDAwMDAgcm9vdC11bml0LWRlY29kZXItbGVtbWFzAPM8tkvdsZJ4GrII56kWJl92XE8GNDAwMDAgcm90YXRpbmctYWRkcmVzcy13YWxrANJCthQkdxOmSZ8UO9nBtjO3lxuwNDAwMDAgcm90YXRpbmctbm9ybWFsLWNsb3N1cmUA/2dvKdcNVQf80UzSBKqcHLc6UWc0MDAwMCByb3VuZGVkLWJvcnJvd2luZy1jb250cmFjdACcDtNf3VcCaH2/U8zIpQFQAd7DlTQwMDAwIHJvdW5kZWQtYm91bmRhcnktYmxvY2tzAIdiTuE5CPAnINW/cw5iLr84POD8NDAwMDAgcm91bmRlZC1sZWFmLWxhdHRpY2UtY2xvc3VyZQADZ7ZWqNllSf6nYyxReBMZ/dAZ4DQwMDAwIHJvdW5kZWQtcGhhc2UtcmVjb25zdHJ1Y3Rpb24ATM+6HtOMtnLJqm/DyaNjkihQar40MDAwMCByb3ctbGVkZ2VyLXJlYWRpbmdzAC4VZyooqGBL8Jg4y+rOxRsv10y7NDAwMDAgczMtZGlhZ29uYWwtcmFuay1zY3JlZW4AelAgwmdE2wXJd0TPSIXnRvteTWQ0MDAwMCBzMy1zY3JhdGNoLXRyYW5zcG9zaXRpb24tZ2FwAItw4gv/qcbO/AKnW6fjTBzE/JoMNDAwMDAgczMtc2VsZWN0ZWQtYWZmaW5lLWJvdW5kYXJ5AOhiuOr1ZYGcMqultHpm3ULq/sT7NDAwMDAgczMtc2hvcnRlc3Qtd29yZC1yaWdpZGl0eQC0Q9GgTfrL7JyV00IGR3c/uTqjwDQwMDAwIHMzLXN0YW5kYXJkLW91dHB1dC10cmFuc3BvcnQAy95qstRMOQkv/fqnT5nRPMp8smw0MDAwMCBzMy10aHJlZS1yb2xlLXh5eAChzVKLEl0jXPhq49geLarDFNby0zQwMDAwIHM0LWRvdWJsZS10cmFuc3Bvc2l0aW9uLXNlZWRiMjcwAP51mdEEsWmgnqBexzA7j0av33d0NDAwMDAgczQtbWl4ZWQtdHVwbGUtdGlnaHQtd29yZC1zZWFyY2gAgfhvuM+pijRE0+Q7WqsKyswRuuQ0MDAwMCBzNC1taXhlZC12NC1kb3VibGUtdHJhbnNwb3NpdGlvbi1zZWVkMGNkYmI0APVcASBe2HCc30XcUJV/PULbnoCJNDAwMDAgczQtbm9uY29tbXV0aW5nLXRocmVlY3ljbGUtcjQtc2VlZGEyN2IAg3Ui9rjWUoja6RywHEzRsW66RL40MDAwMCBzNC1zbGFjay13b3Jrc3BhY2UtYm91bmQA0TlHOHsPh3w8CM4hIgg8BvigWsI0MDAwMCBzNC1zdGFibGUtZm91ci1jYWxsACBuvzpPG7QNVbW6QtSa11ijOmO5NDAwMDAgczQtc3Vic3BhY2UtY3V0LWJvdW5kYXJ5AFP2H9qJ52avuO4lhSjPuF+b3iO4NDAwMDAgczQtdGlnaHQtd29yZC1zcGVjdGF0b3ItZWxpbWluYXRpb24AIIWLjJKjbSPYulzHrRtxm/A112c0MDAwMCBzNC10d28tcHJlbWl1bS1jdXQtZW52ZWxvcGUAMJ4ofnaPA5kIQWNaOgxiy5y74AM0MDAwMCBzNC10d28tcHJlbWl1bS1yZWdpc3RlcnMAkb/sRxVxv/22FV/vf8xnkwsbLSA0MDAwMCBzNC10d28tdGFyZ2V0LWN5Y2xlLXNlZWQ2ZTUyNQBo4RqezF2ciAaNQxha81p98Ej2pzQwMDAwIHM1LWludmVyc2UtZml2ZWN5Y2xlLXNlZWQ1MmJmMjExYwDxEhOr4mUxttoJw/sPQOfHIX4bYDQwMDAwIHNhdHVyYXRlZC1ib2R5LWJvcnJvd2luZwDjPf/pQkmcZCpLNzt3YxxHyAvv+DQwMDAwIHNjYWxhYmxlLWRpcnR5LWNvbm5lY3RvcnMA7WUDAbouFui0MDEdw1IPNm5Dp5Q0MDAwMCBzY2FsYXItYmxvY2stc2NodXItZGltZW5zaW9uALddffdmEfYT786ydWX5iUj2e8+sNDAwMDAgc2NhbGFyLWZ1c2VkLWR5YWRpYwAKZWuMUqfNfXWzl0WT4Nt1THioAjQwMDAwIHNjYWxhci1waXZvdC1zY2h1ci1kaW1lbnNpb24ADTkLikeH83mZH/9hcvNQ3MwE81I0MDAwMCBzY2FsYXItcmVvcmRlci0yMDI2MTAyMgD0mhqoMUX2TNREXTBvedOMCAFE4TQwMDAwIHNjYWxhci10cmFjZS1jb21wcmVzc2lvbgBAFHxiUlucEbmid0IJ+LPtP9bOATQwMDAwIHNjYWxlLWRlcGVuZGVudC1zZWVkLW1vbWVudC1hdWRpdAAzQg7ZRzGnZ1GE71CCJmLVXw1PQzQwMDAwIHNjYXR0ZXItYWxpYXMtbmF0aXZlLWF1ZGl0AIXCkZ7oh17PFW92H4MqivvJXHLaNDAwMDAgc2NhdHRlci1iYXNpcy1pZGVudGl0eQDtZHUV79oTVmm71y+pLXS0SGa9IjQwMDAwIHNjYXR0ZXItYm91bmRhcnktZGVjaXNpb24A+zdA5sCWpYzjM6sXNsVGVKL6XJE0MDAwMCBzY2F0dGVyLWR1cGxpY2F0ZS1ib3VuZGFyeQCdLy1ydi8+F3n07AbsR9GnOfm77DQwMDAwIHNjYXR0ZXItZXhwb3J0LXBhcml0eS1hdWRpdAD6W/VxLVxEzB0ijNViK7E4PahY+jQwMDAwIHNjYXR0ZXItb2RkLW5hdGl2ZS1hdWRpdAALVDfmiJdYhxnFkpGlJDwQbqYZaDQwMDAwIHNjYXR0ZXItb2RkLXN1Y2Nlc3NvcgBEiiqgy661Aj/qvGBV7RIrij8h8jQwMDAwIHNjYXR0ZXItcGFyaXR5LWNvbnRyYWN0LWF1ZGl0AHMcs2thP+cVHU5Cok2vkjlb0COMNDAwMDAgc2NodXItYmFuZHdpZHRoLWdhcAAoyWveiZsv2H9PGqohhRB7FSKidDQwMDAwIHNjaHVyLWJsb2NrLWNlbnRyYWwtbGF3AD6iPHPKytXlQQj9dZIpCAmXSFjRNDAwMDAgc2NodXItYm91bmRhcnktcmVzaWR1YWwASMOYlRl4OmP8y9C+iv7YHK72HrU0MDAwMCBzY2h1ci1jZW50cmFsLXNwZWN0cnVtALSQhDx2gKql58p1W7evLFza8smGNDAwMDAgc2NodXItY29tbXV0YXRvci1jcml0ZXJpb24A8fzT7bfrSPJ02opvzj7roV+ks740MDAwMCBzY2h1ci1oZWFkZXItY291bnQAZ1Ch+vlROcWdmHgKnyfMYx+rclw0MDAwMCBzY2h1ci1oZWFkZXIta2VybmVsLXNlY3RvcnMA9/AB42T8bJR5AAuIAQl4xC7V+SE0MDAwMCBzY2h1ci1pbnRlcnZhbC1iYW5kd2lkdGgA6Cv7f8TOXmJfqBVcLKY5ZBWFum80MDAwMCBzY2h1ci1pbnZhcmlhbnQtdHJhbnNpdGlvbnMAfLjN6DKd+2amfJkQie1Wo0lFAkk0MDAwMCBzY2h1ci1tYWpvcmFudC1jbG9zdXJlAEmBUt5wbykJdx7qVc+6MQCd7BY7NDAwMDAgc2NodXItbmlscG90ZW50LWV4dGVuc2lvbgAdDrebRXtXQBpUHyEa0SYW0OxfeDQwMDAwIHNjaHVyLXByZWZpeC1iYW5kd2lkdGgAJPuGrHmwJK5oDjla9anpBLN4+Qo0MDAwMCBzY2h1ci1wcm9qZWN0b3ItcmVmaW5lbWVudADcH5gnRBBYMVqBSL74YhZ52CZt1jQwMDAwIHNjaHVyLXJhbmstcGFpci1sYXcAZ6XFhbn8tyyW0SoOZ5GPg0Ma02U0MDAwMCBzY2h1ci1yZXNpZHVhbC1vcmJpdHMAY7EPNe6qK+rErunkfX/BTQTCpig0MDAwMCBzY2h1ci1zcGxpdC1pbmNpZGVuY2UA/Ps4u6OIzxZJo25V2O6yXPdncOM0MDAwMCBzY2h1ci13ZWlnaHQtY2FuY2VsbGF0aW9uACuQJ4Ixse3HqlBzGMXBa+GR39jHNDAwMDAgc2NodXItd2hvbGUtY2VudHJhbC1jbGFzcwC/5i72C1zRGoAbXkiqNkC/3pD6+zQwMDAwIHNlYWxlZC1zdHJpY3Qtcm9vdADybsy12yN03RcfQhncgA502aS0CDQwMDAwIHNlY29uZC1zdGFnZWQtNTQ0ADjtj1I4p++GPLlOJ1Whsf1gD9K9NDAwMDAgc2VlZDAzLWJpdC1waHlzaWNhbC1mYW1pbHkAD4W3pC29ApR0HvmjeavjrMA2Sc80MDAwMCBzZWVkMDUtYml0LXJlcm9sbC0yMDI2MTAxMwB9DSH0ZndYcTZvMndgm0aP17RUPTQwMDAwIHNlZWQxMC1iaXQtc3VwcGxpZXIAZotpu7buEWJNGMgPAHc1qsEWnn40MDAwMCBzZWVkMTgtcjQzOS1iNTA5LWluZGVwZW5kZW50LXJlcGxheQDlcKuZwK+9eX4f/jvlGvzjSaa07TQwMDAwIHNlZWQyOC1jb21wbGV4LXJlcm9sbC0yMDI2MTAxMwCy3ERR6Q8AwdoDZtrMgOO5Wojp3TQwMDAwIHNlZWQzOC1wMTA0LW9yYml0LXJlZ3VsYXJpdHktYXVkaXQAmIemtYa1ZyNzjcBUSYL6CDw+ULg0MDAwMCBzZWVkNDgtcDEyMC1vcnRob2dvbmFsLXNoYXJlZC10b3RhbACmWFKdciS2zMXp6CYEqEhuYOFLjjQwMDAwIHNlbGVjdGVkLWFkYXB0ZXItY2FsbGVyLWVudHJ5AHSNMI7/ER5LdYZN2sRYKd1agq+cNDAwMDAgc2VsZWN0ZWQtYWRhcHRlci1udW1lcmljYWwtbGlmZWN5Y2xlADSjKk1XMOCI9fI54Ngcgf543t08NDAwMDAgc2VsZWN0ZWQtYWRkLWNvbXBsZXRlLWJhY2tpbmcAE9kOD0pSX6ndJ9Zj6oXLPGXPXfQ0MDAwMCBzZWxlY3RlZC1hZGQtY291bnQtcGhhc2UtZW52ZWxvcGUAUR43V4TrdvCzqMvZv0dCfnBhOPw0MDAwMCBzZWxlY3RlZC1hZGQtY291bnRlci1iYWNraW5nAKd1RqZgn5UhtRmOCaQVpYV5Rb/aNDAwMDAgc2VsZWN0ZWQtYWRkLWpvaW50LWJhY2tpbmcAHZRQcsY097e7niNK5oQiLEbkgE40MDAwMCBzZWxlY3RlZC1iaW5hcnktY29udHJvbAAGyVSscyd+AlC5QbE6v8FlM0knjzQwMDAwIHNlbGVjdGVkLWJpbmRpbmctY292ZXJhZ2Utc2VlZGEzNDIAxiovfgFLPzncVuC1PHTyiXBpeg00MDAwMCBzZWxlY3RlZC1iaXQtYWJvcnQtcmVjb3ZlcnkA7fNdWBY0unI1zCenh6ExFOcx6L80MDAwMCBzZWxlY3RlZC1iaXQtYWRkLXJvdXRlLWludm9pY2Utc2VlZDk2ZTRjYwCcmHj5dpm2y/vPGdz0KqjTTV6lfjQwMDAwIHNlbGVjdGVkLWJpdC1iYWQtY2xhc3MtZmFsbGJhY2sAfV7hVs+F5Dti/Q8oRoiufi4jQw80MDAwMCBzZWxlY3RlZC1iaXQtY2FsbGJhY2stYWJvcnQAXc5eF2AIUx4UwTj18KCU0RMI2eU0MDAwMCBzZWxlY3RlZC1iaXQtY2VpbGluZy1mcmVlLXN0b2NrADQwvyM+8F5cR9VE3F1Njb4CqoFcNDAwMDAgc2VsZWN0ZWQtYml0LWNvbnRyb2xsZWQtc3RyZWFtcwCnI3uoI+p08qgCyLeWwdDL0jnW2TQwMDAwIHNlbGVjdGVkLWJpdC1mYWxsYmFjay1zdHJlYW1zAAclNUNbijzbliD8mLvbofZ3aLaANDAwMDAgc2VsZWN0ZWQtYml0LWZhc3QtcHJpbWl0aXZlcwBQ2sNlZM/TBEWk4iYn3eJNcAw4NDQwMDAwIHNlbGVjdGVkLWJpdC1ob3N0aW5nLWF1ZGl0ANAfJhI2DfAD+1+uG0y5fFwrzXXiNDAwMDAgc2VsZWN0ZWQtYml0LWxlYXNlLWVuZC1jYWxsAKUnUtfKXbpvMfWXZvLUd5Ijg1kmNDAwMDAgc2VsZWN0ZWQtYml0LWxvY2FsLXJpbmctc3dlZXBzABaLe3b13jf2rt0wf4apBEXaAYoANDAwMDAgc2VsZWN0ZWQtYml0LW1peGVkLWRlc2NyaXB0b3IA+VD5EMDEYP84RCXj9WSJLm8zObU0MDAwMCBzZWxlY3RlZC1iaXQtbm9kZQCdAZMkDjOLEW94eJkFpFnV8CfsGzQwMDAwIHNlbGVjdGVkLWJpdC1wYXJlbnQtcmVzZXJ2ZQCNo4CBGZpTFvZ3bck9r4GyVykipzQwMDAwIHNlbGVjdGVkLWJpdC1waHlzaWNhbC1jYWxsZXIAFdgNPvZ8G6n9WhUrMqJ6AUj22kU0MDAwMCBzZWxlY3RlZC1iaXQtcWFkaWMtcm91dGUAIu01G7aGdDZMPjHzQVFjkk3vCc80MDAwMCBzZWxlY3RlZC1iaXQtcmVjdXJzaXZlLWNhbGxlcgBMDeipqH82RX/B201kZjYdB5j8CjQwMDAwIHNlbGVjdGVkLWJpdC1yZWN1cnNpdmUtY2xvc3VyZQD/9OK2/DJJakmZ/sr5rt36dEn2rDQwMDAwIHNlbGVjdGVkLWJpdC1yZWdpc3Rlci1wYXJraW5nAPxqE3j+Cnh5DNm0YaTRqLbXZoCcNDAwMDAgc2VsZWN0ZWQtYml0LXN0YWdlLXN0b2NrLWJhbmQA8Ae/jZe06DVpvLeIoNo+AnrLsLs0MDAwMCBzZWxlY3RlZC1iaXQtc3RvY2stZml0AOKHcJalVClH0JTA1aS7k13xm22HNDAwMDAgc2VsZWN0ZWQtYml0LXN0cmVhbS1yb3V0ZXMA9RlNsdfMoFCl0JgF33V0DmKuaRM0MDAwMCBzZWxlY3RlZC1iaXQtd2VpZ2h0ZWQtY2hpbGQArrVNdeFczqa01zBHAlYkJrmidas0MDAwMCBzZWxlY3RlZC1ib2R5LWRlcHRoLWJvcnJvd2luZwCgD6nADK6rJq+Ll64VpIiVo2zTSTQwMDAwIHNlbGVjdGVkLWJvb3RzdHJhcC1yZXNlcnZlLWNvbXBvc2l0aW9uAADWOl6jTN6kJPQjpgsBVWXHhiX+NDAwMDAgc2VsZWN0ZWQtYm9vdHN0cmFwLXN0b2NrLWF1ZGl0ADAeBmt/8qZmTqv82c36a3EJKgsENDAwMDAgc2VsZWN0ZWQtYm9vdHN0cmFwLXVuaWZvcm0tdGltZQCSAHJDO6650RlV2tHmwlXy/uIoWjQwMDAwIHNlbGVjdGVkLWNhbGxiYWNrLXdvcmQtbGl2ZW5lc3MA5ljE81LemR4Plxo7I++hUm3EfxA0MDAwMCBzZWxlY3RlZC1jYWxsZXItY2FwYWNpdHktcHJlZml4AHFlV3FGMJ1MQ0plyuGJ8vTDmWynNDAwMDAgc2VsZWN0ZWQtY2VudHJlLWFkamFjZW50LXBhaXItc2VlZDAxZmNiMQDjQvPuMYilLMJ5AUqve1UkcmxBAjQwMDAwIHNlbGVjdGVkLWNlbnRyZS1icmlkZ2UtcHJvamVjdGlvbgCBcyh+W0mmKMkLiSD7+USQ/gczbzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jaHJvbm8tc291cmNlLWNlbnN1cwDhkfNF33rbJ3+gmZbcgA84Sbx+XzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jb21wb3NlZC1zb3VyY2UtcmFuawAXx51W3BWiK2ebcCuQKbogssNmcDQwMDAwIHNlbGVjdGVkLWNlbnRyZS1jdXRyYW5rLXNlZWQ1MgDQXJsZ0P1UQirM94f+jHNdjM8XOTQwMDAwIHNlbGVjdGVkLWNlbnRyZS1lbmRwb2ludC1lcnJvcgBXCAi8A6oXvPMXwL+U9zgyBT/hhzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1uYXRpdmUtbGlmdAB/HnMxOYlu57Q5nt55R5cjLAhePDQwMDAwIHNlbGVjdGVkLWNlbnRyZS1xdWFydGVyLW5hdGl2ZQDgKDII3TT+JzVtKq1JVQmwhlaPmzQwMDAwIHNlbGVjdGVkLWNlbnRyZS1zdHJlYW0tcmVhZG91dHMAmjaDvddVoArgO83XIf2bjXzPULc0MDAwMCBzZWxlY3RlZC1jaGlsZC1jYWxsZXItbGlmZXRpbWUAxPpSVgMxiz51bj0WZ4u+Xr3koPQ0MDAwMCBzZWxlY3RlZC1jaGlsZC1jb21wYWN0LXJldHVybgCrIVvlq/VSDHaF/UHyoa65hnl/8TQwMDAwIHNlbGVjdGVkLWNoaWxkLW51bWVyaWNhbC1saWZlY3ljbGUAg/Qlp7QsaB9VgFtFW/4dy0Wy3Wc0MDAwMCBzZWxlY3RlZC1jaGlsZC1zdHJlYW0tcmV0dXJuAFx29Vy/FmHSVlL5EhjOY4rnn9t1NDAwMDAgc2VsZWN0ZWQtY2ktYnJhbmNoLW9yZGVyAAHTCarCXHVQSglFnxVdOYM+MLkPNDAwMDAgc2VsZWN0ZWQtY29hcnNlLWRlcHRoLXN0b2NrAGcOXAkf3TOtLbA5pyznTH9w1E6NNDAwMDAgc2VsZWN0ZWQtY29lZmZpY2llbnQtY2FwYWNpdHktcHJlZml4AK/x8YcaAa2pCy/0nVDykeh5oNddNDAwMDAgc2VsZWN0ZWQtY29tcGF0aWJsZS1yb3ctcGFkZGluZwCwSyzCQrEhGNuDVSJYsfRG6uIpbjQwMDAwIHNlbGVjdGVkLWNvbXBpbGVyLXNvdXJjZS1icmlkZ2UApp+hXDFLiuuiOSr98/OFfQArm6c0MDAwMCBzZWxlY3RlZC1jb21waWxlci12aXNpdGF0aW9uLWF1ZGl0ADnTcRuN+NPSPbw0GIIdHNCwFSBDNDAwMDAgc2VsZWN0ZWQtY29tcGxldGUtcmVzaWR1YWwASkLwW7sBGzt7dNWt7VdNrYrW8xU0MDAwMCBzZWxlY3RlZC1jb21wbGV4LWNvbXBhY3QtYWRhcHRlcnMAPx3dgWHov3LA8RQBVKa0nMDeeTs0MDAwMCBzZWxlY3RlZC1jb21wbGV4LWhlaWdodC1sZWRnZXIAmHu6difCNa6UgkazikQ0hvy/UD00MDAwMCBzZWxlY3RlZC1jb21wbGV4LWxheWVyLWNsb3N1cmUATNHeSHMqEgnhBXGTFbLiurhmayc0MDAwMCBzZWxlY3RlZC1jb21wbGV4LXJvdy1jb2VmZmljaWVudAD5mqgZEzfj4xClmvl8omB3IPrFoTQwMDAwIHNlbGVjdGVkLWNvbXBsZXgtd2lkdGgtZW52ZWxvcGUAalkVgXmLpAc/bkZPxdYkbMgo97w0MDAwMCBzZWxlY3RlZC1jb25zZXJ2YXRpdmUtb3V0ZXIA7SJMupUdfDGYYFajVhwpUVoJOXw0MDAwMCBzZWxlY3RlZC1jb250aW51YXRpb24tYmFja2luZwCCPaoSTeINYpH95MrLk2mR5V7fyzQwMDAwIHNlbGVjdGVkLWNvbnRpbnVhdGlvbi1qb2ludC1tYXgAFGNDbPYK+Mt3+GrIBNdeBAo34yM0MDAwMCBzZWxlY3RlZC1jb250aW51YXRpb24tc3RvcmFnZQBhrSpXwydLqcya+98p41Gi/Y+ewjQwMDAwIHNlbGVjdGVkLWNvbnRyb2wtcmVxdWVzdC1tYXNzABErKsbjiEzda59EoqhWjZIJ1k+lNDAwMDAgc2VsZWN0ZWQtY29udHJvbC10YWJsZS1iaW5kaW5nAI0/06Eu+ki/Px/cR89S7mAu01YoNDAwMDAgc2VsZWN0ZWQtY29udHJvbC11bmlmb3JtaXR5ANRwTULANiVImRwEGCZaNg6HFA7wNDAwMDAgc2VsZWN0ZWQtY291cGxlZC1wYXVsaS1mZWVkYmFjawCrXl9Ay7gvjB9KTC48GsaSRFVKZjQwMDAwIHNlbGVjdGVkLWNvdmVyLWZyZXNoLWZpYmVycwDkcP7BCKxRhS0B8C4Qg+mRQvZeNDQwMDAwIHNlbGVjdGVkLWNyb3NzY2FsbC1yYW5rOC1jeWNsZQDhwVmo0qTmmDrIC2XoPVHRKkehZDQwMDAwIHNlbGVjdGVkLWRlcGVuZGVuY3ktaGVhZHMtYXVkaXQA7+kyXHjABaflbU8ER6dhUwIsrp00MDAwMCBzZWxlY3RlZC1kaXJlY3Rvcnktc3RvcmFnZS1yZXNlcnZlAOpmGShJ8KigWIeRSvLCT4nUKHlRNDAwMDAgc2VsZWN0ZWQtZGlydHktcmVhZGVyLXo0AD8rGTK9OCxBW8S4e4hqYuKrdtWzNDAwMDAgc2VsZWN0ZWQtZXh0ZW50LWNvdW50LWJhY2tpbmcASqkDv6MU3NKC0lR9GfA9ujux7Ac0MDAwMCBzZWxlY3RlZC1mYWxsYmFjay1sYXVyZW50LWF1ZGl0ADA6d+f0DO8CsTjQaaY4W4m8Cb0INDAwMDAgc2VsZWN0ZWQtZmFtaWx5LWNvdmVyYWdlLWJvdW5kYXJ5ADWaXxj2pBZftvJNeY+uVTdNkW3QNDAwMDAgc2VsZWN0ZWQtZmluYWwtY2xvc3VyZS1saW51eC1hdWRpdACY28r+EXNIzv2gSb2pkcop/EO5PzQwMDAwIHNlbGVjdGVkLWZpbmFsLXJlcGxheS1jbG9zdXJlAO/iGL6PXUOPnMFqTcLOKLfrigUENDAwMDAgc2VsZWN0ZWQtZmluYWwtc3RhZ2UtcG9ydGFiaWxpdHkA30XRfGIVx5/4uQh5pzh8oLiqkwA0MDAwMCBzZWxlY3RlZC1maXJzdC1wcmVmaXgAc+VQpFXOoBrjO9nrayKWkKX5cQw0MDAwMCBzZWxlY3RlZC1mb3JtLWNvbnN0cnVjdGlvbi1zdG9yYWdlAKQdB+Psa6egDqBmrBYIVfugg+aYNDAwMDAgc2VsZWN0ZWQtZ2VuZXJhdGVkLWlkZW50aXR5LWF1ZGl0AMwIRNVX5zcMREtuQgAqg1fKuMg7NDAwMDAgc2VsZWN0ZWQtaHBlLXRhaWwtZmF1bHQtYXRsYXMAWP1zUVOu8kJupf4AEkDd2YItKIE0MDAwMCBzZWxlY3RlZC1pbnZlbnRvcnktZmFpbC1jbG9zZWQABbge5CePC9hv102r5Egn+pSYOJk0MDAwMCBzZWxlY3RlZC1pbnZlbnRvcnktbmF0aXZlLXJlcGxheQDwHOsyD50x6zYoaRLgZoTzyRfeCjQwMDAwIHNlbGVjdGVkLWludm9jYXRpb24tZnJhbWVzABk/JkNDIwxxDcZsE6sq4+Ep1yNUNDAwMDAgc2VsZWN0ZWQtaW52b2ljZS1yZWZlcmVuY2UtcmViaW5kaW5nAC98guuds2vIWrweVG5T+silfJb5NDAwMDAgc2VsZWN0ZWQtaXRpbmVyYXJ5LWNvbXByZXNzaW9uAC9ESzvFOYg6vxu0Ko2kLsS8HKoGNDAwMDAgc2VsZWN0ZWQtam9pbmVkLWRpc3BhdGNoAMmCFOT4AUVmI54aW5psfkf7qfTyNDAwMDAgc2VsZWN0ZWQtazgtY2F0YWxvZ3VlLXNjb3BlALy58+u2XndpbGh8vmANH4+P3vGbNDAwMDAgc2VsZWN0ZWQtazgtY2hpbGQtcmFuay1ib3VuZAAXLshiG8il2e9/tfdncDhPba30zzQwMDAwIHNlbGVjdGVkLWs4LWVuZHBvaW50LWNvbnRyYWN0aW9ucwBDsqysOs6Hbu/BV8BBuFemyxRFATQwMDAwIHNlbGVjdGVkLWs4LWZyYW1lLWNlaWxpbmcAf8+Ap8gcTK2L7xK8eec+wHjsHdg0MDAwMCBzZWxlY3RlZC1rOC1vbWlzc2lvbi1vYnNlcnZhYmlsaXR5AJ5yCStGGmWg5t1UC9M59vQ4q5rONDAwMDAgc2VsZWN0ZWQtazgtc2lnbi1zZWVkMzgAr78FFKnVXp4AjxSDCXq/C763Xew0MDAwMCBzZWxlY3RlZC1rOC11bmlmb3JtLWZyYW1lLWF1ZGl0AG/vt64Bt7F/Ax8zA3A7RY3RUi1JNDAwMDAgc2VsZWN0ZWQtazgtdW5yZXN0cmljdGVkLWVuZHMAq95zK2Q/EYLAc9VLUAa3qOoK18M0MDAwMCBzZWxlY3RlZC1sYXlvdXQtbnVtZXJpY2FsLWxpZmV0aW1lACJtYhRUGa0jIeXFJOkfIAFZLQqFNDAwMDAgc2VsZWN0ZWQtbGNtLXN0b2NrLXdyYXBwZXItZml0AKjD58n8KuQF7+P+WzDWAaVdvFaDNDAwMDAgc2VsZWN0ZWQtbGl2ZS1yb3ctZGl2aXNvcgD6MGLdAO6xSLQZGbsJfRvv2HwVlTQwMDAwIHNlbGVjdGVkLW1vbm9taWFsLWNvb3JkaW5hdGUtcmVmaW5lbWVudAAtHtgZD2vCFqeMeC3I/iIlceTZIDQwMDAwIHNlbGVjdGVkLW5hdGl2ZS1wYXlsb2FkLWJhY2tpbmcASujCtCeJykchVAxQaHOBPHE2JZM0MDAwMCBzZWxlY3RlZC1uZXV0cmFsLXBhdGgtc2VlZDg5MwCqjXqleL931ZGc8oemDWWZ2UY8+TQwMDAwIHNlbGVjdGVkLW5vZGUtY291bnQtc3RvcmFnZQAbgNh7DycijjNN4vB5UfFxTe41nzQwMDAwIHNlbGVjdGVkLW5vZGUtbGl2ZS12b2x1bWUARucvuNCNSExYUdcbkofVQzKrJuI0MDAwMCBzZWxlY3RlZC1ub2RlLXN0b2NrLXJlZmluZW1lbnQA/7bcOmtNCZX+zg1diULDqsxJMhA0MDAwMCBzZWxlY3RlZC1udW1lcmljYWwtYXJlbmEtYmFja2luZwBvZzqFc+F+BhLE1FJTaJq5MWGfezQwMDAwIHNlbGVjdGVkLW9kZC1wcmltZS11bml0LXJvb3QAiEu5RLqVEseroJEdZJxepspQQg80MDAwMCBzZWxlY3RlZC1vbGQtbGVhZi1yZXNlcnZlAOd3fuSv3nLoF7p4gNXuvtWKzIjcNDAwMDAgc2VsZWN0ZWQtb3V0ZXItYm9ycm93aW5nLXdyYXBwZXIAkv+R1LbsKeilWlqP1gQfEcIKIE80MDAwMCBzZWxlY3RlZC1vd25lZC1xdWVyeS1wcml2YXRlLXN0cmVhbQAfZ9yt0BFkoxAHcO5jo/FY8IiJ7jQwMDAwIHNlbGVjdGVkLW93bmVyLWJvdW5kLXJlcGxheQD9XuOzrBPHA0cB4wtr7oJuJn6iTDQwMDAwIHNlbGVjdGVkLW93bmVybWFwLWJpbmRpbmctZ2FwAK2VYwhZ1Fxsu34x3k3pVTMeAgc0NDAwMDAgc2VsZWN0ZWQtcDEwNC1wb3J0LWFkYXB0ZXIAYG/8yO6g/YbfHeUJIhlE1qvU2ws0MDAwMCBzZWxlY3RlZC1wYWNrZXQtYmFja2luZy1lbnZlbG9wZQDQtHEGEZoOPrSa7JCKQWWWd0qaWTQwMDAwIHNlbGVjdGVkLXBhY2tldC1yZXRhaW5lZC1iYWNraW5nADfFAd7i+OWq0t3u7Sf1SR4/YJmrNDAwMDAgc2VsZWN0ZWQtcHJlZml4LWNvZWZmaWNpZW50LXNpdGUA0eLdQca1gTImnDAgb6GauZOH53k0MDAwMCBzZWxlY3RlZC1wcmVmbGlnaHQtcGF0aC1yZXVzZQBCT/BP4cf/K6cVysi6gNHo0THx8jQwMDAwIHNlbGVjdGVkLXByb29mLWJpbmRpbmcAJbLRHP0d5rTEczUfdL1navywzqs0MDAwMCBzZWxlY3RlZC1xdWFkcmF0aWMtcm9vdC1icmFja2V0cwCUM+VvqQA6Oz01eypqpT0UnkYtxzQwMDAwIHNlbGVjdGVkLXJhbmsyLWludGVydHdpbmVyANgVtt8XcWl9vRLmNCdoNFL7wdq4NDAwMDAgc2VsZWN0ZWQtcmVhZGVyLXByZWNvbmRpdGlvbi1jdXRzABbHsIcTjf5gKvjz2qxZRxIl8/k+NDAwMDAgc2VsZWN0ZWQtcmVjb3JkLXBhcnNlLWNhY2hlAFiqpZqcjc3EukojqaHxTyLUC8SbNDAwMDAgc2VsZWN0ZWQtcmVwbGF5LWZhc3RwYXRoAJbreG16bwTnIqKcLiKK/1k85f5fNDAwMDAgc2VsZWN0ZWQtcmVwbGF5LXRvb2xpbmctcmVjZWlwdAAjNqwpZugBAlYaM6IydcLMk51/nzQwMDAwIHNlbGVjdGVkLXJlc2lkdWFsLWxpdmUtdm9sdW1lAN1jWSv73qvmUdZR5AvJl8YxtKvmNDAwMDAgc2VsZWN0ZWQtcm91dGUtbGl2ZS12b2x1bWUA4WbgjTwCQvqEzuFdlQw7hECnR280MDAwMCBzZWxlY3RlZC1ydW50aW1lLWd1YXJkLXN0b2NrAGUl/CAiXWZT+D6Fh9O4wh+XPc/iNDAwMDAgc2VsZWN0ZWQtc2VnbWVudGVkLXBhdWxpLWZlZWRiYWNrAIlaoCW/DlHwxwJZ3QlD2J5oJN9cNDAwMDAgc2VsZWN0ZWQtc2lnbWEtY2hhcnQtYmluZGluZwBm38bRloOFXdSR/sl6lZvlljOORzQwMDAwIHNlbGVjdGVkLXNvdXJjZS1jb3ZlcmFnZS1hdWRpdAAmEn3lzG8oAlH5sv6g/2f1BcTz+DQwMDAwIHNlbGVjdGVkLXNvdXJjZS1wYWNrZXRzACH6fBcPt1UGJH+cDj1VrNsmWkKZNDAwMDAgc2VsZWN0ZWQtc3BhcnNlLWZlZWRiYWNrLXZvbHVtZQAeDyDZIUAl7SbEeGb1Jcm1Sve73DQwMDAwIHNlbGVjdGVkLXN0b2NrLWVudmVsb3BlLW03MwDwGY3mlW7md0eiZ9zI68TDwgDu1jQwMDAwIHNlbGVjdGVkLXN0b2NrLWxvZ3EtcGFyZW50ALEAuR8mnU7y13QgfptG6lVsQqVFNDAwMDAgc2VsZWN0ZWQtc3RvY2stbG9ncS1yaG8tam9pbnQAKCULHieDqIjQap5USKXqyqFIGXQ0MDAwMCBzZWxlY3RlZC1zdG9jay1yaG8tbGVkZ2VyAEG849Xtj3ikNRlSgkORjKTP2daDNDAwMDAgc2VsZWN0ZWQtc3RvY2stc2hhcGUtYS16ZXJvADa66Aq6DWvm1OsXU1aOst6q8mtjNDAwMDAgc2VsZWN0ZWQtc3RvY2stc2hhcnAtaW50ZWdlcgBgR3IfOlr02BjVMLTece53Yw6/kDQwMDAwIHNlbGVjdGVkLXN0cmVhbS1kaXJlY3RvcnktbnVtZXJpY2FsLWF1ZGl0ALwQnkzaHtRUfpj4SkCzNnnjQFrnNDAwMDAgc2VsZWN0ZWQtc3VwcGxpZXJzLWRlLWRpYWdub3N0aWMAbSnmaz6JPPgX+6Tsj1zhL85te4s0MDAwMCBzZWxlY3RlZC10MTYtcGF0dGVybi1kdWFsAB3/aeQkRqNyzGuVSpY/GpFeU5HTNDAwMDAgc2VsZWN0ZWQtdDE2LXRocmVlLXJvbGUtY3ljbGUtc2VlZGMzNzUAvhcTtLOpK6x24iq7oeXAfURfSGI0MDAwMCBzZWxlY3RlZC10b29tMy10eXBlZC1ibG9jawBl5w839GIIZLi/vU/C3kGfnFtBSzQwMDAwIHNlbGVjdGVkLXRydW5jYXRlZC1zb3VyY2UtZW52ZWxvcGUAdzUr8MWOo1E1gNJbt0/raTWUWVU0MDAwMCBzZWxlY3RlZC11bml0LWZhbWlseS1taW5pbWEAqK6M1+dZCTDTjMrDdYDACP+ozaE0MDAwMCBzZWxlY3RlZC11bml0LXJvb3QtdGFwZS1ib3VuZGFyeQD6cJXEoKQv9SmgEO0RdWalo71PozQwMDAwIHNlbGVjdGVkLXVuaXQtd2VpZ2h0LXJldmVyc2FsAK++jqcb7JdwGiJBV/DtsaKCrdR9NDAwMDAgc2VsZWN0ZWQtdmFsaWRhdGlvbi1udW1lcmljYWwtbGlmZXRpbWUAgO/mPcFx/oWX8dHFUGksofVklEA0MDAwMCBzZWxlY3RlZC13aW5kb3dzLXJvbGUtYWRhcHRlcgA5YUDDUQzZeEHNg5hfQxoO1mDTRTQwMDAwIHNlbGVjdGVkLXdvcmQtcmVqZWN0LWV4aGF1c3Rpb24AJCJxGH9PItfIkjNSTzbAyAkc4E40MDAwMCBzZWxlY3RlZC13b3JkLXNjcmF0Y2gAfVM/Wf9PDD2hhBOXdsoPsLwD2N00MDAwMCBzZWxlY3RlZC13cmFwcGVyLXNoYXJpbmcA5lMVNpEWkF0B5WkMg1pgCODP0AU0MDAwMCBzZWxlY3RlZDEwNDItbGluZWFnZS1yZXNvbHV0aW9uOTgAMVxpsoylDX0ZBr++oB4y8E9Cbjg0MDAwMCBzZWxlY3RlZDEwOTQtY2hhcnQtcGhhc2UAMXqlnScJunYZaJNtbfZDLSGX2Vo0MDAwMCBzZWxlY3RlZDEwOTQtZXh0ZW5kZWQtbGFiZWxzLXNlZWQ2NQCSIuq2wOEoY5Sf+fuX5RgiDAuN+zQwMDAwIHNlbGVjdGVkMTA5NC1pZGxlLXJlYXNzaWdubWVudABvg6f3z4XhH3CPZs335DMssF+i8jQwMDAwIHNlbGVjdGVkMTA5NC1wZW5kaW5nLWF4aXMtYXVkaXQAngI6c3l0/XX6vvWfbaourwQ/qY80MDAwMCBzZWxlY3RlZDEwOTQtcmVsZWFzZS1ncmlkANhmrfs2scrppbPjrHNC0Uf7hhGtNDAwMDAgc2VsZWN0ZWQxMDk0LXdpbmRvd3MtbWFuaWZlc3QtYXVkaXQA066sp1CwH822L3M2mCFhabXmaqw0MDAwMCBzZWxlY3RlZDEwOTQtd2luZG93cy1zdWNjZXNzb3IAkrZrhx44IWHUk27WxzE4hNyDm1I0MDAwMCBzZWxlY3RlZDEwOTQtd2lyZS1wcmVmaXgtYXVkaXQA8AcWUDaNRbv/omE28Jt7INhQxaw0MDAwMCBzZWxlY3RlZDYyNi1saW51eC1yZWNvbmNpbGlhdGlvbgAvHCTm4l0u0PIg/2mAXpD+Ew/1ATQwMDAwIHNlbGVjdGl2ZS1ib3Jyb3dpbmcta2FwcGEAjV5vBB9Y1rNqdisY4wEJZVeEXZw0MDAwMCBzZWxlY3RpdmUtYm9ycm93aW5nLW91dGVyLXJldHVuZQBRPYsBUYpwoc/i4N4P2PBUNRQ66TQwMDAwIHNlbGVjdGl2ZS1wMTEyLWNvZGVsaXZlcnkA52btsSiRmgYJNZGa426gv4fj8Ao0MDAwMCBzZWxlY3RpdmUtcXVvdGllbnQtcG9ydC1idWRnZXQAlWOoEDP1vHsoBPRF6apVFdZHNWs0MDAwMCBzZWxlY3RpdmUyNDktaW1wcm92ZW1lbnQtMjAyNjEwMTMAlL1WZgczltSjCdwa8Ec2+O+Yh340MDAwMCBzZWxlY3RpdmUyNDktcGFja2luZy0yMDI2MTAxMwB2LOLjFfjUzFxkABkLWMbt7SC8bzQwMDAwIHNlbGVjdG9yLWJhdGNoaW5nAG8Z93UeNdd8Sa2gwAAA+f2udEIlNDAwMDAgc2VtaWxpbmVhci1taXhlZC10YXJpZmYAxneEqUSTNGTk6iCyHP6oPvg6QMM0MDAwMCBzZXBhcmF0ZWQtYTItcHIzOTQ1LXRyYW5zZmVyAFiINWhR7XRe8BO/xLv5LeDXCN1hNDAwMDAgc2VwYXJhdGVkLXNvdXJjZS10ZWxlc2NvcGUAkKD7+gQr6qDRnJqdDlNUptV3AcI0MDAwMCBzZXNzaW9uLXJlY2VpcHQtMjAyNjEwMjIAZ5BJ2d+cRtHnFRBE+NIrgLMYSe00MDAwMCBzZXZlbi1jdWJlLWFmZmluZS1zZWVkNDMA25eoG87mV4m6S2Dh6FOYRLy3vVY0MDAwMCBzZXZlbi1xdWVyeS1yLWZsb29yAHyXST03b0xpN3gGd0lXl9HNvLZsNDAwMDAgc2V2ZW4tcXVlcnkteG9yLWZsb29yAOtke+kO8kmrBoZOvv1cNsJwTn/mNDAwMDAgc2V2ZW4tc291cmNlLTE2ZXZlbnQtY29ubmVjdG9yLXNlZWRhN2RlNWUAJEcwfOh7K/733Hb9FO8bTa5Uegs0MDAwMCBzZXZlbi1zb3VyY2UtMThldmVudC1jb25uZWN0b3IAEfvaxMG/slpEB+NmLqVFA9rIxVo0MDAwMCBzZXZlbi1zb3VyY2UtMThldmVudC1wcm9maWxlLWNlbnN1cwCCc6nv9qon7QHvrjPTixqHPZQY6TQwMDAwIHNldmVuLXNvdXJjZS1saWZ0LXJlcGxheQBVDgtf+mDV+nRqClyS7JHUVqEmGTQwMDAwIHNldmVuLXNvdXJjZS1yb290LW1pbmltdW0ASik7qkf9URSwAM2z3jjqSfYKoH80MDAwMCBzZXZlbi1zb3VyY2Utd2VpZ2h0MTIzLWNvbm5lY3Rvci1zZWVkN2RiMzBhAAnPqQit+Z5COt+vAO2VzSe9uyzPNDAwMDAgc2V2ZW4tc291cmNlLXdlaWdodDQtZXhhY3QtZmxvb3IAuOKUQy9qvUzpdNzVKZKALxgviUc0MDAwMCBzaGFyZWQtYWdncmVnYXRlLWZvbGxvd3VwAPpx8TDz4MxMJ7l0h+GueP3FTIUNNDAwMDAgc2hhcmVkLWNhcnJpZXItZGVjb2RlcgDNZz+Y7TltPoNlb0F7x2cSWSWvbDQwMDAwIHNoYXJlZC1jYXJyaWVyLWhvc3QA3la5USCChqfwvZmFfZ0Nqofw0A80MDAwMCBzaGFyZWQtY2VudGVyLWZlYXNpYmlsaXR5AGkRvWviYkvyO/OxarAjkci8WmGkNDAwMDAgc2hhcmVkLWNlbnRyZS1rMgAk92aQt5N/4L2r8IvTkYuPqr9D8DQwMDAwIHNoYXJlZC1jaGFydC1jZW50cmUtdmlzaXQAxJ27wJ/hA7+nG3C6NYrDedtUzFU0MDAwMCBzaGFyZWQtZGlydC13YWxrcy04cQDeHEY5FJuuhy3nQC+ueWOcoDugHTQwMDAwIHNoYXJlZC1keWFkaWMtc291cmNlACCSe6KKbjkjTXpgbq/D2mEkkMgZNDAwMDAgc2hhcmVkLWtlcm5lbC1wYWNraW5nAGZ0DEIxZlPmseFzqpcWoH4lzZxbNDAwMDAgc2hhcmVkLWtlcm5lbC1wYWlyLWNvbmNlbnRyYXRpb24AkbvHdeWoJaVa4f7Z8V6dpeo3u9Q0MDAwMCBzaGFyZWQta2VybmVsLXJlcGFja2luZwDh5J6moRGjrMjpWPRM3LEiVR+f3zQwMDAwIHNoYXJlZC1waGFzZS1yZXBhaXItcmFuawByCMJQDgzZMYKy3sUnNmi7lTruKTQwMDAwIHNoYXJlZC1wb2ludC1kaWdlc3QA9rL5CfiV5RIQOIj+kMm2mdqhyNY0MDAwMCBzaGFyZWQtcG9pbnQtZnJhbWUtY29udGFpbnMASskbRt1t9U7cWwn4yyvp6bmlg3o0MDAwMCBzaGFyZWQtcG9pbnQtaW5pdAA203ZfpwOfJmyFVmqo+FoBO/31UTQwMDAwIHNoYXJlZC1zdGFnZWQtaGVscGVyLWludGVyZmFjZQCsr2rE3oIbe5ZbDxa6f8msWGpzUTQwMDAwIHNoYXJwLWJhbmRlZC1yZXNvbHZlbnQAfX89f9HzFndsrnazizLt2G3a45s0MDAwMCBzaGFycC1pbnRlZ2VyLXNwbGl0LWNoYXJnZQCjj8Co2mEMjyCZN1gyXsi7HOFO1jQwMDAwIHNoZWFyLWVxdWl2YXJpYW50LXJvdW5kaW5nLXNlZWQ3MABodNNL5PVhDdcb2Q0gj2Q1RQbBujQwMDAwIHNoZWFyLW9yYml0LWludGVydmFsLWF1ZGl0AFRwh73JAJmJ1NctluAWgWgRVbcYNDAwMDAgc2hlYXItc3RydWN0dXJlLXBlcnR1cmJhdGlvbgBVVeqFzdl+t0g9tf6ddOog7VBFzjQwMDAwIHNoaWZ0ZWQtZ2F1c3NpYW4tY29uZGl0aW9uaW5nAPXAGSw1VFEEFLabod80MNsl9reSNDAwMDAgc2hvcnRlc3QtY2hhcnQtYXhpcy13b3JkcwCkAqCI10NbqY+mENKTOPrFixMQ0TQwMDAwIHNpZ25lZC1jaGFyYWN0ZXJpc3RpYy1zcGVjdHJ1bQAWBJZqIkfvOJqHWpEstBH3PQEGmTQwMDAwIHNpZ25lZC1jb25uZWN0b3Itb2JzdHJ1Y3Rpb24AEhBOE2joaJNBeyHhNm9LF0HQK0g0MDAwMCBzaWduZWQtY29ubmVjdG9yLXBvcnQtZnJvbnRpZXIAHg2np2jH2Opzs1/gkCTl0+M+56A0MDAwMCBzaWduZWQtY29ubmVjdG9yLXRyYW5zZmVyLW1pbmltdW0AxOnqd8ObA8pcz2gFsKKO6D1B5u80MDAwMCBzaWduZWQtZGVwZW5kZW50LWRlbGl2ZXJ5ANUH8Y0QEh2ABtt+kx8YD9QQF8AHNDAwMDAgc2lnbmVkLWR1cGxpY2F0aW9uLXRhcmlmZgB/2s7Q1ZDpRcFQV9pxqbx7Ia1jcTQwMDAwIHNpZ25lZC1keWFkaWMtc2NhbGluZwCZxTDISzAOMmOK/bxQoH0Dx+sNOzQwMDAwIHNpZ25lZC1leHRyYWN0aW9uLWF1ZGl0AMPqsr/vF+3wWEFnc/nbrC5jMtWENDAwMDAgc2lnbmVkLWdhdXNzLWNlbnN1cwCcU+LbrCe6cfUHQ+8h4Z4ByyLgwDQwMDAwIHNpZ25lZC1oYWRhbWFyZC1iYXRjaC1zZWVkNTUANUDlGVJqKeeuYOjyU/nDOoO3Bmw0MDAwMCBzaWduZWQtbWF0cml4LXByaWNlLWNsYXNzaWZpY2F0aW9uAAh1g55rbCB6BeZbh7KMrB9BIkzPNDAwMDAgc2lnbmVkLXBhdWxpLXBhcnRpYWwtZXh0ZW5zaW9uABHvp9EdEmHn75ncfrdFSihrIoEPNDAwMDAgc2lnbmVkLXByaW1lLWNvbm5lY3RvcgCoioQ5eyh3q0993UAvVgGqYsOXEzQwMDAwIHNpZ25lZC1yYW5rLXRyYW5zcG9ydAAAQuITt8OJLhzUcvBv/X8coL29DDQwMDAwIHNpZ25lZC1yb290LWs0ODAtYXVkaXQADAXArz4omeIQZi5GZWdNs1CH/SI0MDAwMCBzaWduZWQtcm9vdC1rNDgwAG2+dlMA4l2Qi00ht9VHFIhIKOPLNDAwMDAgc2lnbmVkLXJvdW5kaW5nLXRpZS1hdWRpdAC25C3r0umhTybHdP+glBTnDOjgGTQwMDAwIHNpZ25lZC1zaWduLXByaWNlLWVudmVsb3BlAOAZ/2LOP624us0l4mjGkvomjdS+NDAwMDAgc2lnbmVkLXNwYXJzZS1wcnVuaW5nAPcPr+NpGdeyomMP2HfaXNW+meiPNDAwMDAgc2ltcGxlLXNjYXR0ZXItYm91bmRhcnkAcEuVxpDsZKDx5VEM1KK6XeZhP3M0MDAwMCBzaW11bHRhbmVvdXMtZ2F0ZS1yb3VuZGluZwBykIeeoQGYNMmERakOPNwQEAV+iTQwMDAwIHNpbmdsZS1jb25uZWN0b3ItY2FwLW9ic3RydWN0aW9uLXNlZWQ2NTNiZDUAgLLxysSc2hQrOnQyXSNi1q8GBis0MDAwMCBzaW5nbGUtaW50ZXJzZWN0aW9uLXBhY2tpbmcAw49hMnQRRnYGidGgSHJaEPrrTvE0MDAwMCBzaW5nbGUtaW50ZXJzZWN0aW9uLXNwZWN0cnVtLWF1ZGl0AOETSbSPrGkY9kTIalhhJjTmiXlkNDAwMDAgc2luZ2xlLXJlZ2lzdGVyLWludGVydmFsLXRyYW5zcG9ydAA4ggIHdBCVIPtV/wwhwZ0TjWuz2DQwMDAwIHNpbmd1bGFyLXBvbHlub21pYWwtY29zdAAfJ02AS5BID8O38D6alt4MtbHynDQwMDAwIHNpbmd1bGFyLXByb2R1Y3QtdGhyZXNob2xkAPMKrBDH1SgqoWqAUoh0K7glhKqXNDAwMDAgc2luZ3VsYXItcmFuay10d28tcGF1bGkAnoHIrsksor4yax4XyktjKvG+k6c0MDAwMCBzaXgtbGFiZWwtY2VudHJhbC1mbG9vcgC35H48qjpTw4yFM+KoSHe6RT1AIzQwMDAwIHNpeC1vd25lci1yZXBhaXItY291bnQA6UftKQ+lhW8OPZtfGcQq6Q/ozmk0MDAwMCBzaXgtc291cmNlLWR1by1hZGQxNi1mbG9vcgAZIoQD/1/sE9LsHkQb8Mo7FChFnjQwMDAwIHNpeC10cmlvLWNvbXBsZXRlLXByb2ZpbGUtYXVkaXQAPD3/dTLAHSPbwk5FQHpZ4bscUzg0MDAwMCBzaXh0aC1yb290LWNvbm5lY3Rvci1zZWVkMjkASthJhsiNWWe8+BM5drBUtzXUAcA0MDAwMCBza2V3LWN1YmljLXJlc3BvbnNlLWdhdGVzAAY2bY0Tt+oEDbZpRjc90osDS4+1NDAwMDAgc2tpcC1jbG9uZXMAsrAMU+jJbCIOO0zRMSYFC0uYoy40MDAwMCBza2lwLXN0cmlwcwAdXgzAt89dj25cLgWi9j/mIadrdTQwMDAwIHNraXAtc3VmZml4AG7crUvPhKk5bHvRGmLEkCkoJ0RvNDAwMDAgc2wyZjMtYWxsLWRpcnR5LW1pbmltdW0A2MwEMdNxGRZVq9hEvhOXjHYEZb00MDAwMCBzbDJmMy1jb25qdWdhdGUtdHJpcGxlLXNlZWQ1OTJmAH6kxt31KTWkVhahZZ3LyS4uFZg6NDAwMDAgc2wyZjMtZGlydHktcm9sZS1mb3VyAHViO8MzEK6Z0DYB0kQKPHCW9LAeNDAwMDAgc2wyei1iaW5hcnktY2FycmllcgDfouC85QLh81ZGlNx/asajhgn+XDQwMDAwIHNsMnotY29tbXV0YXRpdmUtY2FsbGVyLW9ic3RydWN0aW9uAD0N+Gin8ZhFd0RPqtlJcY/NH7AaNDAwMDAgc2wyei1wYXlsb2FkLWVuY29kZXItc3RvcAB1UmPKcqKrpp3kwlprMt8xVGrAxTQwMDAwIHNsMnotcG93ZXItbGVuZ3RoALkwS1Kn9G7F4nIsQGqLOTBc5xuCNDAwMDAgc2wyei1zaGVhci1yZWN1cnJlbmNlLWluZXF1YWxpdHkAc6INQF4YUnDdNE0JkUPNBNR2Z7s0MDAwMCBzbDJ6LXRyYW5zdmVjdGlvbi1tb21lbnQAFG7l7rBYb+wPvr2rhzQ4KjtPm+U0MDAwMCBzbGlkaW5nLXdpbmRvdy1pbnZlcnNlAO6sM3fqf6SIAF3B4Bv/ueqNgUbBNDAwMDAgc21hbGwtY291cGxlZC1mcmFtZS1vcHRpbXVtAHE0vMUMTGdtlgD7fW/kZnTO1lbYNDAwMDAgc29sMTMzNy1jb250YWN0LWZyb250aWVyAAtJLZZ0Q/0f7qZn07X/5RV9R5ufNDAwMDAgc29sMTMzNy1nbG9iYWwtY2VudHJlLWN1dACUqthM8uQqT6q8iGOjc2IwTJFeWDQwMDAwIHNvdXJjZS1hcmNoaXZlcwBmCFEiOclibLILwa1YkRY7QX9DHjQwMDAwIHNvdXJjZS1ib3Jyb3ctY29vcmRpbmF0ZWQtY3Jvc3NvdmVyAB4AFRWnrZTYArKiOdsmaGAzgVBsNDAwMDAgc291cmNlLWNvZGUtY2hhcnQtb3JkZXIA49WhQJI/m16qFyma+EHyZklFcfA0MDAwMCBzb3VyY2UtZGlyZWN0b3J5LXNldHVwLWNvc3QAwUEqjNHLwCs7Y6kcPGvxLqdNDBU0MDAwMCBzb3VyY2UtcGFydG5lci1saWZldGltZXMAsdLKlpZ6xEcY6nLEqmmdU2YNurY0MDAwMCBzb3VyY2UtcGFydG5lci1yZXBhY2sAXKSkcvUtYpA2NfI2iLbaXYxZR9E0MDAwMCBzb3VyY2UtcGFydG5lci1yZXNpZHVhbC1leGNoYW5nZXMAxhRirQkCG5D287vR36r2OWohbog0MDAwMCBzb3VyY2UtcGVybXV0YXRpb24tYXVkaXQAaZawrJnv32daXoKuZ9EE3PG0E880MDAwMCBzb3VyY2UtcXVlcnktZmluaXRlLWZpZWxkLWF1ZGl0AM31krfZneWH4O2l4KI/GUT46b3LNDAwMDAgc291cmNlLXdpbmRvdy1pbmRleABst4MHDPqx0IZEVIRnNKZmB6AYiTQwMDAwIHNvdXJjZTUyNy1maXZlLXN0YWdlLWNyb3Nzb3ZlcgD+ZxQXWGBc1u+HyBnfKasnbu14yzQwMDAwIHNvdXJjZWNvZGUtY29tbXV0YW50AOhjPwNgMbY9XOJTNGCRYPKTxa0cNDAwMDAgc3BhY2UtY2FwcGVkLWRpcnR5LWVjaG8A08BFeFSrGLzlZgz2hxYwGeufIy40MDAwMCBzcGFuLWVudHJhbmNlLXdpZHRoALHwJ9gCVwxjBN66oeBvfGF1c6dMNDAwMDAgc3BhcnNlLWZ1c2lvbi1vcmJpdHMtcHJvZHVjdGlvbgBeQNnwhLrI38RAe4xnYHZbhWETLTQwMDAwIHNwYXJzZS1mdXNpb24tb3JiaXRzALVYvl1LJq9RP7pOD5e22rIpdg+dNDAwMDAgc3BhcnNlLXJlZHVuZGFudC1kZWNvZGVyAGzKHRQM8MMEFN/pQYcEct6eQXO2NDAwMDAgc3BkLWRpcnR5LWNpcmN1aXQtd2l0bmVzcwD+pXTZfcarv4hWXr7e+L0I4oIr7jQwMDAwIHNwZC1pbnZlcnNlLWNpcmN1aXQtd2l0bmVzcwA/ORJC+5pm7xaP4HlHO+MQoM2SiTQwMDAwIHNwbGl0LWJ1ZGdldC1zdXJ2aXZvcnMAG43nvibeAVlwG81swacBJe1dBWg0MDAwMCBzcGxpdC1jZW50cmVzLWdsb2JhbACSretCyapteQc1hp4yGh59ue5ASDQwMDAwIHNwbGl0LW1pbm1heC1hdWRpdC1zZWVkNjMAPk4MxiWcPeWOJr0HlcmhrzlL1vw0MDAwMCBzcGxpdC1yYWRpY2FsLXBlbmNpbACrePi0IUDzZNRSGP9MXvvz+onExzQwMDAwIHNwbGl0LXNraXAAKJmjCScJUdNkgCX7fkFzp4ZryeE0MDAwMCBzcXVhcmUtemVyby1pZGVtcG90ZW50LWNvbXBpbGVyACzvvQG9qEsH51dnU7grXzjk6P9kNDAwMDAgc3F1YXJlLXplcm8tcmFkaWNhbC1yZWFjaGFiaWxpdHkALAftNifReK62Phrw/P4adSrKSKY0MDAwMCBzcXVhcmUtemVyby10cmlwbGUtZmFub3V0AGbGcakx8QtppHxUt+w1zXCpJ7DFNDAwMDAgc3RhYmlsaXplZC1kaXJ0eS1jaGFydABSDM6MlaTXsrV25GNOaUj6EV9zQTQwMDAwIHN0YWdlLXBhaXItcGVyZm9ybWFuY2UAM32Xr4SQKGeCnBvtAAoX/DkUnbU0MDAwMCBzdGFnZS1yYW5rLXJpZ2lkaXR5NDEA6H9ZA/hdZ7vJhUhsUuYOibGKXp40MDAwMCBzdGFnZS16ZXJvLWNvbW11dGF0aW9uLWF1ZGl0AIXyxXtBO8fFF0l1it6YlefWzohINDAwMDAgc3RhZ2UtemVyby1mb3JjZWQtdHJhbnNsYXRpb24AWwr+b+Nd4yJnW3vaK2+zKFYD8vk0MDAwMCBzdGFnZTItYnJlYWtldmVuADjHtagQaBPpzwdpUQQiCxxJI6RTNDAwMDAgc3RhZ2UzLXN0b2NrLW1hcmdpbgDaMcUDFBtiBL6kIUAa+n87GukmNzQwMDAwIHN0YWdlZC02NDQtNjYwLWluZGVwZW5kZW50LWF1ZGl0ACMCbxhaWnCSecFT8lS2mseWj6m5NDAwMDAgc3RhZ2VkLTY0NC02NjAtbmF0aXZlLWJpbmRpbmctYXVkaXQAwJ17SOb0lvcFEWLz9iU5vTn5+Cg0MDAwMCBzdGFnZWQtY29tcGVuc2F0aW9uLWZvcmVzdHMAcVkQgaxnTOf4/zhU0BCldfyPhVc0MDAwMCBzdGFnZWQtZG9ub3ItcmVsZWFzZQD9ICXvU9tlChvsmxhp6xQjrh/oJDQwMDAwIHN0YWdlZC1lbnRyeS1jZW5zdXMtMzczNAABpP4vPioWn2xXHAylhbXEycDX9TQwMDAwIHN0YWdlZC1lbnRyeS1yZWxlYXNlLWF1ZGl0AA7dbEXQ/JZf6foWnSZzlwnWiNNJNDAwMDAgc3RhZ2VkLWZvdXJ0aC1jZWlsaW5nLWVxdWl2YWxlbmNlAAhajwdh7bMoE3GT7WvGKwSOoCNSNDAwMDAgc3RhZ2VkLWZvdXJ0aC1taXh0dXJlLWNlaWxpbmcAfT61Mk2fyRHaeTPN/8iT617ZqYU0MDAwMCBzdGFnZWQtcGFpci1mcmVzaC1ib290c3RyYXAtcmVwbGF5AM5eGiAZjVm5a+4FMoqfxbwn9sFUNDAwMDAgc3RhZ2VkLXdpZHRoLXQ0ODgAmhLAzWheq964NiEBUsb9fi1i0kI0MDAwMCBzdGFnZWQ1NDQtYTE4NTgtY29udHJhY3Rpb24tYXVkaXQAAc3go0nTGhMJrsAhpXh0ZHtr1Hk0MDAwMCBzdGFnZWQ1NDQtYTItY29tcG9zaXRpb24tYXVkaXQASRue31VaC28BVrMiFub6xYssnNI0MDAwMCBzdGFnZWQ1NDQtYTItY29uZS1jb21wb3NpdGlvbgB5AMUscRyYKHXMFnvtiTGdWST+uTQwMDAwIHN0YWdlZDU0NC1hMi1ncmFwaC1yZXdyaXRlAB2cVgmdbxO7lztFPNAHgyI+MGhaNDAwMDAgc3RhZ2VkNTQ0LWNlcnRpZmllZC1lbmRwb2ludABjy5GeTqaL7gVgCHFSEBglu6NIljQwMDAwIHN0YWdlZDU0NC1jbG9jay1jZWlsaW5nAOhnt28RRi+Kc9ZXqE5dHer+ALF+NDAwMDAgc3RhZ2VkNTQ0LWV4YWN0LXJlc2lkdWUtbGlmZXRpbWUA2mgoEunwFcRolYAWqLcxlEUAb1M0MDAwMCBzdGFnZWQ1NDQtaGVscGVyNjAwLXNpZ24tY29sdW1ucwAyk4Kb4DEV6FiJlAeU+W4m5WLGkTQwMDAwIHN0YWdlZDU0NC1pbnRlcm5hbC1lcnJvci10cmFuc2ZlcgBrjmVJlFvIyCat+DsDSIcafISO3DQwMDAwIHN0YWdlZDU0NC1qb2ludC1jaGlsZC1yYW5rLWludGVyZmFjZQAMcTYRLR4xVUMUEYAGXSuhQQj+8TQwMDAwIHN0YWdlZDU0NC1qb2ludC1wcmljZS1yZWdpb24AmnG9f+Ev4JxbS9TqIOnfjY2YeHM0MDAwMCBzdGFnZWQ1NDQtbG9jYWwtdHdvLWFkZAAkddEaSoIl7noY7n/pY8bPocbYOzQwMDAwIHN0YWdlZDU0NC1sb3NpbmctZmlyc3QtZDIA80GEDdOEl55TMyzzmVaBV3nGnAE0MDAwMCBzdGFnZWQ1NDQtbWl4ZWQtZm91cnRoLWVudHJ5AC0k3XbfUMDph5d/cl0FA5l0rkrqNDAwMDAgc3RhZ2VkNTQ0LW1peGVkLWlkbGUtcmViaW5kAHly/B+uhm8ckp+AGgFDa0yK/GNYNDAwMDAgc3RhZ2VkNTQ0LW1vdmVkLWFkZC1wYWlyAJ72BjPy+6T2BTFN3f5RgR21jeosNDAwMDAgc3RhZ2VkNTQ0LW5hdGl2ZS1xdWFkcmF0aWMtYXVkaXQAE2v3NzDJu8QAFor6nakvLl7Pu3g0MDAwMCBzdGFnZWQ1NDQtbmV1dHJhbC1maXhlZC1kMgA8Tt/eUDEri9wWYYA+SQJ05PywWzQwMDAwIHN0YWdlZDU0NC1uZXV0cmFsLXR3by1lZGl0ADGn66OD/ad+vY5qtD5up5fUYmK5NDAwMDAgc3RhZ2VkNTQ0LXBhaWQtbmF0aXZlLWZ1c2lvbgDk2OGIZMDr4J7UIIsvY113I1v3xDQwMDAwIHN0YWdlZDU0NC1wb29sZWQtY2VpbGluZy1maWxsACkiTQeDoXq0JmyCOfhuNf6rOLxNNDAwMDAgc3RhZ2VkNTQ0LXByb2R1Y2VyLXJldHVybgAO0XPhTqFTrO6D21VQypEW+wy6EDQwMDAwIHN0YWdlZDU0NC1yNDM3LWFkbWlzc2lvbi1hdWRpdADmRM+taFT1oVOSu7+BNcKLRonzITQwMDAwIHN0YWdlZDU0NC1yZWZpbmVkLWVuZHBvaW50AFsDhVS2svea1PGJ2AomGNtt68YXNDAwMDAgc3RhZ2VkNTQ0LXNjYWxhci1pbnRlcmlvci1yZWZpdACIAfeuVC33hR/SLBqiBDvR+s36XjQwMDAwIHN0YWdlZDU0NC1zZXBhcmF0ZWQtYTIAtUpZRGOCA/aYgcEu9RZwH+nCMzI0MDAwMCBzdGFnZWQ1NDQtc3RhdGlvbmFyeS1wYWlycwC0BZtJpVOQoF6USZLciiGekDi+JDQwMDAwIHN0YWdlZDU0NC10Mzg1AGcQTACTEQRca3ERWQGwQvVbov3BNDAwMDAgc3RhZ2VkNTQ0LXQ0ODgACf6uTjh7EyeYNmhAyZtCSKUcvTI0MDAwMCBzdGFnZWQ1NDQtdGVybWluYWwtZXh0ZW5zaW9uLWJ1ZGdldACe24TCgns0AJ8lftyZFDrLk9OC5DQwMDAwIHN0YWdlZDU0NC10ZXJtaW5hbC1nYXAtZmlsbABufgup0uoUvoVq11SWLiLAd2h7xjQwMDAwIHN0YWdlZDU0NC10ZXJtaW5hbC1vd25lci1icmlkZ2UtYXVkaXQAyJi/HFI52vzkeNTY/XI/fXkf+Gg0MDAwMCBzdGFnZWQ1NDQtdHJpcGxlLWVudHJ5LWZpbGwAQZAGdz0RgN3qJVCb9p4q1vBX/3M0MDAwMCBzdGFnZWQ1NDQtdHdvLWFkZC1yZWR1Y3Rpb24tcmV2aWV3AGxtAeKKMhmLfzm9EBS2Jr+UFlUDNDAwMDAgc3RhZ2VkNTQ0LXR3by1uZWlnaGJvdXItaW52b2ljZQCxB0GAXI6Yfd8ZrG6Fc2lzbfu42zQwMDAwIHN0YWdlZDU0NC13aWR0aC1sZXZlci1zY3JlZW4AajxV36BO59dmDxWUH4RPUbasxmc0MDAwMCBzdGFnZ2VyZWQtc2luZ2xlLW93bmVyLW9ic3RydWN0aW9uABJ8P7Ukwv7NY8w3quuPj2neVFbQNDAwMDAgc3RhbmRhbG9uZS1lbGVtZW50YXJ5LWNydC1yYXcAUl5yIZG5M8CCxI9uL1uD9RQH+js0MDAwMCBzdGF0aWM0NC1wYWNraW5nLWNlaWxpbmctdmFsaWRhdGlvbgBdkG0Q5QJMuYTK/+8xMo4ZJH0vujQwMDAwIHN0YXRpYzQ0LXBhY2tpbmctY2VpbGluZwClo2yGgBxadBUueHP5QnnyzfAYUDQwMDAwIHN0YXRpYzQ0LXI0ODAtY29tcG9zaXRpb24AEz5z+B2HKNwo7yz/GO+Oe832Rv40MDAwMCBzdGF0aWM0NC1zZWxlY3RpdmUtdmFsaWRhdGlvbgD/oAZMxvM9PbmMnGf0BsZ+SE+WFzQwMDAwIHN0YXRpYzQ0LXNlbGVjdGl2ZQAVa58KRmKy/RvuqfxuL0sm0DAeOjQwMDAwIHN0b2NrLWNvZWZmaWNpZW50LWFic2VudABKN2yKwbsRlJU5tNkBssqhi+cyUDQwMDAwIHN0b2NrLWNvZWZmaWNpZW50LW51bGxzAOjTm3WWzsIONDZ8tEpncV187iToNDAwMDAgc3RvY2stbWFyZ2luLWNoYWluAJvt3Me7EV/yAI+644CZjNGHCKW0NDAwMDAgc3RvY2stbWFyZ2luLXRpZW91dC1pbmRlcGVuZGVudABsjRkP6Q9xe7/NkOeQ+n3tpDMxADQwMDAwIHN0b2NrLXJoby1sZWRnZXIAmVh6pWVXQA36rg7YpGLyRKE1IS80MDAwMCBzdG9jay1yb3V0aW5nLWZhY3RvcgCPMBWBo22/RjK9VbrUMjwksQI1gDQwMDAwIHN0b2NrLXNhdmluZy1mbG9vci13aW5kb3cA9LA8uU6fVRkS8ZNhkoVgq0f44QU0MDAwMCBzdG9yYWdlLXNwYXJlLWJpdHMA5QLkPzQxDeisjzYR3lZe3Y4q0Ms0MDAwMCBzdHJlYW0tc2hhZG93LXJvdy11cGRhdGUASA1SVheMe0LEEw+rxYdtjfNRvZ40MDAwMCBzdHJlYW1lZC1yZWNvbmNpbGlhdGlvbgB1OEYLQtpbZHx3mkr9s+qfURBAkjQwMDAwIHN0cmVhbWluZy10d2lkZGxlLWhlYWRlcgCNMLbBxx7IwM1VbSZNRtiDZq+deDQwMDAwIHN0cmljdC1vcmRpbmFyeS1jb25zdW1lcgAkJNNTSQIgj2apz/W/MjuptXaIvzQwMDAwIHN0cmljdC1wYWRkaW5nLWJvcnJvd2luZwBsCtjdfsB5IFSMNvSVWX5+8s3gEjQwMDAwIHN0cmljdC1wYXlsb2FkLWZhaWwtY2xvc2VkLWludmVudG9yeQDD7LyayefiG5r/2ts1/tmpPmfg7zQwMDAwIHN0cmljdC1wYXlsb2FkLWxhcmdlLWludGVnZXJzAJyJo6SF0KLLf7IZo4+v7/BA0Py+NDAwMDAgc3RyaWN0LXBheWxvYWQtbmVnYXRpdmUtcmV1c2UAtHGwjP5I5Wov0486iYTYzM0HX0g0MDAwMCBzdHJpY3QtcGF5bG9hZC1wYWlyZWQtd2FsawBEVKrO2j8SETHx6km/HSnPoKWOhzQwMDAwIHN0cmljdC1yZXBsYXktcGF5bG9hZC1jb21wYXJpc29uAIoUdiKFNLmO64AQcs0Zmc0ZN0uzNDAwMDAgc3RyaWN0LXNlbGVjdG9yLWNvbnN1bWVyAOBX3Tn9esSeMQBHAlVyteYMYsKQNDAwMDAgc3RydWN0dXJhbC1nYWluAFYGJwFbpbymCQDlS3yODAcqQPHvNDAwMDAgc3Vic3BhY2UtdGhyZWUtY29udGFjdC1wcmljaW5nALwOrTjg5V/zCUYrIpveTuj0BRUFNDAwMDAgc3Vic3BhY2UxNi1yNDIwLXZhbGlkYXRpb24AVDFPtN+Zj8fCVfF15oeA56aJ+Nk0MDAwMCBzdWJzcGFjZTE2LXI0MjAAQP0GPekJ9UBfo28c1cNSHq0U/g40MDAwMCBzdWZmaXgtZXJyb3ItcmVjb3VudACckzXhlJPB2psw2NvXbD1jgFUZfTQwMDAwIHN1cGVyaW9yLXJlcGxpY2Eta2FwcGEAuLmJnhhbuCqhN1XKHvr3NRn5zOU0MDAwMCBzdXBwbGllci1jaXJjdWl0LWNvbnNvbGlkYXRpb24ApUULpoAydSa4SAjtzQEEljGgXZc0MDAwMCBzdXBwbGllci1zYXZpbmctaGFsZgAYeKRjoiNmXiGvz06gAzSMtVO8azQwMDAwIHN1cHBvcnQtYmFsYW5jZWQtcG9ydC1mbG9vcgAsfVwGkmNo7aWiB28SlHhCgkq74zQwMDAwIHN1cmNoYXJnZWQtZHlhZGljLWNvbXBhcmF0b3IAUkWRtDNHxpVC+yW2Kgo3Ik/EUm00MDAwMCBzdzQtY3J0LWVuZHBvaW50AGa/7bDx28gQunCdHgJimNoMRE7cNDAwMDAgc3c0LWZ1bGxwYWlyLXNlZWQyOQCZZofsCPvmWW3qs2jYMIqt/5seOTQwMDAwIHN3NC1vd25lci1vcHRpbWFsaXR5LXZhbGlkYXRpb24AsimzHckwmm3lsoAUfH0XDjd2uR40MDAwMCBzdzQtb3duZXItb3B0aW1hbGl0eQC30CEdzHPmG7/xg7HwMi1AD13agTQwMDAwIHN3YXAtY29tcG9uZW50LWN1dACfaZ3PKrvzZC588Ws9Yp0+KamTvTQwMDAwIHN3YXAtY29udGFjdC1mdXNpb24tZ2F0ZQAwo2FOZdgYUJITk9LMdy/3H2Qm/jQwMDAwIHN3YXAtcGF0aC1zdGFyLWNlcnRpZmljYXRlAKHiRb/yHNvXqbnIhjHMfpTwI7QeNDAwMDAgc3dhcC1yb3ctb3JkZXItY3V0AMw3V4OyCiu8dMnG/zJ5zMjHhrjNNDAwMDAgc3dhcG5pbC1wYXJhbGxlbACAL0bBCy+K6q1SbfOtXXiaPPLf1jQwMDAwIHN5bWJvbGljLWludGVnZXItYmF0Y2gtd2lkdGgA7rQSwpDVSWq8A/Th50qoZWTQEqY0MDAwMCBzeW1tZXRyaWMtYWRqYWNlbnQtY3V0LWJvdW5kANyFFFaMQJNbWqit1qSO6ICVUNddNDAwMDAgc3ltbWV0cmljLXBoYXNlLXJpZ2lkaXR5AC4MnHYpbRHqNOt1v9//mIKwzPCqNDAwMDAgc3ltbWV0cmljLXNpbmdsZS1wcmVtaXVtLXRhcmlmZgAFDTNE/9Wj95hqQmmyASnOQixiKzQwMDAwIHN5bXBsZWN0aWMtZGVmaWNpZW5jeS10d28tc3BlY3RyYWwA67ysHruJ3kkTpilr2vw3WxgZ0FI0MDAwMCBzeW50aGV0aWMtYWxsc2l6ZS1pZGVudGl0eQCXndO6TKGnHrLPRTFhNoIRvygCPDQwMDAwIHN5bnRoZXRpYy1sYXlvdXQtaW5kZXBlbmRlbnQAmghPGHJ868fpY+6AkWy7TDQRPro0MDAwMCBzeW50aGV0aWMtbW9ub21pYWwtcGFja2V0cwDgTMFbvEOaPtZ+eMD/dcKLmehLCjQwMDAwIHN5bnRoZXRpYy10d2lkZGxlLWNpcmN1aXQAMWLGtY8nE43ZEb4vbgeIu3MOzrc0MDAwMCBzeW50aGV0aWMtdHdpZGRsZS10YXBlcwBKezD+53Z46Zj6+D3oHTbg8ZwYvjQwMDAwIHQxNDgtY2Fycmllci1za2lwcwAzIeRr37e6miEkyx9Vfj3T2beCbjQwMDAwIHQxNi1hdWRpdC1tdXRhbnQtY292ZXJhZ2UA8vul6yGRXPmWjM3ixH82PUjdEMU0MDAwMCB0MTYtYnVmZmVyLWNvbmNlbnRyYXRpb24A/UZro/Gq0iU8iFoShCB8BCpTg740MDAwMCB0MTYtYnVmZmVyLXRyYW5zcG9ydC1jdXQAeuptuWRIfcZnvOF4so64dUAJOLs0MDAwMCB0MTYtY29tcG9zZWQtY3ljbGVzAOsw2KtK24tyhPsZqh4n0lyif2lhNDAwMDAgdDE2LWNvbmNhdml0eS1hdWRpdDYxAINNOhomx4akgCtCaQlosCyJ6DYpNDAwMDAgdDE2LWNyb3NzLWNhbGwtY3ljbGUtcGFja2luZy1pbXByb3ZlbWVudAClRA6QrxQ6Zb0kXeP1gAoG1lTFojQwMDAwIHQxNi1kaXJlY3QtY3ljbGUtb2JzdHJ1Y3Rpb24AY8/efEU+2qKzWukl5xsvY7rhT4I0MDAwMCB0MTYtZGlzdGluY3QtY2FsbC1hdHRhaW5tZW50ABLbZ27hubd70jMDacfearXUd7FfNDAwMDAgdDE2LWludGVnZXItcGhhc2UAQYCxwCmZgA73auGqNhMC/LM6st00MDAwMCB0MTYtaW50ZWdlci1yZXNpZHVlLW9wdGltdW0AAFMrO9DjO744ujeVc3OavLh2wvo0MDAwMCB0MTYtaW50ZWdlci11bmlmb3JtABhS6vMUWFk3qL9O7KhqKDFHp6raNDAwMDAgdDE2LWludm9pY2UtYm91bmRhcnktYXVkaXQARXmQOKKkU8cr0kX6RDoXrB0Pm5I0MDAwMCB0MTYtaW52b2ljZS1yZWFkLWNhY2hlAB5s4eXFgL1dEhBOdU5nJtiQhEcTNDAwMDAgdDE2LWpvaW50LXdpZHRoLXJlYWxpemF0aW9uLWN1dHMAwoRnZ2lsKf+fTDzwLpCwAWxHZDk0MDAwMCB0MTYtbW9tZW50LW9yZGVyLWF1ZGl0AKZ30D7pUDaAT5LyX5td5p3hSq0vNDAwMDAgdDE2LW5ldXRyYWwtdW5sb2NrABheix+WgIYVuCoxs0HTZPrt0bV/NDAwMDAgdDE2LW5vbnJlY3Rhbmd1bGFyLXJlYWxpemF0aW9uLWN1dACbwkPVMpifnz/mg1GaKJkmVlB3jDQwMDAwIHQxNi1vd25lci1hdWRpdC1zZWVkNjcAucbSX2vmTuYN6Z/eKZTw/w7l6yE0MDAwMCB0MTYtcG9zdC11bmxvY2stY3ljbGUA2rSE5PoZGc53T41fCej1XzcBslI0MDAwMCB0MTYtcmFuazctcHJvdmlkZXItY29tcG9zaXRpb24AW5bO2RPsCnA/43jyoWnHbM6CjpQ0MDAwMCB0MTYtcmVvcmRlcmVkLWF1Z21lbnRpbmctY2hhaW4AFXUHUlIJeQ87r86KEzQMuBXbtXU0MDAwMCB0MTYtcmVwZWF0ZWQtYXVnbWVudGF0aW9ucwBjMuvqDuik/Fk3ZulvQEag6qNmYzQwMDAwIHQxNi1zaGFycC1wcm9maWxlLWFkbWlzc2lvbgDTouRew7ECSwIf1ZmCRp24sOH2sDQwMDAwIHQxNi10ZW4taGVscGVyLXJlcGFjawCyd+Isxaq/HP+FGZwRWWHcLy6dVjQwMDAwIHQxNi10aHJlZS1oZWxwZXItY3ljbGUAjl1tKtIo+oRjVULGN4LK42V0SYA0MDAwMCB0MTYtdHdvLXJvbGUtbW9tZW50LXN3YXAAMFjwlo7uYuBLFb7bnEb8DQ1Io2M0MDAwMCB0MTYtdW5pcXVlLWNyb3NzaW5ncwAZr0A6OnfuYXYevZgIgKZ0jUMOIjQwMDAwIHQxNi13aW5kb3ctY2FwANNIaBoVvVwP74pMmCj70Ff0+7rWNDAwMDAgdDE4NS1kaXJ0eS1lbnRyeS1mcmFtZS1zY3JlZW5zAG0u2j8QrXJ6Hutq3GRWHHrDyiX8NDAwMDAgdDE4NS1pbnRlZ3JhbC1vcHRpbWFsLWZhY2UA6s8ySiS1LeiU+zu4Qv6128ulOH40MDAwMCB0MTg1LXByZWNpc2lvbi1yZXBsYXkAmrBzounjX+Fdl0Ql+lavIWegVDk0MDAwMCB0MjEtYmlub21pYWwtYXVkaXQAN9WS43X0soKJR8ICmOsLYWT9UUk0MDAwMCB0MjEtaW50ZXJmYWNlLWJ1ZGdldAAxg6P7WWNsoZJI4EPxeuRWfFUGmDQwMDAwIHQyNDgtZGlydGVudHJ5LXJlc2lkdWUAtuzc3ECc6lZOq/lV8Qe8yrktmrg0MDAwMCB0MjktY2FwYWNpdHktYXVkaXQAEzef7T8Wh0fdkbD8cKNF8qtJDMU0MDAwMCB0MjktY2FwYWNpdHktcHJvamVjdGlvbi1zcGVjdHJ1bQADhmwoNY/CglougLG5OqucaksDkTQwMDAwIHQyOS1qb2ludC1iaW4tc3BlY3RydW0AC6sWeFAE+43ktT3yLol2oo5jyB80MDAwMCB0MzYwLWxvY2FsLXJld3JpdGUtY2Vuc3VzAAeU/EKttpo7T0k8GrHgTog/t2XrNDAwMDAgdDM2MC1yb2xlLWdhcADWG7evzko5BEZju1A6zboBSY2e9zQwMDAwIHQzNy1iaW5vbWlhbC1lbmRwb2ludC1hdWRpdC1zZWVkNzgArtiA0LaE/kMetmeoz1cU2SkBkJY0MDAwMCB0MzctYm9vdHN0cmFwLWRlcHRoLXNlZWQ2MABP5OxRx4xKTJIxWB98sqgDRa3JVjQwMDAwIHQzNy1lbmRwb2ludHMtaW5kZXBlbmRlbnQA3hQxZmSZR0ZiZocjxeesgd3hwxU0MDAwMCB0MzctaW50ZWdlci1zbGFjay1hdWRpdAD3LzrTJGVbJPOpGXrEIu0KPE2GOTQwMDAwIHQzNy1pbnRlZ3JhbGl0eS1hdWRpdABhLabuaVhZhxZ79ykLR1hqYzmiVDQwMDAwIHQzNy1sb2ctY292ZXJhZ2Utc2VlZDg2AM7Nxf1oIGchhzupFP/mtkfhj5VHNDAwMDAgdDM3LXJhdGlvbmFsLXJlZmluZW1lbnQAIbHpQy6VZusOidPz6ppqYaAT9KE0MDAwMCB0MzctcmVjZWlwdC1yb2xlLWJpbmRpbmcAHQjKUMW8N2Ot7IP1lVXqkW8pddw0MDAwMCB0MzctcmVzdG9yYXRpb24tZGVmZXJyYWwA8JalbQn5p3p1VGzFgs3VzVYlEuQ0MDAwMCB0Mzctc2xpY2UtYml0bWFwcwCN8V8B4TlOGEIxoCks/JhFtqf2UTQwMDAwIHQzNy1zdXBwb3J0LWF1ZGl0LXNlZWQ2NgCYlm3RfaMQYGUcCBu9hx8SWmTREzQwMDAwIHQzNy1zdXBwb3J0LWludGVydmFsAO3ztC4f5T0iAlKaHQ+yQKTMihZ5NDAwMDAgdDM4NS1yNDM3LWNvcHktYXVkaXQASAg70/M+X/7T3xcfkMjjOGMM5hc0MDAwMCB0NDUwLXJlcGxpY2EtY291bnQAS+RiXJHEhwY9+stN/dj8Wp7iJA00MDAwMCB0NDg4LWF0dGFpbnMtcmV0aW1lZC1wYWNraW5nLWNhcAB57uQ0bswGRoUUx4ER6863BSdSETQwMDAwIHQ0ODgtY29tcG9zaXRpb24tYXJpdGhtZXRpYy1hdWRpdADe0A9CbnE5GHEeqBTYU13Z28iUEDQwMDAwIHQ0ODgtaW5kZXBlbmRlbnQtYXVkaXQAI2637QRBBm4QpjiFXyGrJn4eKlM0MDAwMCB0NDg4LW1vbWVudC1zdHJhZGRsZQBr0YUegmNDwSAnc9AwgYUfHzByVjQwMDAwIHQ0ODgtb3duZXJzaGlwLWludm9pY2UA3cudDBfZ6QphsX4apM1a3soNGS00MDAwMCB0NzQtMjMyMi1tb3ZlLXByaWNlcwBiKmA2PXQkMGvVHKKss/kRVTjedzQwMDAwIHQ3NC0yNDM1LWZpbGwtaW5kZXBlbmRlbnQtY2hlY2sAV7A7VORyx9VawJV5C1nZ5ZRxVm40MDAwMCB0NzQtMjQzNS1vcHRpbWFsLW93bmVyLW1hcABS62FertSvAf22Tj9OS1Cm+QXg/jQwMDAwIHQ3NC0yNTMwLXNvdXJjZS1wYXJ0bmVyLWF1ZGl0APGCCz/euOSEITNs0FRVjZfvhM0yNDAwMDAgdDc0LTI3NTEtam9pbnQtdHdlbHZlLWF1ZGl0ADy5j3pTDhwdw486V1S8c1rCplw3NDAwMDAgdDc0LTMwMTUtcmVzdG9yZS1lZGl0LWF1ZGl0AOBr1i02kvdIiDhwagwTc762esLCNDAwMDAgdDc0LTgwYWxpYXMtb3duZXItZmlsbAA7goBBoXfCbred+UW97hPomSFpRTQwMDAwIHQ3NC1hbnRpY2lwYXRvcnktbmF0aXZlLXByZWZpeADrYsyHYO7PxVpkY2cMiOrT+RXKpTQwMDAwIHQ3NC1ib3Jyb3ctcmVwYWNrZWQACGNt7efzeGLHP5CliuKQCErlBbg0MDAwMCB0NzQtYm9ycm93NDMtaW5kZXBlbmRlbnQtY2hlY2sAx/E4McqWb1Zd7srru+4T5b32bZI0MDAwMCB0NzQtY2xhaW0tbGluZWFnZS1sZWRnZXIAuw3e5dALXKzN7TnfVvoaJZ1K9KE0MDAwMCB0NzQtY2xlYW51cC1idWZmZXItcG9vbGluZwD8YvWtH89BxZgzQXDLSm26eJHdyzQwMDAwIHQ3NC1jb2xkLWhvc3QtcmVzdG9yYXRpb24AxAAzz7vadBprRh6YTbI8XAQNaME0MDAwMCB0NzQtY29sZC1yZXN0b3JhdGlvbi1zY3JlZW4Ai7eLNmIxks3douvkgQVZwTPd1OA0MDAwMCB0NzQtY29uY2VudHJhdGVkLXNvdXJjZS1wYXJ0bmVycwCGcRCxyuFroaF/zAWc4mnJjg8QRTQwMDAwIHQ3NC1kaWFnb25hbC13aW5kb3ctYm91bmQAwU6N2k4uLUKuAGNpoXuoT625wH00MDAwMCB0NzQtZW50cmFuY2UtcmFpc2UtcHJpY2VzAINTypjqE6AD0UGefgwZ5M5L4OoyNDAwMDAgdDc0LWVudHJhbmNlLXdyYXBwZXItYXVkaXQAIqEd0c9f2MSr7J+i6a2suG76I100MDAwMCB0NzQtZXZhY3VhdGlvbi1wb3dlci1hdWRpdAAh0B3X7sXn0fuut4kFh5JTdi3o6DQwMDAwIHQ3NC1leGFjdC1jb2Fyc2UtaW50ZWdyYXRpb24AmtMuxyH7/Qtw8AOWgLKIpJWAQ9U0MDAwMCB0NzQtZmluZTEyMC1vdXRlcjE0MAAQkRg0maU896D3EsjpAqYXi9qoLzQwMDAwIHQ3NC1maW5lMzAwLW91dGVyMzIwAEQ7atiZ0qV5npRGzXyNvIWXzZi4NDAwMDAgdDc0LWZpbmU0NTAtb3V0ZXI0NzAACiBwpcVd11O71L6OyLv2FAtT5/Y0MDAwMCB0NzQtZmluZTY0LWVuZHBvaW50cwA8xHJ7yua3L4whKtmB5Qh6WLLkZDQwMDAwIHQ3NC1mb3VyLXJvbGUtbGVkZ2VyLWF1ZGl0ACHJeyNQuhEAFcsYogFcp82XavNmNDAwMDAgdDc0LWluaGVyaXRlZC1jZW50cmUtZmxvb3IAxB4bosoILErm7e1EiXvA6L+ddR00MDAwMCB0NzQtam9pbnQtb3duZXItaGlsbGNsaW1iACpptS7QbafZ/YPh7Tf/bR09nHiENDAwMDAgdDc0LWpvaW50LXR3ZWx2ZS1yZXRpcmVkNwDEGZInfUY26tWo4AlD1edSihQFKjQwMDAwIHQ3NC1qb2ludC10d2VsdmUAbYoIKDYf8mawr0jcaWXt6pqpyAE0MDAwMCB0NzQtazU1NC1sb2NhbC1leGhhdXN0aW9uAPow+1dqlTXtQr/1y6BV4k66BEhMNDAwMDAgdDc0LWs1NTQtcm9vdC1lbmNsb3N1cmUAJ7Q+jMzzWqfLxffPmC+maALZ16w0MDAwMCB0NzQtbG9jYWwtc2VhcmNoLXJldGVudGlvbgBSO1GZEPECaREcGxMDIwpYugSTlTQwMDAwIHQ3NC1sb3ctYWxpYXMtYm9ycm93aW5nABecIhc3twogzV+mnCP5YV24XUEENDAwMDAgdDc0LWxvdy1hbGlhcy13aWR0aC1jYXAAoFbHZuFcSCVtkJ055/6OVG11cPs0MDAwMCB0NzQtbmF0aXZlLWZhc3QAFMJwhFe8oUSC9StYI0EDetyiAu00MDAwMCB0NzQtb3V0ZXItYm9vdHN0cmFwLXJlZmluZW1lbnQATRMD19fpp+uakfdnPytDX5Rk/CI0MDAwMCB0NzQtb3V0ZXItZm9ybWF0LXBsYW4Aatih7K60XDx7XixX0zENJ26gJRw0MDAwMCB0NzQtb3duZXItYXVnbWVudGluZy1wYXRocwCu6jHsrLdB20qCR7Yn0am7ZDfiijQwMDAwIHQ3NC1vd25lci1jb25zb2xpZGF0aW9uADl3Li16vMN6zXXlFssior1OAXD/NDAwMDAgdDc0LW93bmVyLWZpbGwtb3B0aW1hbGl0eQBHOhu8+zSWXamQTJX28kirOeUvsjQwMDAwIHQ3NC1wNTU0LXNpZ25lZC1yZXN0b3JhdGlvbgBa/QPQRhLesxGdXxytnYU/16xtajQwMDAwIHQ3NC1waHlzaWNhbC1sYXllcgBu8nsNKRTZ59pT8JUjB3G0afp15DQwMDAwIHQ3NC1waXZvdDU2Ni1rZXJuZWwAjiPbSS0NQ5AwRvaqBiTz1OpUm3s0MDAwMCB0NzQtcHVyZTQ0LWtlcm5lbC1jb21wb3NpdGlvbgCT+33xY0b3b/2xqd6CGYJJpbBHejQwMDAwIHQ3NC1yZXBhaXJlZC1vdXRlcjIxMAAlZLzetY1tEvPdn3k9CNA10XrXajQwMDAwIHQ3NC1yZXN0b3JhdGlvbi1jbGltYi1wcmljZXMAX+SSWZwj9pUB5BkAh9XGt4hivR00MDAwMCB0NzQtcmV0aXJlZDctaW5jcmVtZW50LWF1ZGl0APWtYOGIQwQ3rteQTxa6nDwXKm2wNDAwMDAgdDc0LXJldHVuZWQtb3JkaW5hcnktbGF5ZXIAgVyWGBOhtHC5F0gpSyUpBQTSeSA0MDAwMCB0NzQtcmV0dW5lZC1waHlzaWNhbC1sYXllcgBRfvFWQOt5S7/wqAjhB2x/AA5gpTQwMDAwIHQ3NC1zaWRlLWNvbmRpdGlvbi1jb3ZlcmFnZS1hdWRpdADj80pMXpLFc5bdZYc3hPFz2ySZbzQwMDAwIHQ3NC1zb3VyY2UtcGFydG5lci1jdXQtYXVkaXQAFcEnlQofPe/RVu1rTt/SpOB2+Vg0MDAwMCB0NzQtc3BsaXQta2V5LWtlcm5lbC1zZWFyY2gAmTA+37zbtUorJvR4Zxy6w1HDgvc0MDAwMCB0NzQtc3RhZ2VkLWNvbGQtaG9zdC1ib3VuZGFyeQA/VqGkWBMQ6Pxiu92bTURlmgJlaDQwMDAwIHQ3NC1zdXBwb3J0LWNvbXBvc2l0aW9uALvoQBOnFDvhkNWDOFEck7loF/x9NDAwMDAgdDc0LXN3YXBwZWQtYWxpYXMtZnJhbWUtYXVkaXQAZZmpFv544UdLzm0iJkKkR+YecMM0MDAwMCB0NzQtdmFyaWFibGUtZnJhbWUtY2FwAIsS29u53dtr/DddMeHAffhXkK2UNDAwMDAgdDc0MC1hbGwtY29udGV4dC1ub3JtYWxpemF0aW9uAL/qyI9cnzNWOKg9gfKhLqU7+IapNDAwMDAgdDc0MC1heGlzLXJlZGlzdHJpYnV0aW9uLW1pdG0tb2JzdHJ1Y3Rpb24AzCXDz4Uvf/BSfAwwfSUIoA2rzkE0MDAwMCB0NzQwLWNvbXBsZXRlLXBoYXNlLW1hcADcqWgY0Zj8kw3W5ggKzcqdEr7fWTQwMDAwIHQ3NDAtaGlzdG9ncmFtLW1hc3MAQsLNIfDUZ8xMghB4QwyEkJ1JSx80MDAwMCB0NzQwLWhvc3RlZC10cmFuc3BvcnQtYXVkaXQA6EwMYGrLk4EUI/cosGrHD2ewEHk0MDAwMCB0NzQwLWluZGVwZW5kZW50LXBhY2tpbmctY2FwAE7r15O5hJUpNO96nowHmd2/CmFHNDAwMDAgdDc0MC1qb2ludC1heGlzLW9wdGltaXphdGlvbgDVuPQHRkJYy1xCfZrxzp2hIeyNMDQwMDAwIHQ3NDAtb25lLWRvbm9yLW9wZXJhdG9yAHqHJWHsXdh3gFKIQriHhQrCjw0TNDAwMDAgdDc0MC1waGFzZS1tYXAtcGF0aC1hdWRpdAARGQ+tyUysZDm3ZMfQLS9Twfvd2jQwMDAwIHQ3NDAtc2l4LXNraXAtcHJlY2lzaW9uMzAAv6u8PQSCfTVbdQmtBuerURzfp5k0MDAwMCB0NzQwLXNpeC1za2lwLXByZWNpc2lvbjM1ALh5h60mTPljKJYhzLG1D+2fdAEgNDAwMDAgdDgtcmFuazctZHVhbC1zd2FwANGTmY74mNyokO68nJ0J7JVAfpFfNDAwMDAgdDgtcmFuazctcHJvdmlkZXItY29tcG9zaXRpb24AHY5DjZvFgqlAc25sryzOiY+yxQw0MDAwMCB0OC1yYW5rNy10d28tc3dhcHMAzYKF4LtuejjXwzNHsZKxslfQO9w0MDAwMCB0YXJnZXQtd3JpdGUtZmluaXRlLWltYWdlAF8q35/4ECbtXxrKTkkmXkyUc7FSNDAwMDAgdGFyZ2V0LXdyaXRlLXJvdy1jZXJ0aWZpY2F0ZQC6nflwUFQhAgv9HxTCj1BIUIrN4TQwMDAwIHRhcmdldDExNC1waHlzaWNhbC1jYWxsZXIAu+9CTAuNW7tSf00qJJZCjdrNMx80MDAwMCB0ZW1wb3JhbC1nYXVzc2lhbi1yb3VuZGluZy1zZWVkMjIAhVXZ9jzSUGLfUVyEQccdb+Vg5pw0MDAwMCB0ZW4tdGVybS1jb3B5LWNvc3QAiUq6sfRpaCYWJIQ+DstzxrcZ0E80MDAwMCB0ZW5zb3ItYmxvY2sta2FwcGEAXcZJecU1W1S2SMw3VP6MN/IMbbE0MDAwMCB0ZW5zb3ItY29tcHJlc3Npb24tZXJyb3ItcmVmaW5lbWVudAAFlEZPWac0+ajF9UK+BAU6MRhm+TQwMDAwIHRlbnNvci1lOC1jb3B5LWZsb29yAFBsm5OihaqbAoxO9MogfnaqUqFANDAwMDAgdGVuc29yLWU4LXJhdGUtYXVkaXQA4rfgh4Y1KmFenHrBN0/3kvP+kLI0MDAwMCB0ZW5zb3ItZXhwYW5zaW9uLWFjY3VyYWN5ALS7UrWZNyyL7Hs9fnxFydmsEMKiNDAwMDAgdGVuc29yLWZyYW1lLWNoaWxkLWludGVyZmFjZQDIgOn7YUomoVM3UlVXbHGcWhJW2zQwMDAwIHRlbnNvci1pbnRlcm5hbC1jb250cmFjdGlvbgB1c7Jw8sZ55kAktvg1sIckKr0YrzQwMDAwIHRlbnNvci1ub25yb290LXBhaXJzAOlDEMfCZC4qlwH65U/bTz7o6qFuNDAwMDAgdGVuc29yLXBhaXJpbmctY29tbW9uLW1hcC1yZXZpZXcAZppukzv+KipkMiYbcGI35Yrbl4o0MDAwMCB0ZW5zb3ItcGFpcmluZy1lbWJlZGRpbmctYm91bmQAGpHFBCHlrQquDrxlLY75cgnz5Es0MDAwMCB0ZW5zb3ItcmVzdG9yZWQtZXJyb3Itam9pbgDxa9DE5STwlDsCrSwcSkQfGBWIGjQwMDAwIHRlcm1pbmFsLWFwcHJveGltYXRpb24tZmxvb3IAzlnlBqa/ydRNJVdncOr1s6/hK0A0MDAwMCB0ZXJuYXJ5LWNvbm5lY3Rvci1pbmRlcGVuZGVudC1zZWVkODQAfMkkPL3DwmCmYHOWu2LzmA9hZzM0MDAwMCB0ZXJuYXJ5LWNvcmFua29uZS1wYWlyLWxhdwBbiOHx9LmVrpto5wa1uhJgOgxjzjQwMDAwIHRlcm5hcnktZGlydHktY29tcG9zaXRpb24A6rRVdkM63qF7n1QWyagAjCpN5JA0MDAwMCB0ZXJuYXJ5LWRpc2pvaW50bmVzcy1yZXBhaXIAj8EozboZUBDjfuBp2Ysgcwo8oeQ0MDAwMCB0ZXJuYXJ5LWZyYW1lLWNhY2hlALyCLuc0UyHWV9CfYAD8QOOFI/eINDAwMDAgdGVybmFyeS1mcmFtZS1jbGVhcmVkLWNhY2hlAFU3X017x40OQqnqu30owHj+43ZuNDAwMDAgdGVybmFyeS1wcm9kdWN0LXRocmVzaG9sZC1jb3VudAAU3iGC8X8L0rIG4VI79RBwORmAYDQwMDAwIHRlcm5hcnktcTgtbmVnYXRpdmUtcGFpcgCz0AjPoU78k/L6d7awsocLd1wc8zQwMDAwIHRlc3Qtc3VpdGUtbG9jYWxlLXJlYWRzAEkDjtwR+KwHUaH5oVo2p7Nld+chNDAwMDAgdGV0cmFkLWVmZmVjdGl2ZS1yYW5rANtznOW3WPIfkdOou0oodGCvBy2rNDAwMDAgdGhldGEtcXVlcnktY2FwYWNpdHkAP+l6cwyDLVGIJYJIVJbL/L5nFu80MDAwMCB0aGluLXF1ZXJ5LXNoZWFyLWZsb29yAHnQ6tLWyNvADn5HKCfkyNB2O6nxNDAwMDAgdGhyZWUtYmFuay1yZXN0b3JlZC11bnBhaWQAwRp61y/voO2XoOKOQqgo65IPtQ80MDAwMCB0aHJlZS1iYXNlLWNlbnN1cy1yZWNvdW50AML99bS/nYgQqquaeEutlrgfAJpmNDAwMDAgdGhyZWUtYmFzZS1wYWlkLWNlbnN1cwDrT9bGssjHMwCm5FpKT1qLNiOTlzQwMDAwIHRocmVlLWN5Y2xlLWFkZHJlc3MtZmxvb3IAdKWZ8sRIEGsd7Ag2Pswj5O7At1g0MDAwMCB0aHJlZS1jeWNsZS1ib29sZWFuLXJvdW5kaW5nAN815wE1hQe99DcGwv1NZu4Yv1ccNDAwMDAgdGhyZWUtY3ljbGUtY3V0LWNlaWxpbmcAyfjlagmv3AwLScVrjUJKiRumhm40MDAwMCB0aHJlZS1kYXRhLWF1eC1kaXJlY3QACcwEllarH1X1Ci7VdPquifTHVcQ0MDAwMCB0aHJlZS1kZW1vdGlvbnMtdDM3LWNvbXBvc2l0aW9uAGPxsk5ixjTBvhvdCcqzmDQTSA3tNDAwMDAgdGhyZWUtZnJhbWUtc2hhcmVkLW1hcAAq8SKQPzMrK3lYbvRn4UbXfUNo9TQwMDAwIHRocmVlLXBsYW5lLXJhbmstZHVhbAC2FWly3OSkNuz6FXUmpWrYxImpCjQwMDAwIHRocmVlLXJlZ2lzdGVyLW1vZHVsYXItYXVkaXQAVkL8pXqLqFRUyCwqJKi5rf2TjC80MDAwMCB0aHJlZS1yZWdpc3Rlci1uby10YXJnZXQtZmxhZwCWqvPl6kyk2tX2zZBYAi0pnMYMcDQwMDAwIHRocmVlLXJlZ2lzdGVyLXRocmVlLWN5Y2xlcwB0gTe+CfrA5qOS2H5FNlcWSkBq4TQwMDAwIHRocmVlLXNob3J0LXJvdy11bml0cwCycYug1sc1Y9od2kRWaTmc4lPyTzQwMDAwIHRocmVlLXNvdXJjZS1lbnZlbG9wZS1mbG9vcgC5cqTemqZNNMomxPZPew6ZwV5uZjQwMDAwIHRocmVlLXNwZWN0cnVtLXNoZWFyAMkVYCE/vCUjU08pkjQH/P33IxpmNDAwMDAgdGhyZWUtc3dhcC1jYXAyLXBoeXNpY2FsLWNlaWxpbmcAEwxhkFX558+RrKIMWztnhSOgV0M0MDAwMCB0aHJlZS1zd2FwLWNub3QtY2Vuc3VzADWs7rzEKu2nByNxCkaeS3ClM2TDNDAwMDAgdGhyZWUtc3dhcC1jb21wcmVzc2lvbi1zZWVkNgDFuwe9IMvRX2eeNZBU6WiTtTvYsDQwMDAwIHRocmVlLXRvdGFsLWNsYXNzaWNhbC1jb25maWdzAKD+4rYYAnFkZGP3ZNpZ6QCQgtt6NDAwMDAgdGhyZWUtdG90YWwtZGVjb2RlcnMAzn7cdWDxxur1tAJvDRosutE6AlU0MDAwMCB0aS1sb2NhbC1yZXNwb25zZS1zY2hlZHVsZXMAZhhHJP01IiqAX3+PF6GUALyhjJw0MDAwMCB0aWVkLXdpZHRoLXR3by10cmFuc2Zvcm0tZXhhY3QtY2FsbC1jb3N0AM/nFdALuR3/KJSj31Na25Bo9NNcNDAwMDAgdGludGFnZWwtc291cmNlLWxvb2t1cADAp64/Qu6A5nzFEwMoIwXBUPJaxzQwMDAwIHRyYWNlLWN1cnZhdHVyZS1wcmVsb2FkAIJMGne93X8PUwffc9RyIa7KLdGaNDAwMDAgdHJhbnNmZXItY291cGxlZC1hbGwtc2hhcGVzLTdxAGqWtZypLrr3+tZNLl25Fc2Sj1JVNDAwMDAgdHJhbnNmZXItY291cGxlZC1vbmVyZXBlYXQtN3EAMJb9rtqBJgsrs92ti6OaLk6ErLE0MDAwMCB0cmFuc3BvcnQtZG9tYWluLWNvbmNvcmRhbmNlLXNlZWQ5NgBrcyPl5u/8bOj7nVAjgOWZg8z47jQwMDAwIHRyYW5zcG9ydGVkLWZyYW1lLWNhbGxlci1wcmljZQDjs6x5wns4kh2urKI/m9WWlyZv4jQwMDAwIHRyYW5zcG9ydGVkLXdhcnAtZnJhbWVzAAs1J17p1MFiHytaRNEIhORYUgUSNDAwMDAgdHJpLXBsYW5lLXBvcnQtcDExMi1zZWVkZGIwOTMwMjYAx0HTH+E2KAOBVysVKay3Pq6HwKo0MDAwMCB0cmlhZGljLW5vbnVuaXQtbG93ZXJpbmcA+PKr1HRqZjEH+t2fotEzNmjAqHk0MDAwMCB0cmlhZGljLXF1ZXJ5LXBhaXIAGMoC13bAhXNlPL38tMlZwvYYHwM0MDAwMCB0cmlhbmdsZS1lcXVhbGl0eS1hdWRpdABUPgrnBhL4gCHbTj7WcV5JUyiD5jQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWJpbm9taWFsLXN1ZmZpeABeo7Hg5/ct84dg0ZH+FadWjPKwUTQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWRlZ3JlZS1maXZlLXNpZ24AsUpDKYF0dwUWCbkLO15Ral02AwI0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1kZWdyZWUtZm91ci1zaWduAGuk7Z/Rq5qsd5Mm87uWYtphOgs9NDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZGVncmVlLXNpeC1zaWduAOoSNRtT17E7RAeFh4Xf6CCYK1wTNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZGVncmVlLXRocmVlLXNpZ24A+ec8DTnls7vnmMcJVW5OiRg+CNg0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1kZWdyZWUtdHdvLXNpZ24Afdm5cYi9uUFlCeRYhGv0YjKM3540MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1maXZlLWVudHJ5AHjMpMfoFeEkegP+NducHQj0FaExNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktZm9yd2FyZC1ib3VuZADELH5O8ACsk9lCAN3yXqX5XZZOQTQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LWZvdXItZW50cnkAVlmpuIpfF0mj1m2btDx6Z8ng/N00MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1sZWFkaW5nLXF1YXJ0ZXIAgwpPmIuSfKbVg1N83p3RMsJCoVs0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1uOAATZa5WtnoVEXz5UwFmRQnEZ+VBGzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LW5lZ2F0aXZlLXF1YXJ0ZXIAkvYIT4NhaiOvjVGx9m8xFtFVBGU0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWRlZ3JlZS1maXZlLXNpZ24A2jjglLkQWP1oHQFzwFkh0vTBs4A0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWRlZ3JlZS1zZXZlbi1zaWduAJntfxHW+4z0zyrG5pC0HEebxSBbNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1kZWdyZWUtc2l4LXNpZ24AMBeJFu93pATcL2t+F/wvTV3nF2s0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1wb3NpdGl2ZS1xdWFydGVyLWV2ZW4tc2l4dGVlbnRoAHnB08ay9DUa5ve0NLhy+qnsWAJkNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1vZGQtc2l4dGVlbnRoAOdc8UxBrnIMxks2pi0Lee+widIHNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcG9zaXRpdmUtcXVhcnRlci1zaWduAOyyqM+5nd49wavWusqS0Cs1nUAANDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcHJlZml4AMxTKlgvRtT3jF/aZfOB9mxR0tQqNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1kZWdyZWUtZml2ZS1zaWduAIfs7Xs3PkCfySwjhC/3YRv6iwuTNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1kZWdyZWUtc2V2ZW4tc2lnbgBzYljNT3gE0N84jMRiL612oQN/4TQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItZGVncmVlLXNpeC1zaWduAKOMsYVcppeYIbcb7/AD6diU0BD4NDAwMDAgdHJpYW5ndWxhci1wYXJpdHktcXVhcnRlci1ldmVuLXNpeHRlZW50aADu7TNg60fLLN3QL78pO6cucIp8KzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItb2RkLXNpeHRlZW50aACxAtZyTu7l/acPNrT84bueEx9J4jQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXF1YXJ0ZXItc2l4dGVlbnRoLXNpZ24A1v9T8livbED72kWdG1O22P4vOZ00MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1xdWFydGVycwBBCRAVZlBc8/b+xeYSt73OUvQiUzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXNldmVuLWVudHJ5AMgrJCiND9itOZ6yYQGKW6l9PF/pNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbi1jdWJlAP1Fx5/CJBZ+yBJLu0W+tEPjKS+gNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbmVkLWVpZ2h0aAAzthJZCbfW8A5wDyrHhiV3ARr7OzQwMDAwIHRyaWFuZ3VsYXItcGFyaXR5LXNpZ25lZC1maXZlLWVudHJ5AHhhyYN7rGDEdgLcgxCDOy2GsVTjNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2lnbmVkLWZvdXItZW50cnkAYiYGDB8QmLZxFt7cV+prFUeaQRw0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1zaWduZWQtc2V2ZW4tZW50cnkA3uthMKq/gCHPi98PEDLHQCsZp6c0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS1zaWduZWQtc2l4LWVudHJ5AC7/cj2Cgpj+L5tyD1K7waO9uzafNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktc2l4LWVudHJ5APy7o6UadCY/Oyc6dsU0xEiqZWxwNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktdGFpbC10aHJlc2hvbGQA5ImgIBfi5nBzjsolfRVdt7abEmE0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS10aHJlZS1laWdodGhzADLcH6Yi5gTeIm3OExyJ79cUD57MNDAwMDAgdHJpYW5ndWxhci1wYXJpdHktdGhyZWUtZW50cnkAzUU4vhNUQNHnJFpR6vdBXBGPIhA0MDAwMCB0cmlhbmd1bGFyLXBhcml0eS11bmlmb3JtLXByZWZpeADzsXDzA+6h7XQXEO+SvHtvR3W9pjQwMDAwIHRyaXBsZS1zaGFyZWQtZnJhbWUtdGhyZXNob2xkNDYAUvU23TzJy/l0aDGVrzxHuguiJLA0MDAwMCB0cnVuY2F0ZWQtdGVuc29yLWNoYXJhY3RlcnMAI/arUatS6Q8f++vYWptvl7HGdrU0MDAwMCB0cnVuY2F0aW9uLWZyYW1lLXRyYW5zcG9ydAA8nyLvjo2PK1ucJvPK5HizAESxsjQwMDAwIHR1cnluLWNvZGUtc3BhY2UA8mAyY/o+Y8xqpP4tpbNAJZSkIdk0MDAwMCB0dXJ5bi1wb3J0LWxhYmVscwAmQJSlwZlMWGUbdeobFzoYNTOP+zQwMDAwIHR3ZWx2ZS1jYWxsLWNlbnRyYWwtdHJpcGxlANBMppFEG7ygRYRLUOHEs4dAI8IENDAwMDAgdHdpZGRsZS1hZGRyZXNzLXN3ZWVwAJdSjaS+1tfCq2gc3keK1fQLwlrBNDAwMDAgdHdpZGRsZS1jdXQtc3RhdGUAizPals7JRz559EUvpx9CrxF91C80MDAwMCB0d2lkZGxlLW1hdGNoZWQtbGF5ZXIAxczUPQWj2orn/JDlmM7MqJjrFK40MDAwMCB0d28tYWNjdW11bGF0b3Itc2F2ZWQtYXJtcwBTtFYQjMViO+2DT6PMF4Mi8AggBzQwMDAwIHR3by1heGlzLW93bmVkLWNvbnRhY3RzANfgoB2NI7Oj0ZNBfqTlwGBGhuElNDAwMDAgdHdvLWNlbnRyYWwtbGF1cmVudC1jb3ZlcmFnZQBRlCCuSTQpCTse+X5WU7nRa0XkvjQwMDAwIHR3by1jb25uZWN0b3ItZWlnaHQtdHJhbnNmZXItY2Vuc3VzLXNlZWQ1OABzeeOY2Q8hLT6NEgFSfIMMNs+fZTQwMDAwIHR3by1jb25uZWN0b3ItZWlnaHQtdHJhbnNmZXItdGhyZXNob2xkAEbEmMEGU3wDhMAB+zMlBVHGc6DTNDAwMDAgdHdvLWNvbm5lY3Rvci1mb3VyLXRyYW5zZmVyLW9ic3RydWN0aW9uAFC0G0krwzBZuH6nfgp/o94LNuM8NDAwMDAgdHdvLWNvbm5lY3Rvci1zaXgtdHJhbnNmZXIA/ixy3MvI+gsPkTajd42uMmn6mJs0MDAwMCB0d28tY29ubmVjdG9yLXRyYW5zZmVyLWJvdW5kYXJ5AL+gRdMz6ceMWieY0+5Ws9ZI7EORNDAwMDAgdHdvLWZhY2V0LWRvd25zZXQtaW5lcnRpYQDNoKlen1PzTV8HgBEFWhadPlnExzQwMDAwIHR3by1mbGF0LWNvdmVyLWJyYW5jaGluZwDjQjV+PJ7jSDqlp0AhUHjtcJgkuTQwMDAwIHR3by1mdWxsLWJvcmRlci1wYWlkLXByZWNpc2lvbgDZZZUJcMWhP/ZTY2aA+uU+oiuhsTQwMDAwIHR3by1mdWxsLWNlbnRyYWwtb2JzdHJ1Y3Rpb24AtuyN+Ih1Kk02DM8Ljnd7z2ahZ9w0MDAwMCB0d28tZnVsbC1kaXJ0eS1zdGFiaWxpdHkAUKJcdIUb76x4ar++0jqT1SSYrtA0MDAwMCB0d28tZnVsbC1mcmVzaC1kLWNvaGVyZW50LXBhaXIAe4qfXVihNa3dwea4xydJ4lZp1Bg0MDAwMCB0d28tZnVsbC1yZXRhaW5lZC1oZWxwZXItY2VpbGluZwCPu66Z2a8P5ITe8h7I9WWbkAZpUzQwMDAwIHR3by1odWItdGFyaWZmLTU0APF31xO6XfpMAsRUESPpY2DvUTJ8NDAwMDAgdHdvLWh1Yi10YXJpZmYtbWluaW11bQD8XmO6fCSMDnkshR3ERAKdvWq5MTQwMDAwIHR3by1pbWFnZS1jb21wZW5zYXRlZC1wYWlyAMDtNq9jcOZHD8PsfsJFLPPMGonJNDAwMDAgdHdvLWltYWdlLWRpcnR5LXZvbHVtZQARbpXH8HXdGHe7S4qq0RY+bYGIUDQwMDAwIHR3by1pbWFnZS1pbnZlcnNlLWxhdHRpY2UA8aZmM/3A+XBvwuTlqB/9JiPDz4A0MDAwMCB0d28taW1hZ2Utdm9sdW1lLWluZGVwZW5kZW50LWF1ZGl0AOP5AF65N/0sWPoeVn5+CjQBxLUONDAwMDAgdHdvLXBpdm90LWNhbGxlci1yZWFkZXJzAI96e9Mp2n0lylVAZgysFQnwWJpTNDAwMDAgdHdvLXBsYW5lLWNvcHktZmxvb3IAnR8tDhPdlV89jfwJryVk+rE3dtA0MDAwMCB0d28tcHJvamVjdGlvbi1ib3VuZGFyeS1vcHRpbXVtALxQuzwaxXXo1mFnh1ytOhzijLPmNDAwMDAgdHdvLXByb2plY3Rpb24tY29ubmVjdG9yLXNlZWQ1MWE1AEnIeArrixN3knAmWcTXQE0pZvTRNDAwMDAgdHdvLXJlZ2lzdGVyLXRocmVlLW1peAAB5/ajoPETWtKKr3+7M4UoQAwLTzQwMDAwIHR3by1yZWxhdGlvbi1wYXR0ZXJuLWNlbnN1cy1zZWVkNTIAmO6OKskmAaI0nX1GFUFQfcPGPY40MDAwMCB0d28tcm9vdC1zaWduZWQtY29ubmVjdG9yAMjj+KIALjZYfuOW0jhsDgGQFIWTNDAwMDAgdHdvLXJvdy1ub251bml0LWZhbm91dACj70RvwwjV8sjv9s9/zrcLm6/PqzQwMDAwIHR3by1zaG9ydC1yb3ctY29lZmZpY2llbnRzAAfhLXdj5pPNR6s0Zapk2irusrLNNDAwMDAgdHdvLXNpZGVkLWhlbHBlci1leHRyYWN0aW9uAOvKu862/eMj2ZeQ1hWb0gKpgCD8NDAwMDAgdHdvLXNpZGVkLXRlbi10ZXJtLWZsb29yAAMD2PFbjQDKjirVj9ya3TqN4PjHNDAwMDAgdHdvLXNpdGUtY2FsbGVyLWZ1c2lvbgBYYu585qxsRzZM52mu3tVdZk4IMzQwMDAwIHR3by1zdGFnZS1jb2RlZC10ZXJtaW5hbAACJK/80kGq95mlj75ge6E+4ETyEDQwMDAwIHR3by1zd2FwLWFkZHJlc3Mtc3BlY3RhdG9ycwAHqaAlMuF+numS1xlZ9/6yMyGL2zQwMDAwIHR3by10aHJlZS1jeWNsZS1hZGRpdGl2aXR5AMHs3i7m5sBDhV77xkFnKYJmYyNINDAwMDAgdHdvLXVucGFpZC1pZGxlLW1hc3MAtKfTlg8hIzmitILPbl5/GLMYNE80MDAwMCB0eXBlZC1hY3R1YWwtd2lkdGgtaACKX1LzBc1xQbFS2rIH58sApC7XfzQwMDAwIHR5cGVkLWFjdHVhbC13aWR0aC1waHlzaWNhbC1oAL4ZntfOMK8iN/BplPPUUsR/QMwRNDAwMDAgdHlwZWQtcHJpbWl0aXZlLXByaWNlABbRD0PTjbh5Ho2aNeLPXGJ1SQZdNDAwMDAgdHlwZWQtcXVvdGllbnQtcGF0aAAs83/Xr9N0IocqYb+ez0hVqkhg8zQwMDAwIHR5cGVkLXdpbmRvdy1mdXNpb24tYXVkaXQAlz9oTIT/q6GtrlBVoJ0B9tzL/U00MDAwMCB0eXBlZC13aW5kb3ctcGFydGl0aW9uLWZsb29yAA9KzJYF2oIUSnybyMsAzRFOjJPsNDAwMDAgdTgtYi1jYW5jZWxsYXRpb24tc2VlZDMyAIOXirKM9AomGkGZXgZjNSZ5aWefNDAwMDAgdTgtY2xlYW51cC1tYXJrb3dpdHotbHByLXNlZWQzMAAF2v3BHuDDv/WEX+SpIbnukdfN+DQwMDAwIHU4LWU0LWdhcC1maWxsAF3U13Mq09rqmPN9FEW5LPLIfwJQNDAwMDAgdTgtaW5kZXBlbmRlbnQteGNoZWNrABtY2r9HpxDlbX1DRZYopaI/RLOoNDAwMDAgdTgtc3VwcG9ydGluZy11bmlmb3JtAHZ0FCwx1ByDGEltdTJf7Agh4hoWNDAwMDAgdTgtdGVybWluYWwtY29uZS1jZW5zdXMABPKWelg0HMkky5spxCnfj2Xs4PM0MDAwMCB1OC10d28tc2lkZWQtYmlmb3Jlc3Qtc2VlZDM1AH3H2CMrceOivvwYF5xxP6geU+oHNDAwMDAgdW5jb25kaXRpb25hbC1iYXRjaGVkLWNydABJTMITzwjqzKE7UH53mAcxkDK1nTQwMDAwIHVuY29uZGl0aW9uYWwtbW9tZW50LWNyb3NzY2hlY2sAeWxOvgZs0XYqGSpoPpzCGwwJa140MDAwMCB1bmVxdWFsLWN5Y2xlLWZpdC1yaWdpZGl0eS1ib3VuZGFyeQCOikUPZhygRRqaxDmGvOI+MX68OjQwMDAwIHVuZXF1YWwtY3ljbGUtcGF5bG9hZHMANCXqSvElADYQKcZgq21XY+CEUnU0MDAwMCB1bmVxdWFsLXBpdm90LXNjaHVyLWRpbWVuc2lvbgBw5S5Sj4Q5KeGjWKKhQ886x/93vDQwMDAwIHVuZXF1YWwtcm93LXJlc29sdmVudABEi/g2HQM/QQDOoaSqWJrI+K314jQwMDAwIHVuaWZvcm0tY29tcGxleC1leHBvbmVudABdr7wPVdcZ3c/tNJx5hmBAj7W+JzQwMDAwIHVuaWZvcm0tY292ZXItY291bnRzAD16Z12sEL2MDIg9nx2KexiUe7pNNDAwMDAgdW5pZm9ybS1leHBvbmVudC1ib3VuZAAYSEbeSHnKQb1BjYv0RRN8Sct5ujQwMDAwIHVuaWZvcm0tcGFya2luZy1wc2kAdthnWWjfSJoE3R6h44W9O9Wd1P80MDAwMCB1bmlmb3JtLXctYm91bmQAGNLSsou72eqkBKlcexI3gLJN7jk0MDAwMCB1bmlvbi1oZWFkZXItZW5jb2RpbmcApoNLcSkZ841/Fq1L8vxqslUuu4Q0MDAwMCB1bmlwb3RlbnQtb3JkZXJlZC1zY2h1cgA0Gl1gI9ErTUBk0MKb8V9w+lzMuTQwMDAwIHVuaXBvdGVudC1wcmVjaXNpb24tY3V0cy1zZWVkNTUATIhl28fTbVWnrEreeDi902cX2yE0MDAwMCB1bmlwb3RlbnQtcmVzZXQtY3V0cy1zZWVkNTcAh3BFc9XgQLwhvTUAIaZ09ZwQW5c0MDAwMCB1bmlwb3RlbnQtcmV0dXJuLXNlZWQ1MwBg3mPzfxq0304j2Xfp9wDjAFFqoDQwMDAwIHVuaXQtcmluZy1kaXJ0eS1mYW5vdXQACsD15Dfp04JusKBnAR+J/GZYrTQ0MDAwMCB1bml0YXJ5LWN5Y2xlLW9wdGltYWwtY29uZGl0aW9uaW5nAIZ32mrfcWdrTrnDEBB2lRdHDr9UNDAwMDAgdW5pdHRlc3QtcmVjZWlwdC1jb21wYXJpc29uALtVO16i5d0aoK6R1zG8DhHv/SCPNDAwMDAgdW5pdmVyc2FsLWNvbm5lY3Rvci1ib3VuZGFyeQCXOqJUWMqkxNIdLSY/iTaIVmskXzQwMDAwIHVuaXZlcnNhbC1jb25uZWN0b3Itc2l4LXNvdXJjZQBTcjhbNxjA1AH8/Hmc2gqyCw8gYzQwMDAwIHVuaXZlcnNhbC1kaXJ0eS1jZXJ0aWZpY2F0ZXMAZSGjUZaWIxJX8wpoh6r6LByVuEc0MDAwMCB1bml2ZXJzYWwtZGlydHktcGhhc2UtaWRlbnRpdGllcwDhZVCMvOgXHFd+CjdZnzFz6y4IAjQwMDAwIHVuaXZlcnNhbC1mNy1zaW5nbGV0b24tbDIwLWNlbnN1cy1jb21wbGV0ZS1zZWVkZmQ5MzhmMzAAb3ERmq7rZgHzXE1+QrfyhcCdUr80MDAwMCB1bml2ZXJzYWwtZjctc2luZ2xldG9uLWwyMC1zZWVkMDY3MDRjMzkAyZ0f8ejd7UOJgBAk45/XlWmeEPU0MDAwMCB1bml2ZXJzYWwtZjctc2luZ2xldG9uLXNlZWRiODU5NTE3YgADuhdIR4ABp7VG0Hs8JWoI6Jt0kjQwMDAwIHVuc2lnbmVkLWNvbm5lY3Rvci1jaGFyYWN0ZXJpc3RpYwDvGyoenhX/PO8l5uhU2gEsHPLkpTQwMDAwIHVuc2lnbmVkLWNvbm5lY3Rvci1yZXNpZHVlLWNvdW50AKlx3zrtZQ/e9v0P3U8A4JKFzuKgNDAwMDAgdXQtc2lnbmVkLW1vbm90b25lLXRhcmlmZgDbr2BlZ+6GVCjF2uq4HO/Q6drl7zQwMDAwIHV0My1jZW50cmFsLWNvbW11dGF0b3ItaW5kZXgAWnkt21M79vLVw6ILAmO+B8YuvIM0MDAwMCB1dDMtY2VudHJhbC10cmlwbGUtaW5kZXBlbmRlbnQAX5TW3/52P7qowDMjJkeni5LBtJ40MDAwMCB1dDMtY29tbXV0YXRvci1hbGwtcmVnaXN0ZXJzAJT+9ULo5DRAbgC0CAzw1po09eTzNDAwMDAgdXQzLWNvbW11dGF0b3ItcmVnaXN0ZXItYm91bmQA90cnbqo207Z/pPHqst7X1AcDlic0MDAwMCB1dDMtY29uY2F2ZS1yYW5rLXRhcmlmZgDjijYevYXQD1An+9T3HNKvlQcShDQwMDAwIHV0My1mNC1jZW50cmFsLXBhaXItc2VlZGZjZDc4NWEyAJISahLmsuPYMWUWHC9KADbJVglXNDAwMDAgdXQzLWY0LWRlcGVuZGVudC1jZW50cmFsLXRyaXBsZQCRIF9/ZH3RMDFaFP7DlHi5UwIP5TQwMDAwIHV0My1mNC1uaWxwb3RlbnQtdGFyaWZmAE+wnwbYN2oZmTqLmPNc+Yohw7loNDAwMDAgdXQzLWY0LXcyLWxpZnQtb2JzdHJ1Y3Rpb24AWftCgnUrJqR90laT2JJKm14LgU00MDAwMCB1dDMtbWl4ZWQtdGFyZ2V0LXRhcmlmZnMACPguIs4ON+XuIZ640xvzcyhbZts0MDAwMCB1dDMtbW9ub3RvbmUtcmFuay10YXJpZmYAt04BBJsYkjAPmtFamWMVGfEIhrI0MDAwMCB1dDMtcHJpY2VkLWNlbnRyYWwtY2FsbHMAsudLPPzzEUN+PJOr6Tm1yUS1g5c0MDAwMCB1dDMtcmFuay1ib3VuZGVkLWJsb2NrLWNhbGxzAN+QLJ02RiK0f5D7MTCiOFGi08zxNDAwMDAgdXQzLXR3by10YXJnZXRzLWFueS1yZWdpc3RlcnMAASOTAIGgZ9K/a1y/8XF4MJzUq0Y0MDAwMCB1dDQtY2VudHJhbC10YXJpZmYtcmVsYXhhdGlvbgB/DFMc0lJvBbVsIjUTcdeTXNl9RzQwMDAwIHV0NC1maWZ0ZWVuLWNhbGwtZml2ZS1iAPEb3fRVZH3RKSd97xp3g49oTOv7NDAwMDAgdXQ0LWZpdmUtYi1jb3ZlcmFnZS1hdWRpdAC20D29HtoARHDdZO3ep3iaHBP80DQwMDAwIHV0NC1taXhlZC1jZW50cmFsLW1pZGRsZQBgktNhdI2mY9piHBSYHsYHO0kHyDQwMDAwIHV0NC1taXhlZC1yZWxheGF0aW9uLW9wdGltdW0AE/OLOVDaUZd/woptviuH2ZsRJGw0MDAwMCB1dDQtbWl4ZWQtcm9vdC10YXJpZmZzACjSrEJezTEbAeLDpgY96RxtD25mNDAwMDAgdXQ0LW1peGVkLXdlaWdodGVkLWJvdW5kYXJ5AHRuQkbcDsvwLJFrybsZpZgJ5hYQNDAwMDAgdXQ0LW5vbmNlbnRyYWwtY29tbXV0YXRvci1zZWVkYmZlNTkAu46lVeJW/js1gPJjLxoqh8Mcf7Q0MDAwMCB1dDQtbm9uY2VudHJhbC1zaGFyZWQtbWlkZGxlAMxiDqeaNJ0MoKd0mIQHSju480V/NDAwMDAgdXQ0LW9uZS1zbGFjay13b3Jrc3BhY2UA9S6lMluZ01vT7BT6FG4gQ4kaf2I0MDAwMCB1dDQtdHdvLXRhcmdldC1maWZ0ZWVuABWDdAaCOEBJOXh/sejaFLFodxwsNDAwMDAgdXQ0LXR3by10YXJnZXQtbmI3LXJhbmtzLTIyAIz63dZQIh5iPfCcGiaDrB5s5MiiNDAwMDAgdXQ0LXR3by10YXJnZXQtbm8tc2l4LWIAjMrlifNOYFwyKunhojpFTT72Jyw0MDAwMCB1dDQtdHdvLXRhcmdldC1yMgA8reTfb+5CUihNkF8Z7cAfLBQW4DQwMDAwIHV0NS1mb3VyLXJvbGUtbWl4ZWQtcm9vdC1zZWVkZTJhOABHptBaWxYC6uzwRpHcaCiEoATq9TQwMDAwIHV0NS1yZXBlYXRlZC1yb290LWhlaWdodC10d28tMjAyNjEwMTcASNvBJyn90ZuZrWXSyuv6DZHcX7I0MDAwMCB2NDUtbWFyZ2luLWxhZGRlcgA9tWDJqZy91x5hD0cKZIYTAgF69TQwMDAwIHY0NS10cmlwbGUtaW50ZXJzZWN0aW9uAAu5zkyf2ugG1MShZJNUlw9+woYDNDAwMDAgd2FycC1pbnRlcmZhY2UtMjAyNjEwMjIAuUgN5Tbcmc/qGS1PkcHW6tSKNFw0MDAwMCB3YXJwMC1lbnRyYW5jZS1jYXAAxODJgsIJAlObmcXM+9D8qCt08j40MDAwMCB3ZWlnaHRlZC1jYWxsZWUtYm9vbGVhbi1ub3JtLWludm9pY2UADKnqS9KTNxJ+TxbhiTrbGOcxu480MDAwMCB3ZWlnaHRlZC1jb25uZWN0b3ItcmVhZG91dHMtc2VlZDEyNzUzMDk0OTIAgIO1QomO82EI8R/rfvD4c/otNEs0MDAwMCB3ZWlnaHRlZC1jeWNsZS1wb3dlci1hdWRpdACNRGnlmbMQDecGOIN+20LvuDFY+jQwMDAwIHdlaWdodGVkLWZvdXJpZXItbGF5b3V0AG0Ku/lGzBWd92erQJc4wX2x8D9KNDAwMDAgd2VpZ2h0ZWQtZ3JhbS1ib3gAKm+frap+ci5IwuNZDiRKN92q6ww0MDAwMCB3ZWlnaHRlZC1wYWlyLW1hc2stdG91cgCaFIoAqXUE9SRJV3Bfi8yhBR8hJzQwMDAwIHdlaWdodGVkLXBhdGgtdmFsdWF0aW9ucwCLtmd3faUW5GMsvp+0JnPCRXMuNjQwMDAwIHdlaWdodGVkLXJldmVyc2FsLXJlc2NhbGluZwD8q3w49slSrXSWtexg4FkxqDHDrjQwMDAwIHdlaWdodGVkLXNpZ25lZC1jb25uZWN0b3Itc2VlZDU4AB2/lz6RkGWmNeCRWYu+w1lRVAPnNDAwMDAgd2VpZ2h0ZWQtd3JhcHBlci1jb250cmFjdAAwM90ZV/G0pHb+tCWFKattJu+wCDQwMDAwIHdpZHRoLWstcG93ZXItY3V0AOTevptzbb3rnatO03608jueV8PDNDAwMDAgd2luZG93LWJyZWFrLWV2ZW4tNDQ3MAB5EIv2xSyLDCzoLYbMFovlTofY6zQwMDAwIHdpbmRvdy1jaGFpbi1zb3VyY2UtY291bnQAqUctlZ2wYsLDVFc8r26SHpnj5IM0MDAwMCB3aW5kb3ctY29tcGFyaXNvbi1iYXJyaWVyAFeFTyqUjHqj4jD8yIWMVoz84AhxNDAwMDAgd2l0bmVzcy1zcGVjLXRvb2xzAOxOdoc7bTvqDoq3N5SXFTuJ2uf4NDAwMDAgd29yZC1wcmVjaXNpb241MwDgrDwRo+X3iDP1N736CJdD6455ETQwMDAwIHdvcmQtcmFtLXRyYW5zZmVyAKp//lgDwx3UQ47SBnJ5RgriKzWGNDAwMDAgeDQtZmlmdGgtam9pbnQtZXhjaGFuZ2Utc2VlZDMyAKbcYJEnNm3+5TbWGR5/xym2KGydNDAwMDAgeDQtZm91ci1zb3VyY2UtaG9ybmVyAPs9UZbVlPpJL9sR1xKyVRYcQhB1NDAwMDAgeDQtZ2Fpbi1hZGRpdGl2aXR5LWF1ZGl0ADa842bN1b60dmoSGURBrdLV32oeNDAwMDAgeDQtam9pbnQtaG9ybmVyLXNlZWQyOQAbNcdOMbpMhJ/k3YaRensqzMxz+DQwMDAwIHg0LXByZWNvbmRpdGlvbi1zZWVkMjIAUelcAenC7LuCPeFcDNW4FXq97e00MDAwMCB4NC1wcmltaXRpdmUtYWRtaXNzaW9uAAc8rLK9OvanMbBeWsz+qm/fzBRPNDAwMDAgeDQtdHdvLXNoZWFyLXNlZWQzMQAB9l2JOzoFtYPjSNW57lCjbE9b4zQwMDAwIHg1NC1taXhlZC10MzctZnVzaW9ucwBMi/EdhdH9J6RU/7ZabZw6X2hItDQwMDAwIHhvci1hZmZpbmUtYWdyZWVtZW50LWF1ZGl0AJ6Clv51vZcG1QgpkcFkVLF6rE/YNDAwMDAgeG9yLWVuZHBvaW50LXRhcGVzAGQKEF0yXkY8VZ4vkfiedeAryXLfNDAwMDAgeG9yLW1hc2stbGRzALF0w2ONmu1iU5tHGl/kLsvpXzZ9NDAwMDAgeG9yLXByZWZpeC1zdHJlYW0tbGlmdGluZwDSiAYG1KCX7TWvI+XFxheflqjsujQwMDAwIHhvci1zY2F0dGVyLWJvdW5kYXJ5AN+cHGWIyXbcxS7xKIVoHdGB+T/HNDAwMDAgeG9yLXNjYXR0ZXItbmF0aXZlLWF1ZGl0AEBMvERf9aJPlWgQ29+7HUCyahvoNDAwMDAgeG9yLXN1YnNlcXVlbmNlLWVudW1lcmF0b3IAHUxsWfOLn/fYAzbGcygYM4B14lw0MDAwMCB6NC1jYXVzYWwtZXJyb3ItZ3VhcmQAhkeGXd3wsRywPGikX02h/1GivKU0MDAwMCB6NC1jZW50cmUtdHJhbnNmZXItYXVkaXQAdFHNflu6ODFV6uMT1+Vm0fDm4qM0MDAwMCB6NC1kaXN0aW5jdC1zb3VyY2Utc2VlZDU1AN3NknhEM4316a1LID3acdM77Ml6NDAwMDAgejQtaGV0ZXJvLXR3by1iYW5rLXNlZWRiYTE4AMRsMwuGwZ7OPdVJ9hRMaS7XQwvyNDAwMDAgejQtaGV0ZXJvZ2VuZW91cy1wYWlyLXNlZWQzeDcAcU04wsX/dU9dy2GpduqLIa9YNk00MDAwMCB6NC1wYWlyZWQtZnJhbWUtcmVzdG9yYXRpb24tc2VlZDU2AAtRL2aK5ey1/LxcdlJHXuS305I2NDAwMDAgejQtcGVyc2lzdGVudC1lcnJvci1lbnZlbG9wZQDAGg1xAfCrFdRHx16ktPflesEBATQwMDAwIHo0LXBlcnNpc3RlbnQtcGFpci1zZWVkNTcAvQ7xJmvAK+VG3maX/Q2PqKQmtxE0MDAwMCB6NC10eXBlZC1lY2hvLXN1cHBsaWVyLWluc3RhbmNlAAE2kCL2upfeRbJ0x92D0AnSP7lGNDAwMDAgejQtdHlwZWQtd2luZG93LWFkbWlzc2lvbi1rYjFjAFKJrmEh0IMxGpg7MdPKtx1bhJsiNDAwMDAgejQtdHlwZWQtd2luZG93LXNjaGVkdWxlLXNlZWQyNWFkAHMIDP/KyKnY/QBLdP+LayeFEwDdNDAwMDAgejYtaW5jb21wYXJhYmxlLWZhbm91dACnYSfP08DwRO/1UFK2w9KbekUU9zQwMDAwIHplcm8tZXhjbHVzaW9uLXByb29mLWF1ZGl0AHm5pHi4bBxtb51N8Tqj78MVnQ2ZNDAwMDAgemVyby1yZW1haW5kZXItY2FsbHMAOTAlzrrXQXyxb49b7Id95rV7jJk0MDAwMCB6ZXJvLXNhdmluZy1jZW50cmUtbW9tZW50AHlHU8wjl2yljraVO3z6GG4gBZRANDAwMDAgemVyby14b3ItcmV0dXJuAFgTv33W4ukfV1AdRSnOfqJZLcu7" + }, + "0994002341ec20dbea467f4c19fb8d4300cb88cc": { + "kind": "tree", + "bytes": 382, + "base64": "MTAwNjQ0IFJFQURNRS5tZADQWTpG6J62OlM5aM1rwdKhKfPCLjEwMDY0NCBSRVNVTFQuanNvbgC2yc0NoYie2S8/EGYSeiAyRvMD2DEwMDY0NCBTT1VSQ0VTLmpzb24AccV8ipBYXaYCuN8WPVgufHeUnAAxMDA2NDQgVEFTSy5qc29uAFtXqegjNXXJcEK3dKjuOIHm7Ob3MTAwNjQ0IFZFUklGWS5qc29uAICY30yAamxunivnJTukEBdE2rCNMTAwNjQ0IFdJVE5FU1MuanNvbgAZZl+erCI41wl1jgKW62AW5xsrGjEwMDY0NCBXT1JELmpzb24uZ3oApKWK/OFEVBYDOF6b9OBpXFTq3nwxMDA2NDQgbmF0aXZlLnB5AMv/Rv5ufXHBD+Q5YQ8ZFq0H+jzYMTAwNjQ0IHByaWNlLnB5AChokFoWUNS5T7ks2snIbqmId+BHMTAwNjQ0IHZlcmlmeS5weQA/frk1mpgPJGfSAtVnoQD87M2PIA==" + }, + "681ae2e88caef63561bee40bc1a6916cba335f0b": { + "kind": "tree", + "bytes": 10059, + "base64": "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NCByZWNvbmNpbGVfcHJfcXVldWUucHkA2zCcafg505AFaNXYvBgmjdIbgL4xMDA2NDQgcmVmcmVzaF9qb2ludF92YWxpZGF0aW9uX2JpbmRpbmdzLnB5AL9CiD1L5P2tUioGODgK6qNycj5uMTAwNjQ0IHJlcGxheV9iYW5rX2VuZHBvaW50X2ZhbWlseS5weQAkDYzmYtwXLYGY07IrhZxZkpAgTzEwMDY0NCByZXBsYXlfYmF0Y2gxMDQ3X3QxNi5weQA2fyE3nBeO847vnlEKXtFc2MLB3zEwMDc1NSByZXBsYXlfaGlzdG9yaWNhbF9jaGVjay5weQAekv/yeClw73E3j1lPI1DSRaTbJjEwMDY0NCByZXNlYXJjaF9iYXNlbGluZS5weQBrYHs27v1lcYEgrePIGHaB8Rv4eTEwMDY0NCByZXNlYXJjaF9iYXNlbGluZV9zcGFyc2UucHkAySp7lHoaL30MaHQ/TJo2AQnUdZ8xMDA2NDQgcmVzZWFyY2hfY29vcmRpbmF0aW9uLnB5ANEp33egtDuZpLXPr98Q+bSnqPpxMTAwNjQ0IHJlc2VhcmNoX25ldHdvcmtzLnB5AOg2mkF2kE5XaPOkymRcb/w+9JrPMTAwNjQ0IHJlc2VhcmNoX3BhY2thZ2UucHkA75tSw5IyM2JiG69u4Yiib8USK/kxMDA2NDQgcmVzZWFyY2hfc2VsZWN0ZWRfYmFzZWxpbmUucHkAvCM6O+Bh6nMMOOwhfs5zs8TI2mcxMDA2NDQgcmV1c2VfbmV0d29yay5weQBQ6BCkD57csd3Gc+ffVsm/mVg4rDEwMDY0NCByb3V0aW5nX3NtdC5weQAhzze0osbfbNBbbDzeX27CtA8RPDEwMDY0NCBydW5faXNvbGF0ZWRfdGVzdHMucHkAHVfT8UvDAtZxOLrTF8ycT/j1Xq8xMDA2NDQgcnVuX3BhcmFsbGVsLnB5ANkRornYh4zYkfvDwSiTwRaHeJ5aMTAwNjQ0IHNlYXJjaF9pbmNpZGVuY2VfcGFydGl0aW9ucy5weQCy5ci7b1Ao5aNc7SA9P0GWr9a8rTEwMDY0NCBzZWFyY2hfbmV0d29yay5weQDwPVwbLIGv1sLx07qeF9TnvNMbmzEwMDY0NCBzZWFyY2hfbmV0d29ya192YXJpYW50cy5weQBS5ZrMuYAxK+SOnWJ0RzunwxRTgjEwMDY0NCBzaGFyZWRfcG9pbnRfY2lyY3VpdC5weQDQhkJxiEOY1E7h/HDw2Zu5gkGBVjEwMDY0NCBzaGFyZWRfcG9pbnRfbmV0d29yay5weQAOx+dQRv5xSWjEkXjNf4PoDp+dlDEwMDY0NCBzbWFsbF9ibG9ja193aXRuZXNzLnB5AHTyOJfm1koIIJp2+0FXEckGfNATNDAwMDAgc3RvcHBlZF9wcm9kdWN0AMEsIeH+HOy8TTz/WtjdUVEz0hgwMTAwNjQ0IHN0b3BwZWRfcHJvZHVjdF9uZXR3b3JrLnB5AF80miZ2QZ4QArDUFWTYz1HdLx91MTAwNjQ0IHN0b3BwZWRfcHJvZHVjdF9wcm9kdWNlci5weQCu/JHZp3O0LFmoB/zjI/v7z0ccYjQwMDAwIHN0cnVjdHVyZWRfYnVsawB2sx0Mwwv5tSvfJ2dScBM0ipNQgDEwMDY0NCBzdHJ1Y3R1cmVkX2J1bGtfYXNzZW1ibHkucHkAt2+ctaRS+2N/OorsB0jabS2BlooxMDA2NDQgc3RydWN0dXJlZF9idWxrX25ldHdvcmsucHkAMst9O3MGdeUpFt4ba+FeeJnvInkxMDA2NDQgc3RydWN0dXJlZF9idWxrX3Byb2R1Y2VyLnB5AFvand1uBHhrawisrxLVsPWaMo5kMTAwNjQ0IHRlcm5hcnlfYXNzZW1ibHkucHkADlI70Qz2ic+uxAwooSP/6ptdyksxMDA2NDQgdGVzdF9wcjE0OF9sZWRnZXJfcmV0ZW50aW9uLnB5ACq6Zm0lBFgV9l7vr4wpdQEfZ3pYNDAwMDAgdGhyZWVfc3RhZ2VfY292ZXIA6dwQcpN5tPtMzqMgyJjQ2j+WJPkxMDA2NDQgdGhyZWVfc3RhZ2VfY292ZXJfbmV0d29yay5weQCLoFouqxG8x2ecnPiP5db2V24ARjEwMDY0NCB0aHJlZV9zdGFnZV9jb3Zlcl9wcm9kdWNlci5weQCeeiGnWNJt7LeLBWGoxRWrDCKkKDEwMDY0NCB0dW5lX3JvdXRpbmcucHkA1Um7xv3tnTnVy8h1X3GrexGiEl4xMDA2NDQgdmVyaWZ5X2NvbGQ2MTdfaW50ZXJmYWNlLnB5AHiSvzUtlPaDXliX6ox8mCqbCWaWMTAwNjQ0IHZlcmlmeV9jb21wbGV4NzQxX3BhcmFsbGVsLnB5AEet3xlbgMkQICWpeSo20PWP35FKMTAwNjQ0IHZlcmlmeV9mcm9udGllcjEwNDIucHkA5PEpsFcIZTMOOa4R6vr+cWf343QxMDA2NDQgdmVyaWZ5X2Zyb250aWVyMTA5NC5weQCW5sE4a9BSubyvE22TRAbz8MP3dzEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI0MzU5LnB5AJMVUR/RF9/WfRCkf0cQ26ZbJRXQMTAwNjQ0IHZlcmlmeV9mcm9udGllcjQ0NzAucHkAZS/VcE0hZM5UguxYEoStNgaQlYwxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNDYxMC5weQB5HAI5IGsuucxAbr1xUFcZx7c3qzEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1MzEucHkAqZAibx+lxiar/ahveJ46J2/YPTsxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTMxX2JpbmRpbmdzLnB5AO4+4k7WuHVymgsi+wRnTGQC+RNcMTAwNjQ0IHZlcmlmeV9mcm9udGllcjUzMV93cmFwcGVyX3N3YXAucHkAYrW6Mg6NqqJm/j0FDCcgzPRFmP8xMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTM1LnB5AH4HNVUDVuGFTezIBZD52C/tcfGLMTAwNjQ0IHZlcmlmeV9mcm9udGllcjUzNV9iaW5kaW5ncy5weQChi1BaLF8DUg0Ya3N9b/6sFIW5zjEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1ODgucHkA3uLU9yQvQdEe/eb0H7ofI6hyvQgxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNTg4X2JpbmRpbmdzLnB5AIiJhz9DG7QfvJt3a+x1lodRecvsMTAwNjQ0IHZlcmlmeV9mcm9udGllcjU5Ni5weQBfoe5gJ+V4DGPjj/0HzXVJ0vlQBDEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI1OTZfYmluZGluZ3MucHkAY/o+24SaKsTdUBRVmnLQgUOviHMxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNjE3LnB5APo3Jf+wbkSVkpb6+PZ/N6JLZS23MTAwNjQ0IHZlcmlmeV9mcm9udGllcjYxN19iaW5kaW5ncy5weQAV9Nrnr7Bd693obFwhfBj+2BYeCDEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI2MjYucHkA16mikLjeZtoKMv/UO3Qa+QMFrCgxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNjI2X2JpbmRpbmdzLnB5AB5R1TEwFWIOqklj2Qb5Fcqd+23MMTAwNjQ0IHZlcmlmeV9mcm9udGllcjc0MS5weQA+W4VaJG1hh1fZbPxLSB7Gmf2O9jEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI3NDFfYmluZGluZ3MucHkA3LQCmuqv5g9NhSoZdbAeAkOFlfwxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNzQxX2JyaWRnZV9jb3ZlcmFnZS5weQBNaAzotd4W5vPethqRTMnKR36ebTEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI3NDFfY29uY3VycmVudC5weQDRYt6TJTJeVK2PMaRvFBveYzhegzEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI3OTkucHkAwNiw0MnFLtF603y/fciIONrqIDoxMDA2NDQgdmVyaWZ5X2Zyb250aWVyNzk5X2JpbmRpbmdzLnB5AP+QJAbHrMdgyzq1yc9zJ2i93hYgMTAwNjQ0IHZlcmlmeV9mcm9udGllcjg5MC5weQC6gyQ7jWJmL4ahd47ik4A0Vn2p6zEwMDY0NCB2ZXJpZnlfZnJvbnRpZXI5NDIucHkA6zOaIaGd3U6d/0Ear3nSsAa4VuwxMDA2NDQgdmVyaWZ5X2Zyb250aWVyX2NvbXBsZXRlLnB5AJOGA3DMaltja8R/gYeqg0S2ZqebMTAwNjQ0IHZlcmlmeV9mcm9udGllcl9yZXBsYXkucHkAHSPT7WaYC93HWVzMsHqzE+pC55MxMDA2NDQgdmVyaWZ5X2hwZTYwOC5weQCXwiJAo1ppnFoUukspswcISvfaiTEwMDY0NCB2ZXJpZnlfaHBlX2xlYW5fYmluZGluZy5weQB94BGnS39ZL6dXaMr1FDqe/i2tyjEwMDY0NCB2ZXJpZnlfcGFyYWxsZWwucHkA/6yaK4/KtLWOXCAQO1OqQx/tb3sxMDA2NDQgdmVyaWZ5X3ByX2xlZGdlcl9tYXJrZG93bi5weQCv8+7Rn266CIhUqLoQvnBqu9TQaTEwMDY0NCB2ZXJpZnlfcHJfcmVjb25jaWxpYXRpb24ucHkAFXPzbA4R49eGKTkavsxZV+uqxygxMDA2NDQgdmVyaWZ5X3JlcGxheV9jb3ZlcmFnZS5weQBmyaTpjV+/yCqfLf5hF8WvAhWlszEwMDY0NCB2ZXJpZnlfc2VsZWN0ZWRfcmVzdWx0LnB5AGiCpHAOQQ3sVptRri6vGhnMAZGVMTAwNjQ0IHZlcmlmeV9zdXBwbGllcl9jb25zb2xpZGF0aW9uLnB5AGGaC6rQmrwMaoQZzbVSkDSdNn/n" + } + }, + "rows": [ + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "92bd281a274191242f183544f5ebab24b7f61127" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "path": "docs/research/agent-task-catalog.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "bytes": 77545, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "258aaa876ecb530c4c173c8e3ef93ccf87c81673", + "e9c70b9927d6e9233633e4e88108f831e7c5c5d9" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "bytes": 9907, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "8bed1ecc75af648c4b5fbf888b902e89ea94de00" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "aa1dcd2b4b0a2d5c26940ad29e76603ef1827099" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "93c3da5da0a527baf42dbbe76e7af010384def87" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "74c4ba5ee249a16c2dfa2f82925166545463855a", + "9b4af599b5540b1ddd45c85e37a42823ea293948" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "bytes": 9107, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "5eb7366e5276e445e0298498d2115d8302a17dee" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "665cbf769f1a354fc6d5f0472d838d6167db6052", + "6d000ab094737cb47cdd98d07bd06d19d13dda52" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "path": "research/kappa-rebuild/complex/native_extensions.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "bytes": 12470, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "665cbf769f1a354fc6d5f0472d838d6167db6052", + "e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "db06c76a46083783b675e5a5ce418c52a400d350" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "db06c76a46083783b675e5a5ce418c52a400d350" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "33bac32f5e5cef7bfd90295ddaf387a692c0b13b" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "3e58974508669b0b52f53c56371b5f9c253ece4b", + "a45bf9b51639925a97e26e9cbd987044b588b383", + "a197205550f7cf2fb4e47301f3dac6f6f7939b5a" + ] + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "declared source pin", + "tree_chain": [ + "bfb420045d2bc04dd026b5020aea84d547873ef4", + "c211d4eb07730865bffd69a35a85a0642acc333d", + "368780035287bad0b8e9cd1a9f7da73223dfa456" + ] + }, + { + "capsule_path": "snapshot/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "92bd281a274191242f183544f5ebab24b7f61127" + ] + }, + { + "capsule_path": "snapshot/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "aa1dcd2b4b0a2d5c26940ad29e76603ef1827099" + ] + }, + { + "capsule_path": "snapshot/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "93c3da5da0a527baf42dbbe76e7af010384def87" + ] + }, + { + "capsule_path": "snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "74c4ba5ee249a16c2dfa2f82925166545463855a", + "9b4af599b5540b1ddd45c85e37a42823ea293948" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/README.md", + "path": "research/kappa-joint-relations-20261023/README.md", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "d0593a46e89eb63a533968cd6bc1d2a129f3c22e", + "sha256": "899027b74219ece1832d711e27def50eb49994cd28ede4fedcdd0bd0f2574c64", + "bytes": 16479, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/RESULT.json", + "path": "research/kappa-joint-relations-20261023/RESULT.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "bytes": 22334, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/SOURCES.json", + "path": "research/kappa-joint-relations-20261023/SOURCES.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "71c57c8a90585da602b8df163d582e7c77949c00", + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3", + "bytes": 3665, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/TASK.json", + "path": "research/kappa-joint-relations-20261023/TASK.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "5b57a9e8233575c97042b774a8ee3881e6ece6f7", + "sha256": "4d536a9bd6162b64ecf7bba20bec35fa0ca8fe61abf8e1404cd010b58de07a3d", + "bytes": 5801, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/VERIFY.json", + "path": "research/kappa-joint-relations-20261023/VERIFY.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "bytes": 1298, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WITNESS.json", + "path": "research/kappa-joint-relations-20261023/WITNESS.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "19665f9eac2238d709758e0296eb6016e71b2b1a", + "sha256": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591", + "bytes": 5482, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WORD.json.gz", + "path": "research/kappa-joint-relations-20261023/WORD.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "a4a58afce144541603385e9bf4e0695c54eade7c", + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "bytes": 207650, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/native.py", + "path": "research/kappa-joint-relations-20261023/native.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "cbff46fe6e7d71c10fe439610f1916ad07fa3cd8", + "sha256": "3c8efab1f830868c054d33391ee2f8bc74f9bae9c134edf5b455790eb674c1c4", + "bytes": 16822, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/price.py", + "path": "research/kappa-joint-relations-20261023/price.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "2868905a1650d4b94fb92cdac9c86ea98877e047", + "sha256": "6ec03cda9ab6cb27c4a281c12646bbbc232cc57b8ec179969c59b0072c4b59ba", + "bytes": 13360, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/verify.py", + "path": "research/kappa-joint-relations-20261023/verify.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "3f7eb9359a980f2467d202d567a100fceccd8f20", + "sha256": "43fb20a4ef18fb17f168c9e3c1608898551a04fb64496405d3682983dbf47828", + "bytes": 3474, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "0994002341ec20dbea467f4c19fb8d4300cb88cc" + ] + }, + { + "capsule_path": "snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "665cbf769f1a354fc6d5f0472d838d6167db6052", + "6d000ab094737cb47cdd98d07bd06d19d13dda52" + ] + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "db06c76a46083783b675e5a5ce418c52a400d350" + ] + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "db06c76a46083783b675e5a5ce418c52a400d350" + ] + }, + { + "capsule_path": "snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "33bac32f5e5cef7bfd90295ddaf387a692c0b13b" + ] + }, + { + "capsule_path": "snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "3e58974508669b0b52f53c56371b5f9c253ece4b", + "a45bf9b51639925a97e26e9cbd987044b588b383", + "a197205550f7cf2fb4e47301f3dac6f6f7939b5a" + ] + }, + { + "capsule_path": "snapshot/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "b3abe1a63f80b453a11823d70c836b9199e7c556", + "368780035287bad0b8e9cd1a9f7da73223dfa456" + ] + }, + { + "capsule_path": "snapshot/scripts/check_research_commit.py", + "path": "scripts/check_research_commit.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0", + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "bytes": 7048, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "681ae2e88caef63561bee40bc1a6916cba335f0b" + ] + }, + { + "capsule_path": "snapshot/scripts/research_package.py", + "path": "scripts/research_package.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9", + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "bytes": 50854, + "binding": "exact candidate head", + "tree_chain": [ + "7c8818178b05733b5d09a6decc34d53b84fdc213", + "681ae2e88caef63561bee40bc1a6916cba335f0b" + ] + } + ], + "status": "PASS_EXACT_COMMIT_TREE_BLOB_PATHS_AND_SHA256", + "ancestry_scope": "Candidate raw commit direct-parent source base verified separately; no synthetic history and no complete-history payload claim." +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw new file mode 100644 index 0000000000..87c53f7af1 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/CANONICAL-COMMIT.raw @@ -0,0 +1,6 @@ +tree bfb420045d2bc04dd026b5020aea84d547873ef4 +parent 7c472563474e60185e6ca101a17622133d047e56 +author Douglas R. Colkitt 1792786762 -0400 +committer Douglas R. Colkitt 1792786762 -0400 + +Admit conditional PR4610 frontier through independent PR5241 audit [skip ci] diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw new file mode 100644 index 0000000000..b08b5f5efd --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/EXACT-COMMIT.raw @@ -0,0 +1,6 @@ +tree 7c8818178b05733b5d09a6decc34d53b84fdc213 +parent 1ec1119972c9aefe42525172d07b332fcff81cb4 +author Ali Romman <226877337+aliromman@users.noreply.github.com> 1792788545 -0500 +committer Ali Romman <226877337+aliromman@users.noreply.github.com> 1792788545 -0500 + +Research: eight joint helper relations improve conditional kappa to 0.00302666 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json new file mode 100644 index 0000000000..269577d5fd --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/IMMUTABLE-MANIFEST.json @@ -0,0 +1,426 @@ +{ + "schema": 1, + "immutable_version": "capsule-v1", + "candidate_head": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "package": "research/kappa-joint-relations-20261023", + "source_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "rows": [ + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json", + "path": "docs/research/agent-task-catalog.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "bytes": 77545, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "bytes": 9907, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py", + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "bytes": 9107, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py", + "path": "research/kappa-rebuild/complex/native_extensions.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "bytes": 12470, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "declared source pin" + }, + { + "capsule_path": "provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "declared source pin" + }, + { + "capsule_path": "snapshot/certificates/selected-result.json", + "path": "certificates/selected-result.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/higher-moment-strictification/verify.py", + "path": "research/higher-moment-strictification/verify.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "bytes": 17152, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/joint-helper-lattice/CONTROLLER.json", + "path": "research/joint-helper-lattice/CONTROLLER.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/README.md", + "path": "research/kappa-joint-relations-20261023/README.md", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "d0593a46e89eb63a533968cd6bc1d2a129f3c22e", + "sha256": "899027b74219ece1832d711e27def50eb49994cd28ede4fedcdd0bd0f2574c64", + "bytes": 16479, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/RESULT.json", + "path": "research/kappa-joint-relations-20261023/RESULT.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "bytes": 22334, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/SOURCES.json", + "path": "research/kappa-joint-relations-20261023/SOURCES.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "71c57c8a90585da602b8df163d582e7c77949c00", + "sha256": "3b1536861c5b6990966ad5107f3a619f5d9da548f3c4eaa454ec32341e640dd3", + "bytes": 3665, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/TASK.json", + "path": "research/kappa-joint-relations-20261023/TASK.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "5b57a9e8233575c97042b774a8ee3881e6ece6f7", + "sha256": "4d536a9bd6162b64ecf7bba20bec35fa0ca8fe61abf8e1404cd010b58de07a3d", + "bytes": 5801, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/VERIFY.json", + "path": "research/kappa-joint-relations-20261023/VERIFY.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "bytes": 1298, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WITNESS.json", + "path": "research/kappa-joint-relations-20261023/WITNESS.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "19665f9eac2238d709758e0296eb6016e71b2b1a", + "sha256": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591", + "bytes": 5482, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/WORD.json.gz", + "path": "research/kappa-joint-relations-20261023/WORD.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "a4a58afce144541603385e9bf4e0695c54eade7c", + "sha256": "7883ba0faefc96505bb61ca7312d588fa22dfe2164050c817c1718b8fa28693a", + "bytes": 207650, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/native.py", + "path": "research/kappa-joint-relations-20261023/native.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "cbff46fe6e7d71c10fe439610f1916ad07fa3cd8", + "sha256": "3c8efab1f830868c054d33391ee2f8bc74f9bae9c134edf5b455790eb674c1c4", + "bytes": 16822, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/price.py", + "path": "research/kappa-joint-relations-20261023/price.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "2868905a1650d4b94fb92cdac9c86ea98877e047", + "sha256": "6ec03cda9ab6cb27c4a281c12646bbbc232cc57b8ec179969c59b0072c4b59ba", + "bytes": 13360, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-joint-relations-20261023/verify.py", + "path": "research/kappa-joint-relations-20261023/verify.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "3f7eb9359a980f2467d202d567a100fceccd8f20", + "sha256": "43fb20a4ef18fb17f168c9e3c1608898551a04fb64496405d3682983dbf47828", + "bytes": 3474, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py", + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "bytes": 12298, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "bytes": 10555, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "bytes": 11603, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/research/query-thinned-controllers/RESULT.json", + "path": "research/query-thinned-controllers/RESULT.json", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "bytes": 10237, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/scripts/check_research_commit.py", + "path": "scripts/check_research_commit.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0", + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "bytes": 7048, + "binding": "exact candidate head" + }, + { + "capsule_path": "snapshot/scripts/research_package.py", + "path": "scripts/research_package.py", + "source_commit": "4bd6efa51a495a7c7b7754915cf0244e7e60969e", + "mode": "100644", + "kind": "blob", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9", + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "bytes": 50854, + "binding": "exact candidate head" + } + ], + "history": [ + { + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "candidate_ancestor_exit": 0, + "canonical_ancestor_exit": 0 + } + ], + "status": "SOURCE_BYTES_AUTHENTICATED_NO_MATHEMATICAL_REPLAY", + "git_closure": "not yet installed; scientific/provenance bytes are complete", + "command_manifest": { + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] + }, + "scope": "Read-only source preflight. No candidate module imported or executed." +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json new file mode 100644 index 0000000000..62c2e86db7 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/SOURCE-HISTORY.json @@ -0,0 +1,7 @@ +[ + { + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "candidate_ancestor_exit": 0, + "canonical_ancestor_exit": 0 + } +] diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json new file mode 100644 index 0000000000..f126dd2e2d --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/agent-task-catalog.json @@ -0,0 +1,1242 @@ +{ + "schema_version": 1, + "priority_revision": 7, + "priority_log": "docs/research/research-priority-log.md", + "assessed_on": "2026-10-20", + "status": "Research suggestions, not reservations or assertions that these questions are unclaimed. Check current main and live PRs.", + "tracks": [ + { + "id": "bit-mechanisms", + "weight": 20, + "tasks": [ + { + "id": "bit-helper-contract", + "question": "Can one precisely specified helper-mixing word satisfy a replacement for the inherited H2/K interface?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/r439-bsection-stars-seed01/README.md", + "research/r439-copy-path-sharing-barrier/README.md" + ], + "methods": [ + "Derive a replacement interface lemma and price its implementation.", + "Seek an exact dirty-input or chronological-cut counterexample to the proposed replacement." + ], + "acceptance_gate": "A full boundary contract and paid profile; unchanged scalar counts alone are insufficient. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/r439-bsection-stars-seed01/verify.py" + ], + "expected": "PASS_R439_BSECTION_STARS", + "inspect": "Compare the two false H2/K flags with the unchanged paid profile in its README.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write one replacement H2/K implication for a single helper-star operation, then try to falsify it on dirty inputs.", + "bottleneck_link": "A legitimate replacement could admit a cheaper bit circuit; scalar savings alone do not alter the selected moment.", + "allowed_variations": [ + "Choose one helper-star or quartet instance; narrow to one boundary implication." + ], + "scope_change_triggers": [ + "Changing only source count or scalar addition count without an interface argument." + ], + "overlap_terms": [ + "H2_D_frame0_targets_from_helpers", + "K_equals_D", + "helper-star" + ] + }, + { + "id": "bit-new-register-model", + "question": "Can an explicitly larger or nonabelian register model escape the scoped three-register obstruction?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/bit-three-register-lower-bound/README.md", + "certificates/selected-result.json", + "research/bit-gl3-mixed-targets-length10/README.md", + "docs/research/community-efficient1000-review.md" + ], + "methods": [ + "Construct the smallest exact identity in a newly specified legal operation alphabet.", + "Derive a target-specific relaxation bound for that same explicit alphabet." + ], + "acceptance_gate": "Name the changed hypothesis, all counted roles and a uniform identity; finite column tests alone do not certify it. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read Model section 1 of the three-register bound and identify the exact excluded free operations.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "First compare the alphabet, role count and length with the fully replayed #1974 census and #2027 mixed-root tariff. Identify a changed premise and a legal native implementation; then price one smallest completed instance before searching larger words.", + "bottleneck_link": "A small-width completed saving changes the bit primitive; a finite-address identity alone is insufficient.", + "allowed_variations": [ + "Choose a fixed larger register count or a specified nonabelian operation family." + ], + "scope_change_triggers": [ + "Remaining inside the already-excluded three-register abelian model.", + "Repeating the two-register GL3 census or a covered three-register length without changing a hypothesis; a formal group-algebra word without native conversion is a partial result." + ], + "overlap_terms": [ + "three-register", + "nonabelian", + "group algebra" + ] + }, + { + "id": "r437-carrier-integration", + "question": "Can the paid R437 two-window carrier improvement be admitted by the actual pooled compiler and physical caller?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/r437-two-window-carrier/README.md", + "research/r437-reverse-row-coefficient/README.md" + ], + "methods": [ + "Close one compiler/request, caller or precision/stock implication for the pinned paid exchange.", + "Falsify that exact interface with an arbitrary-dirty-state or chronology counterexample." + ], + "acceptance_gate": "Pin the complete source and destination contracts, exact paid and scalar deltas, and all remaining assumptions. A local moment gain is not a physical or all-size supplier admission.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4067 paid profile and open integration obligations; #4147 covers the reverse row coefficient. Three additional ADDs per call and all helpers remain charged. This is not a selected supplier.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Choose one unclaimed obligation: pooled compiler codebook/request alignment, actual physical caller, or precision/stock envelope using the already reported reverse coefficient. Pin the input and receiver, preserve dirty/source windows, and test one binding with a rejection control. Stop at unresolved dependencies; do not rederive the coefficient or quote the local moment as a completed bound.", + "bottleneck_link": "The exchange changes the paid profile; integration must establish that its gain survives the complete caller.", + "allowed_variations": [ + "One compiler rebind, one actual caller boundary, or one precision/stock implication." + ], + "scope_change_triggers": [ + "Ignoring added ADDs, retaining an obsolete reverse coefficient, or declaring global admission from the local histogram." + ], + "overlap_terms": [ + "R437", + "two-window carrier", + "4067", + "4147", + "pooled compiler", + "request alignment", + "reverse row coefficient" + ], + "existing_checks": [ + { + "scope": "PR #4067: source-bound two-window carrier with (2,2) to (1,3) paid exchange and fixed OQ4 host.", + "evidence": "research/r437-two-window-carrier/README.md", + "remaining": "Pooled compiler/request rebind, physical caller and precision/stock admission.", + "status": "author-checked", + "source_commit": "a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4147: reverse row coefficient follow-up.", + "evidence": "research/r437-reverse-row-coefficient/README.md", + "remaining": "Use the exact coefficient in a caller-bound precision/stock proof rather than repeat the arithmetic.", + "status": "author-checked", + "source_commit": "72e7bb797adf82aeb525a399f56ab8adbab8e93c", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + }, + { + "id": "complex-mechanisms", + "weight": 20, + "tasks": [ + { + "id": "p104-side-correction", + "question": "Can a changed P104 producer/consumer contract escape the scoped slot, chart and completion obstructions with a favorable full bill?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/p104-literal-slot-defect/README.md", + "research/p104-uniform-commutation-gap/README.md", + "research/p104-uniform-encoding-gap/README.md", + "research/p104-source-chart-shortcut/README.md", + "research/p104-fiber-tag-seam/README.md" + ], + "methods": [ + "Construct one side-correction word at an explicit chronological cut with the needed frames still available.", + "Derive a lower bound on the side correction and hosting costs that decides whether this channel can beat the selected budget." + ], + "acceptance_gate": "An exact arbitrary-input identity, source/target frame availability and restoration at the chosen cut, plus the complete channel+correction+idle/hosting bill or an explicit favorable bound. The native channel alone is not a supplier. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the named successor obstructions before extending #2981 static flags. Distinguish literal-slot action, commutation, uniform encoding, source-chart shortcut and fiber-tag seam scopes; none excludes all P104 mechanisms.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Name one hypothesis changed from these exact interfaces. Write a literal producer-to-consumer timeline and an arbitrary-dirty-input positive/control pair, then charge acquisition, coefficients, completion, hosting and restoration. Stop if the same slot/fiber mismatch persists or the favorable full budget already fails. A scoped independent audit remains useful; another static count is not a new completion.", + "bottleneck_link": "Completing an already realized changed channel tests a concrete construction opportunity, instead of refining the incumbent packing. A positive local result still needs global and all-size admission.", + "allowed_variations": [ + "One correction factorization, one chronological cut, or one explicit hosting obstruction.", + "A changed correction schedule with an updated full bill and native frame contract." + ], + "scope_change_triggers": [ + "Recompiling the already certified low-rank channel without closing a new obligation.", + "Treating a pending ancestor, local histogram or unpriced side correction as an admitted global supplier.", + "Repeating a correction or physical conversion already supplied by a pending follow-up without adding independent coverage or a different unresolved obligation.", + "Repeating the 208-flag static matching or calling a static nested cover a chronological correction program. Independent audit of that certificate is distinct and remains useful.", + "Repeating a static cover, source-chart shortcut or fiber-tag seam without changing the hypothesis responsible for its obstruction." + ], + "overlap_terms": [ + "P104", + "I-G/2", + "side correction", + "native channel", + "1972", + "1991", + "2586", + "endpoint transport", + "physical dual", + "relay composition", + "2981", + "joint unit flags", + "acquisition delivery", + "static nesting", + "4133", + "4136", + "4140", + "4153", + "4154", + "p104-literal-slot-defect", + "p104-uniform-commutation-gap", + "p104-uniform-encoding-gap", + "p104-source-chart-shortcut", + "p104-fiber-tag-seam" + ], + "existing_checks": [ + { + "scope": "PR #4133: literal-slot defect", + "evidence": "research/p104-literal-slot-defect/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "88666f1dee93fbd85b31fd5d6f91a219e111b5f4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4136: uniform commutation gap", + "evidence": "research/p104-uniform-commutation-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "281ce601a8be9db470de630759179c23e1dfaa88", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4140: uniform encoding gap", + "evidence": "research/p104-uniform-encoding-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "de25c6525aa866962309df5d107b32d55e6e5628", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4153: source-chart shortcut exhausts its optimistic allowance", + "evidence": "research/p104-source-chart-shortcut/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "9123241fea53df77e51ffe30d9aca1625d4bf3a8", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4154: fiber-tag seam mismatch", + "evidence": "research/p104-fiber-tag-seam/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "4ffcdaee5d6255a9cea1fe53a5424435068089d0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "complex-rank-shape-decoder", + "question": "Can a decoder deliver the local paid mass in fewer, larger-rank children (block frame climbs instead of rank-1 to rank-3 steps)?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/complex-decoder-field-extension-seed44/README.md", + "research/complex-frame-pair-decoders/README.md", + "research/selected-k8-unrestricted-ends/README.md", + "research/eisenstein-reduction-copy-floor/README.md" + ], + "methods": [ + "Find one exact small decoding identity whose frame path climbs in blocks, and price its complete per-call profile.", + "Bound the best effective child rank achievable for one fixed support alphabet, including copies, frames and restoration." + ], + "acceptance_gate": "A per-call local profile, with all copied information, frames and restoration counted, whose ceiling exceeds the selected word's by at least 5%; masked or overcomplete supports must change an assumption of the eight-term all-pairs bound. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin. Ideal budget: rank-16 delivery is 2.31x (levers.py).", + "bottleneck_link": "Rank-1 children are about half of recursive cost; the selected word's effective child rank is about 3.9. Larger-rank delivery lowers recursive cost per unit of paid mass.", + "allowed_variations": [ + "One masked, overcomplete or block decoder family with exact labels and supports.", + "A scoped lower bound on effective rank for one alphabet.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Repacking idle remainders of an unchanged word (covered by the packing ceiling).", + "Repeating the eight-term all-pairs search inside its proved scope.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Searching below C=40 in the #2017 Eisenstein binary scalar-rectangle or fixed-support block-linear additive pairing model; specify a changed premise instead. This bound does not cover every complex decoder.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "rank shape", + "block climb", + "masked decoder", + "overcomplete", + "effective rank" + ] + }, + { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + } + ] + }, + { + "id": "recursive-interfaces", + "weight": 20, + "tasks": [ + { + "id": "joint-query-controller", + "question": "Can the installed QQ16 caller win a complete matched protocol bill, or can a changed demand eliminate actual paid work?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/qq16-caller-install/README.md" + ], + "methods": [ + "Derive the matched whole-caller physical bill for installed and baseline protocols.", + "Change the actual demanded observations and prove a cheaper legal producer/consumer contract." + ], + "acceptance_gate": "Name the changed premise of the fixed F0/B1 observation obstruction. Show exactly which query is recovered, legal native reads and restoration, and a full favorable budget including cover maps, helpers and endpoints. Local inverse identities alone do not close the global controller. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4166 COST.md and ADMISSION.json. An actual caller connection is now proposed. Its native-component profile loses; parent park/restore versus external-call costs remain unresolved. Retain the producer and recovery lineage rather than rebuild it.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "At the actual installed cut, compare matched complete parent park/restore and external input/return protocols at the same bank/packet geometry, including every later root call and service cost. Alternatively pin both bridge observations and derive a genuinely smaller source-compatible demand. Stop if the complete necessary inequality fails or an essential cost is unknown; no larger decoder scan from a local tape-action saving.", + "bottleneck_link": "The native local words exist; retained query information and its physical access are the missing link to a composed recursive interface.", + "allowed_variations": [ + "One paid query, one changed first pair, or one precisely specified affine helper state.", + "A counterexample or lower bound for that exact proposed repair.", + "One unresolved obligation of a newer local decoder, with exact source heads and a distinct claim/domain." + ], + "scope_change_triggers": [ + "Retaining the fixed first pair and ordinary schedule while allowing only homogeneous selected-only control, already excluded by the witness.", + "Treating cover-map counts as zero-cost physical address operations.", + "Recreating the pending complete local decoder or early-record/output-bank coalescing already under investigation without a distinct audit or changed premise.", + "Treating a completed-output defect inequality as a producer-interior, dirty-range or physical-cost certificate.", + "Recreating completed-output recovery or caller wiring already supplied by #4166 without new independent coverage.", + "Dropping retained later root calls or claiming native-profile dominance from the isolated publication saving." + ], + "overlap_terms": [ + "QQ16", + "joint-query", + "changing-chart controller", + "selected observation", + "1969", + "2540", + "early record", + "output-bank retention", + "complete native decoder", + "2965", + "producer defect", + "dirty-helper range", + "F17 consumer", + "4166", + "qq16-caller-install" + ], + "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" + } + ] + }, + { + "id": "centre-path-sharing", + "question": "Can the 64-per-call centre path (eight rank-8 COPY/ERASE totals through the private temporary) be shared across calls or shrunk?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/split-centres-global/proofs/PR386-BIT-GEOMETRY.txt", + "certificates/selected-result.json" + ], + "methods": [ + "Derive a fully charged favorable relaxation for sharing one centre path across k calls, including restoration, hosting and precision.", + "Prove a lower bound on copied information per call for the selected decoder contract." + ], + "acceptance_gate": "Show the changed centre charge and copy profile per call with every added restoration or hosting cost charged, and its ceiling via ceiling.ceiling(centre=...). A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write the per-call centre charge and copy children for sharing across k = 2 calls, charge the sharing overhead, and screen it; stop this route if even the ideal sharing gains under 10%. Ideal budgets: free 2.80x, shared by two 1.90x (levers.py).", + "bottleneck_link": "The centre path consumes 64 of about 99.6 unpaid coordinates per call, i.e. about 64% of the raw deficit.", + "allowed_variations": [ + "One sharing pattern across a fixed number of calls.", + "One reduced copied-total contract for the existing decoder.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Removing copies without a replacement contract for the decoder's copied totals.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "centre path", + "copied totals", + "private temporary", + "shared centre", + "batching" + ] + }, + { + "id": "coverage-law-change", + "question": "Can a template or call contract leave two or more unpaid coordinates per live family?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/idle-axis-hosting/PROOF.md", + "certificates/selected-result.json" + ], + "methods": [ + "State a replacement for the coverage identity (mass = 72W + 64N) and the contract change that realizes it, with its implementation cost.", + "Find an obstruction: show which data-endpoint obligation forces exactly one unpaid coordinate in the current template." + ], + "acceptance_gate": "An explicit replacement identity, verified on a small complete instance with dirty inputs, priced with ceiling.ceiling(unpaid=...). A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Explain where the single unpaid coordinate per family comes from in the hosted template; propose one change and price it. Ideal budget: two unpaid coordinates per family is 3.77x (levers.py).", + "bottleneck_link": "The deficit is one coordinate per family minus the centre charge; doubling unpaid coordinates per family scales it directly.", + "allowed_variations": [ + "One template change or one endpoint-contract change.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Counting a coordinate as unpaid while leaving it unadvanced in the data endpoint.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "coverage identity", + "unpaid coordinate", + "deficit law", + "W - 64N" + ] + }, + { + "id": "connector-alphabet-change", + "question": "Does one explicit extension of the connector alphabet offer a favorable completed budget?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/universal-connector-boundary/README.md", + "certificates/selected-result.json" + ], + "methods": [ + "Construct and charge a legal extra operation on a minimal instance.", + "Prove a target-specific bound after adding one specified operation family." + ], + "acceptance_gate": "State which fixed-alphabet premise changes and charge its implementation; do not declare it free. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/universal-connector-boundary/verify.py" + ], + "expected": "PASS_UNIVERSAL_CONNECTOR_BOUNDARY", + "inspect": "Reproduce the 945-pairing control, then read Exact interface to list the allowed calls.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Add exactly one legally priced operation and test a tiny dirty-input instance before enumerating larger cases.", + "bottleneck_link": "A new legal connector operation could change recursive interface cost; a larger census in the same alphabet is a separate side result.", + "allowed_variations": [ + "Choose one additional operation and a small source count for its first counterexample." + ], + "scope_change_triggers": [ + "Keeping the alphabet and only increasing the source count; record this as a changed assignment.", + "Extending a source-count census without naming a supplier/interface decision it could change; audit #2973 pruning concerns before relying on the affected predecessor exclusions." + ], + "overlap_terms": [ + "universal connector", + "source-toggle", + "connector alphabet" + ] + } + ] + }, + { + "id": "adversarial-audit", + "weight": 15, + "tasks": [ + { + "id": "selected-stock-envelope", + "question": "What explicit uniform stock envelope does the actual selected stopped producer supply at one bootstrap stage?", + "starting_points": [ + "research/selected-bootstrap-stock-audit/README.md", + "research/bootstrap-cutoff-time-space-split/README.md", + "certificates/selected-result.json", + "docs/research/community-efficient1000-review.md", + "research/stock-margin-chain/README.md" + ], + "methods": [ + "Derive a source-bound reserve recurrence at the actual selected atom widths, separating parent stock from completed inner borrowing.", + "Find an exact missing implication or counterexample to a proposed selected-stage stock envelope." + ], + "acceptance_gate": "Bind every coefficient and depth factor to the selected producer and state the width domain. Compare a proved envelope with the sufficient cutoff guard; a large numerical headroom or a historical m=120 coefficient is not a selected m=73 proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2972 stock-margin chain and the selected stock audit. The new source archive reports the remaining cutoff comparisons, but leaves every actual stock coefficient unresolved; it is not an independently validated reserve envelope.", + "scope": "Source-bound orientation only. Read the named package and review before relying on its local evidence; this command is not its replay or supplier admission." + }, + "first_experiment": "Choose one actual selected producer/stage and derive its parent reserve and depth coefficient from source. Check whether newer handoffs already cover that exact obligation. Stop with the missing implementation lemma if it cannot be bounded; do not rerun #2972 cutoff/headroom arithmetic as a new contribution.", + "bottleneck_link": "This reduces a concrete inherited implementation obligation without confusing unchanged kappa arithmetic with a completed theorem.", + "allowed_variations": [ + "One stage or one explicit reserve/depth implication.", + "An independently checked same-domain proof repair, retaining all remaining assumptions." + ], + "scope_change_triggers": [ + "Importing the historical 57604 or 252 allowance without a selected-producer binding.", + "Calling a conditional fit lemma a full outer-proof adoption.", + "Replacing an actual selected stock coefficient with cutoff comparisons or a conditional fit inequality." + ], + "overlap_terms": [ + "selected stock", + "stock envelope", + "bootstrap cutoff", + "1956", + "1965", + "1990", + "2972", + "stock-margin-chain", + "actual_stock_coefficient" + ], + "existing_checks": [ + { + "scope": "Retained stock audit identifies missing actual selected-stage coefficients; later cutoff-chain arithmetic does not supply them.", + "evidence": "docs/research/research-family-status.md#revision-6-handoffs-source-archives-awaiting-independent-validation", + "remaining": "Derive one actual reserve/depth coefficient from the selected producer.", + "status": "reviewed", + "source_commit": "836b19bfa309ceafbc8ee32a15e8c4b10dde7e11", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "supplier-boundary-audit", + "question": "Can the #4088 four-provider dispatch satisfy the complete ordinary/outer admission contract?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/scatter-boundary-decision/README.md" + ], + "methods": [ + "Trace one hypothesis through the source, checker and complete caller.", + "Construct one semantically invalid but superficially well-formed fixture and test rejection." + ], + "acceptance_gate": "Pin the current sources and one obligation; the historical owner audit is an example, not evidence of a current bug.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4088 Scope and Open next questions: local words, native receipts and literal fill do not include a rerun of the mixed four-provider ordinary/outer engine. #3801 is the newer scatter-boundary decision; do not restart #2977 as if untouched.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Pin the provider registry, four native source closures and dispatch. Make a bounded acceptance coverage map or one registry adapter preserving every inherited admission predicate and rejection control (including an omitted fourth provider). Record remaining ordinary/outer obligations and a resource estimate before heavy execution. Stop at unresolved source/caller dependencies; no selected-result promotion from a local pass.", + "bottleneck_link": "Closing a current acceptance gap or proof obligation strengthens reliability even without changing kappa.", + "allowed_variations": [ + "One provider-registry, dispatch, native-closure or admission-predicate obligation; separate branches must name distinct coverage." + ], + "scope_change_triggers": [ + "Reporting the historical timing-only diagnostic as a new current acceptance bug.", + "Calling a malformed mutant a failure of the selected construction, or importing an opt-in repair without testing the exporter boundary.", + "Running another root enclosure instead of validating dispatch or weakening an inherited predicate to make mixed admission pass." + ], + "overlap_terms": [ + "owner boundary", + "bridge omission", + "hosting", + "2977", + "scatter export", + "duplicate index", + "parity semantics", + "4088", + "3801", + "staged544-mixed-fourth-entry", + "scatter-boundary-decision" + ], + "existing_checks": [ + { + "scope": "PR #4088: author-checked local words, native receipts, owner/phase fill and exact moment.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Rebind and validate ordinary/outer admission with all four providers; full mixed release not established.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3801: successor scatter-boundary decision package.", + "evidence": "research/scatter-boundary-decision/README.md", + "remaining": "Consult its exact acceptance scope before any new exporter audit; not proof of a selected failure.", + "status": "author-checked", + "source_commit": "911f8800ba7a4b03603ef62c5ffc6240e53cb5fd", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "uniform-transfer-audit", + "question": "Does one quantified step of the proposed #4100 all-size construction hold at its actual caller?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/unconditional-batched-crt/README.md" + ], + "methods": [ + "Prove one missing implication with explicit quantified hypotheses.", + "Find an exact counterexample at the claimed interface boundary." + ], + "acceptance_gate": "Identify the proposition and what would change downstream; do not equate a finite replay with a universal proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read PROOF.md and AUDIT.md in #4100. Select one distinct obligation: CRT total repair, native/free-algebra lifting, precision/conditioning, or complete fixed-tape cost. This is an author-submitted proof, not an accepted unconditional theorem.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Check live handoffs; name one proposition, its caller, quantified domain and dependency closure. Independently prove the implication or exhibit a precise gap/counterexample. Prioritize CRT.md total repair or COMPLEX.md free-algebra lift only if unclaimed. Stop at the chosen obligation; do not substitute finite samples or root arithmetic for an all-size proof, or launch the complete package by default.", + "bottleneck_link": "Finite supplier improvements are useful only under the retained transfer obligations.", + "allowed_variations": [ + "One CRT repair, native lift, precision/conditioning or tape-cost proposition, with its exact caller." + ], + "scope_change_triggers": [ + "Replacing a quantified obligation with another finite smoke test.", + "Treating archive intake, an author PASS receipt or a finite composed fixture as discharge of the universal hypotheses." + ], + "overlap_terms": [ + "uniform transfer", + "all-size", + "precision", + "4100", + "unconditional-batched-crt" + ], + "existing_checks": [ + { + "scope": "PR #4100: proposed unconditional construction and finite checks, without independent acceptance.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Independent proof audit of one caller-bound all-size implication; all other premises remain explicit.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "census-pruning-audit", + "question": "Does the reported word-census parity-pruning error invalidate a specific exclusion we still rely on, and what bounded repair is justified?", + "starting_points": [ + "research/f7-weight-parity-census-correction/README.md", + "docs/research/research-family-status.md" + ], + "methods": [ + "Independently reconstruct the tiny counterexample and trace one affected exclusion to its exact pruning code.", + "Compare corrected and unpruned enumeration on a small exhaustive domain, then audit the changed pruning implication." + ], + "acceptance_gate": "Pin the old and proposed corrected engines, distinguish a disproved pruning rule from a disproved final bound, and state exactly which downstream exclusions need revalidation. #2973 is an author-checked source archive; neither its new f(7) claim nor all old conclusions are automatically accepted or rejected.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2973 error description and MATH.md; manually reconstruct the prefix states of 01021323 before running any large census.", + "scope": "Source-binding orientation only; no full enumeration or mathematical validation." + }, + "first_experiment": "Reconstruct the eight prefix states of 01021323 and compare bit-0 versus Hamming-weight parity budgets independently. Trace the reported false prune to one pinned predecessor (#2542, #2634 or #2691), then test a small exhaustive domain. Stop after a source-impact handoff or corrected-prune proof; a full seven-label replay needs a separate resource budget and a named research decision it can change.", + "bottleneck_link": "An unsound exclusion can wrongly close a mechanism; correcting its dependency boundary is more useful than extending the same census.", + "allowed_variations": [ + "One predecessor pruning rule, one independently exhaustive small domain, or one downstream dependency audit." + ], + "scope_change_triggers": [ + "Launching a larger census before validating the prune and explaining which active decision it changes.", + "Treating a small-domain counterexample to the old rule as a counterexample to every reported seven-label bound." + ], + "overlap_terms": [ + "2973", + "2542", + "2634", + "2691", + "weight parity", + "bit-0", + "01021323", + "census pruning" + ] + } + ] + }, + { + "id": "independent-verification", + "weight": 10, + "tasks": [ + { + "id": "independent-moment", + "question": "Does a new paid-profile or mixture-ceiling claim have independent source-bound coverage of its actual changed ledger?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/staged-fourth-mixture-ceiling/README.md", + "research/r437-two-window-carrier/README.md" + ], + "methods": [ + "Independently reconstruct one changed paid ledger or pooled dual with exact source and model binding.", + "Check a genuinely uncovered moment implication with a different enclosure method and semantic controls." + ], + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Choose one uncovered implication in #4088 literal mixed fill, #4091 pooled dual/model binding or #4067 changed frame/host bill. #4091 pins an earlier #4088 head: validate word, capacity and stock equivalence before applying that ceiling to the later fill.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Independently reconstruct one changed ledger or pooled certificate with a positive case and a semantic failure control. Compare exact sources and name what existing checks miss. Keep this separate from supplier-boundary-audit (ordinary/outer dispatch) and uniform-transfer-audit (all-size proof). Stop after the chosen implication; more digits of an unchanged root are not additional mechanism coverage.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification.", + "Calling an aggregate histogram or source archive an independently accepted physical supplier." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure", + "2979", + "rank7 joint endframes", + "paired extraction", + "joint lowering", + "4088", + "4091", + "4067", + "staged544-mixed-fourth-entry", + "staged-fourth-mixture-ceiling", + "r437-two-window-carrier" + ], + "existing_checks": [ + { + "scope": "PR #4088: mixed local/owner/phase ledger and moment reported.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Independent binding of changed construction to paid histogram, distinct from full admission.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4091: sharp pooled ceiling proposed for fixed THREE/FOUR words and inventory.", + "evidence": "research/staged-fourth-mixture-ceiling/README.md", + "remaining": "Validate dual, exhaustive pattern scope and exact source equivalence before applying to newer fills.", + "status": "author-checked", + "source_commit": "a29bdd8f56cd18b805917775cdec09ff935eddc4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4067: paid (2,2) to (1,3) exchange and fixed OQ4 host reported.", + "evidence": "research/r437-two-window-carrier/README.md", + "remaining": "Independent full cost delta; remaining caller/precision/stock obligations are separate.", + "status": "author-checked", + "source_commit": "a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "formal-interface-lemma", + "question": "Can one uncovered interface implication be formalized with exact caller and certificate bindings?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/gate-operand-parity-lean/README.md", + "research/staged544-certified-endpoint/README.md", + "research/unconditional-batched-crt/README.md" + ], + "methods": [ + "Formalize a missing boundary lemma identified by the selected review.", + "Audit a formal theorem-to-certificate binding independently." + ], + "acceptance_gate": "State the exact formalized proposition and remaining assumptions; avoid duplicate arithmetic formalizations already present.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Inventory the gate-operand parity lemma (#3807) and certified endpoint arithmetic (#3857). Neither is a full multiplication proof. For #4100, audit the compact-switch statement and its hypotheses before formalizing it.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Write one missing statement with quantified hypotheses, actual caller and existing coverage. A compact-switch lemma is a candidate only after its mathematical contract is reviewed. Establish a bounded proof plan before a separately budgeted proof-assistant build; do not rerun large Lean jobs as orientation.", + "bottleneck_link": "A missing interface proof can reduce the conditional gap even if it does not change kappa.", + "allowed_variations": [ + "Narrow to one formal lemma or one theorem-to-certificate binding." + ], + "scope_change_triggers": [ + "Formalizing already-covered arithmetic and claiming the full multiplication theorem." + ], + "overlap_terms": [ + "hyperplane end", + "formal interface", + "Lean binding", + "3807", + "3857", + "4100", + "gate-operand-parity-lean", + "staged544-certified-endpoint", + "unconditional-batched-crt" + ], + "existing_checks": [ + { + "scope": "PR #3807: scoped gate-operand parity formalization.", + "evidence": "research/gate-operand-parity-lean/README.md", + "remaining": "Exact theorem-to-caller binding and genuinely uncovered interface lemmas.", + "status": "author-checked", + "source_commit": "4c3530f42a6abcc48e7a6bcffd6c901911dc8269", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3857: certified real-power moment/endpoint arithmetic.", + "evidence": "research/staged544-certified-endpoint/README.md", + "remaining": "Uniform algorithmic implications, not another endpoint digit.", + "status": "author-checked", + "source_commit": "ef4315b8caa605e47a2515004845eb2d2ed71a86", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4100: compact-switch formalization proposed as future validation.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Audit the statement and assumptions before a formal proof campaign.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + }, + { + "id": "verifier-engineering", + "weight": 8, + "tasks": [ + { + "id": "replay-runtime", + "question": "Can one measured replay bottleneck be sped up without dropping coverage?", + "starting_points": [ + "scripts/run_isolated_tests.py", + "scripts/verify_replay_coverage.py", + "certificates/selected-result.json" + ], + "methods": [ + "Profile one isolated replay and optimize the measured bottleneck.", + "Design source-bound reuse with explicit dependency invalidation and negative controls." + ], + "acceptance_gate": "Report before/after wall time on the same fixture, retained checks and invalidation behavior.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the selected reproduction command and choose a single replay stage for profiling.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Measure one unchanged fixture, preserve check coverage, and test one optimization with invalidation controls.", + "bottleneck_link": "Faster trustworthy replays increase review throughput and let mechanism candidates be checked sooner.", + "allowed_variations": [ + "Profile one stage or design one source-bound cache boundary." + ], + "scope_change_triggers": [ + "Skipping coverage or comparing different fixtures to claim speedup." + ], + "overlap_terms": [ + "replay runtime", + "cache invalidation", + "isolated tests" + ] + }, + { + "id": "portable-replay", + "question": "Can one reproducible environment or artifact-comparison failure be repaired?", + "starting_points": [ + "research/gzip-container-reproducibility/README.md", + "docs/ci-verification.md" + ], + "methods": [ + "Reproduce one portability failure and add a minimal cross-environment fix.", + "Audit one canonical-payload comparison for omitted proof-relevant fields." + ], + "acceptance_gate": "Preserve immutable source hashes and proof-relevant content; a different compressed byte stream alone is not a mathematical mismatch.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the gzip-container reproducibility examples and distinguish frozen source bytes from regenerated payloads.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Reproduce one specific mismatch or audit one canonical comparison for omitted proof-relevant fields.", + "bottleneck_link": "Portable exact checks prevent environment failures from blocking valid contributions.", + "allowed_variations": [ + "One interpreter/version mismatch or one payload field comparison." + ], + "scope_change_triggers": [ + "Removing immutable-source pins because generated compressed bytes differ." + ], + "overlap_terms": [ + "gzip container", + "reproducibility", + "canonical payload" + ] + } + ] + }, + { + "id": "consolidation", + "weight": 5, + "tasks": [ + { + "id": "overlap-receipt", + "question": "What exact content and credit of a small named PR set has already been retained?", + "starting_points": [ + "docs/research/pr-ledger.md", + "CONTRIBUTORS.md" + ], + "methods": [ + "Compare exact heads and retained artifacts to write a source-bound disposition receipt.", + "Audit an existing receipt for missing content or predecessor attribution." + ], + "acceptance_gate": "Separate complete integration, partial retention and changed heads; make no autonomous closures.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read one small PR set in the ledger and identify exact reviewed heads and unresolved content.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Compare that set to retained artifacts; produce a complete or explicitly partial disposition receipt.", + "bottleneck_link": "Reliable overlap evidence preserves credit and prevents repeated review of already-retained material.", + "allowed_variations": [ + "One small related PR family or one existing integration receipt." + ], + "scope_change_triggers": [ + "Treating matching titles or one shared blob as proof of full incorporation." + ], + "overlap_terms": [ + "overlap receipt", + "partial integration", + "attribution" + ] + }, + { + "id": "scope-navigation", + "question": "Can one misleading historical-current claim or missing research cross-reference be corrected?", + "starting_points": [ + "docs/research/current-status.md", + "docs/research/pr-ledger.md", + "certificates/selected-result.json" + ], + "methods": [ + "Trace one confusing path from onboarding to its authoritative source.", + "Index one tightly related family of obstructions with explicit excluded and open hypotheses." + ], + "acceptance_gate": "Produce evidence-backed navigation, preserve historical records and avoid a duplicate global survey.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Follow one link from the selected record to its review and compare a potentially stale historical claim.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Repair one confusing path or produce a scoped map of one related obstruction family.", + "bottleneck_link": "Clear navigation lowers entry cost for central research; a global survey without a concrete fix is not required.", + "allowed_variations": [ + "One historical-current ambiguity or one bounded family index." + ], + "scope_change_triggers": [ + "Rewriting frozen scientific packages just to change their historical wording." + ], + "overlap_terms": [ + "current status", + "historical checkpoint", + "scope navigation" + ] + } + ] + }, + { + "id": "incumbent-optimization", + "weight": 2, + "tasks": [ + { + "id": "selected-packing", + "question": "Does a named residual packing task have meaningful uncovered headroom after its exact fixed-inventory ceiling?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged-fourth-mixture-ceiling/README.md", + "research/staged544-mixed-fourth-entry/README.md" + ], + "methods": [ + "Check a fixed-inventory ceiling and source equivalence before any explicitly bounded residual search.", + "Price a genuinely changed word/interface under a newly applicable model." + ], + "acceptance_gate": "Check live overlap and exact model/source binding first. Distinguish a chronological construction from a pooled optimum. State the applicable fixed-inventory ceiling and remaining headroom; changed words or interfaces require a new fully charged model. Do not launch a residual search without an explicit scope and time cap.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4091 fixed-word pooled ceiling and #4088 later 1090-call literal fill. Bind the unchanged local invoices/capacities/stock before transferring the ceiling; its earlier 1080-call residual-bin recipe is historical.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Default to a bounded headroom/source-equivalence check. Only start residual search with an explicit unclaimed domain, time cap and reason the tiny remaining gain matters. Otherwise hand off or select a changed-word mechanism. A changed word or interface needs a fresh cost model, not the old ceiling. Stop at the fixed-inventory cap; do not extend by new random seeds.", + "bottleneck_link": "An actual paid-profile gain can improve the frontier up to the other supplier cap.", + "allowed_variations": [ + "One bounded residual packing instance or exact relaxation.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Rerunning an existing search with only a different seed as a separate mathematical contribution." + ], + "overlap_terms": [ + "T16", + "owner exchange", + "packing", + "4091", + "4088", + "staged-fourth-mixture-ceiling", + "staged544-mixed-fourth-entry" + ], + "existing_checks": [ + { + "scope": "PR #4091: pooled optimum at one-third staging for pinned fixed words; not a chronological fill.", + "evidence": "research/staged-fourth-mixture-ceiling/README.md", + "remaining": "Independent scope/source check; any residual optimization is explicitly bounded and optional.", + "status": "author-checked", + "source_commit": "a29bdd8f56cd18b805917775cdec09ff935eddc4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4088: later 1090-call literal fill improves the earlier 1080-call witness.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Complete admission remains separate; old residual-bin instructions must not be copied blindly.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + { + "id": "scalar-to-moment", + "question": "Can a changed frame itinerary remove a paid transition beyond the already covered scalar A2 contractions?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-a2-graph-rewrite/README.md", + "research/staged544-separated-a2/README.md", + "research/staged544-a2-composition-audit/README.md", + "research/staged544-a1858-contraction-audit/README.md" + ], + "methods": [ + "Derive the changed legal frame itinerary and exact child histogram.", + "Prove a scoped obstruction showing why that scalar gain cannot change the paid contract." + ], + "acceptance_gate": "An unchanged histogram is not a kappa gain; record any separate runtime or proof benefit explicitly.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the A2 and separated-A2 constructions and their composition/contraction audits. Scalar contractions can preserve the complete recursive histogram; fewer ADDs alone do not justify further scans.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Identify an actual paid transition to remove and construct a legal replacement frame itinerary, charging restoration, source windows and changed helpers. Compare complete before/after histograms. Stop if only scalar count changes; report that benefit honestly, without expanding the same scalar-only census.", + "bottleneck_link": "A legal change to the histogram, not addition count alone, is the bridge to an exponent gain.", + "allowed_variations": [ + "One existing scalar simplification and one proposed frame-path change." + ], + "scope_change_triggers": [ + "Submitting only another scalar count as completion of a paid-profile task." + ], + "overlap_terms": [ + "scalar simplification", + "paid profile", + "R439", + "3998", + "4019", + "4112", + "4152", + "staged544-a2-graph-rewrite", + "staged544-separated-a2", + "staged544-a2-composition-audit", + "staged544-a1858-contraction-audit" + ], + "existing_checks": [ + { + "scope": "PR #3998: consecutive A2 scalar contraction", + "evidence": "research/staged544-a2-graph-rewrite/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "389268a6b5e0373a3125d5c6fcd6995f4ea324f5", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4019: separated A2 sites with unchanged recursive histogram", + "evidence": "research/staged544-separated-a2/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "f408e09df300b575235f7f77f81948071397e16d", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4112: composition audit", + "evidence": "research/staged544-a2-composition-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "205b7380656ba4b6316a8a493b1a3c679b8f7a0e", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4152: A1858 contraction audit", + "evidence": "research/staged544-a1858-contraction-audit/README.md", + "remaining": "A genuinely changed paid itinerary or a distinct independent audit; no default scalar-only expansion.", + "status": "author-checked", + "source_commit": "caaa14cde5962adc372fdca71f63d0f29e73c8b2", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + } + ] + } + ], + "selection_context": { + "refreshed_on": "2026-10-22", + "kappa": "60403/20000000", + "source_pr": 4470, + "record": "certificates/selected-result.json", + "review": "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md", + "orientation_command": "python3 -B scripts/research_selected_baseline.py", + "scope": "Metadata refresh only. Revision-7 weights and cards remain historical suggestions pending separate strategic reassessment; check current contracts and overlap before adopting them." + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md new file mode 100644 index 0000000000..69c337a770 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md @@ -0,0 +1,174 @@ +# Source-bound free-operator tensor lift + +This audit affirms one specific premise in PR4100's `COMPLEX.md`, lines 62–89: +the retained four PR4088 words cancel in a free group algebra before any +particular native operator is substituted. The premise is true for the exact +source exports checked here. This is a local algebra and source-binding result; +it supplies no new paid profile, numerical allowance, encoded implementation, +physical hosting theorem, outer release or selected-frontier improvement. + +## Exact source and contract + +The audited text is `research/unconditional-batched-crt/COMPLEX.md`, Git blob +`c3be56fbfdb4fb29c1ace88cbcdfa7475fb6e343`, SHA256 +`853e1295850862752e4f854aa9e8b28f9ca6eaa9306e2af110b7b77526d1b5e1`. +It is identical at retained PR4100 head +`337d04939571a637aeab54a0f58f54fde811663a` and canonical main +`12fa8c5c844be21bfefb38a19503fbd867a11244`. + +Its stated source is PR4088 head +`72d7efc181edb21806a878f174847c96dd410ab0`, package +`research/staged544-mixed-fourth-entry`. This audit exports the exact four +`inputs/{THREE,FOUR}-{base,extra}.json.gz` files, retained `vendor/audit_core.py`, +`vendor/audit_verify.py`, source `verify.py`, `PROOF.md` and `NOTICE.md`. +`SOURCE-PINS.json` records every original commit, path, length, Git blob and +SHA256. Every file is authenticated before the retained checker is executed. +No native runner, owner fill, solver, NumPy or historical outer engine is run. + +Each word has 632 live registers, 91 arbitrary dirty private registers, +72 abstract unary generators and 36 listed initial correction terms. The +forward common-label contract on the 723-register direct sum is + +`(x,y,h,b) -> (x,y+x,h,b)`. + +The dual contract is `(x,y,h,b) -> (x-y,y,h,b)`. In particular every private +buffer is an independent input, returns identically, and has no leakage into +live outputs. Neither contract assumes zero private inputs or a product state. + +## What the retained checker actually computes + +In `audit_core.py`, lines 297–391, a register value is a sparse dictionary + +`(initial_input, reduced_signed_operator_word) -> Fraction`. + +`program` includes every declared initial correction, precondition, +compensation, A and cut gate, chronologically inserted B warp, B gate, +restoration and cleanup gate. `_left` and `_right` cancel only adjacent inverse +letters; `_axpy` adds exact rational coefficients and removes exact zeros. +There is no commutation, finite-order relation, numerical operator matrix, +Fourier-character evaluation or univariate minimal-polynomial reduction. + +`audit_verify.semantics` runs all 723 independent symbols forward and dual, +compares an independent direction of pullback, and checks both cleanup-boundary +contracts. Every emitted provider passes. Each endpoint consists of exactly +835 nonzero terms: the 723 diagonal terms and 112 intended shear terms. Every +surviving operator word is empty. + +That is a universal algebraic identity, rather than an identity inferred from +one operator realization. The source's use of the word “symbolic” is justified +by these actual data structures, reductions and endpoint predicates. + +## All positive tensor multiplicities + +Let `F` be the free group on symbols `g_1,...,g_72`, and let `A=Q[F]` be its +rational group algebra. The finite word program is a product of elementary +723-by-723 matrices over `A`. A correction `c*g_word*x_source` is an off-diagonal +entry of one such elementary matrix. Scalar ADD and SCALE entries belong to +`Q*1_A`. + +Let `K` be any characteristic-zero field (in particular `Q[i]`) and let `V` +be any finite-dimensional vector space over `K`. Choose arbitrary invertible `K`-linear operators +`G_k` on `V`. All tensor products below are over `K`. For every positive integer `f`, define + +`rho_f(g_k) = G_k tensor ... tensor G_k` (f factors). + +The assignment of free generators extends uniquely to a group homomorphism +`F -> GL(V tensor f)`: inverses map to tensor products of inverses, and + +`(G H) tensor f = (G tensor f)(H tensor f)`. + +Extend this map rationally from `A` into the `K`-linear endomorphisms of +`V tensor f`. This extension is a unital rational algebra +homomorphism because multiplication of finite formal sums distributes and +because the group map preserves products. In particular + +`rho_f(sum_w c_w*w) = sum_w c_w*rho_f(w)`. + +Apply this homomorphism entrywise to the certified elementary-matrix product. +It preserves each elementary action, the order of events and the product. +Since the certified endpoint has only rational multiples of empty words, its +image is exactly the same register-level shear with each scalar multiplied +by the identity of `V tensor f`. This proves the endpoint for every positive +`f` and every input in the 723-register direct sum of `V tensor f`, including +arbitrarily correlated live/private data. + +The number of register roles remains 723. We are changing the internal space +of each role; we are not taking a tensor power of the 723-by-723 register matrix. +The latter operation would create a different program with 723^f roles. + +The dual pass treats `d_k=G_k^(-T)` as separate free generators. The same +argument applies, and `(G_k^(-T)) tensor f = (G_k tensor f)^(-T)` in the product +basis. Native frame labels can be replaced by their tensor powers if the +separately supplied directed native recipe identities are exact. This audit +does not reprove or rerun those native recipe identities. + +## The distinction that must be retained + +This algebra homomorphism is linear on formal sums. Therefore + +`rho_f(g-I) = G tensor f - I`, + +not `(G-I) tensor f`. Likewise `rho_f(c*g)=c*(G tensor f)`, not +`(c*G) tensor f = c^f*(G tensor f)`. A role SCALE or bridge coefficient must +remain scalar, while a constant phase already inside a unary generator is +part of that generator and therefore occurs in every tensor factor. + +For an exact small counterexample, take `G=[[1,1],[0,1]]` and `f=2`. +Then `(G tensor G-I)` sends `e_2 tensor e_2` to +`e_1 tensor e_1 + e_1 tensor e_2 + e_2 tensor e_1`; whereas +`(G-I) tensor (G-I)` sends it only to `e_1 tensor e_1`. Their difference is +nonzero over `Q` (and over the supplemental field F101). +The code checks a distinct noncommuting 72-generator family as well, and rejects +both the whole-difference and whole-scalar tensorization rules. + +## Independent evidence and its scope + +`independent.py` imports or executes no retained implementation. It reconstructs +the literal sequence from the four exported words and, for each of the 723 +outputs separately, pulls the output functional backward through that sequence +over exact `Q[F_72]`. The reverse traversal appends words on the right; a stack +reduces only adjacent inverse letters. All four forward and all four dual +contracts match exactly: 5784 output-functional checks, 6680 endpoint terms and +zero surviving nonempty words. Its controls preserve a nontrivial commutator, +a fourth power and the two distinct terms of `g-I`. + +This implementation is independent of the source engine; the format and +endpoint contract were read from the same credited source. Agreement is +supplemental to inspection of the finite exact computations, not a substitute +for proving what the reductions mean. + +`verify.py` also reconstructs and executes the literal events directly on dense +vectors over F101, with 72 distinct invertible 2-by-2 matrices. The first two do +not commute. It substitutes their tensor powers at `f=1,2,3` in both orientations +of all four providers, yielding 24 direct fixtures; all 723 registers are given +deterministic dirty values. These finite-field experiments are controls, not +the proof for every rational input or unbounded f. Erasing the actual listed +correction generators fails at 20 registers; tensorizing the actual role SCALE +coefficients fails at the reported registers. Exact inverse and product +compatibility controls also pass. + +## Remaining obligations and credit + +This positive result discharges only the source's formal free-operator premise +and its algebraic implication to per-role tensor multiplicity. The physical +lowering of native monomials, directed native recipes, placement, common cover, +hosted slices, analytic bounds, coefficient precision, fixed-tape inventory, +recovery and complete ordinary/outer release are outside this audit. The source +construction makes additional written claims about these interfaces; this audit +neither verifies nor refutes those claims. +No paid-rank saving, all-size multiplication theorem, independent human +acceptance or new kappa is claimed. + +The tensor-lift proposal and current construction are credited to Cinna Davis, +the PR4100 author; this audit does not claim to invent the representation argument. +Cinna Davis's PR4088 supplies the four literal providers and source integration. +Sagar Thakrar's PR3687 exact free-operator engine and roger-sato's PR3693 +all-dirty/reverse audit are reused explicitly. Retained lineage includes Rohan +Arun/PR4076, Dugongue/David Ganz/PR4085 and PR3945, Nick Petalas, Ross +Richardson/PR3605, dataisfire/PR3734, ChaloupeMusic/Erwan Secousses, Marius-Paul +Dumitrean, zxv and the earlier geometry/native/compiler/owner contributors. +The byte-identical source notice and source-file notices remain in `source/`. + +The formal and F101 implementations were separately written by one Codex agent. A second Codex agent independently reviewed them and supplied the exact rational signed-permutation oracle in `independent_real.py`; see `INDEPENDENT-REVIEW.md`. None is a human or formal-kernel acceptance. + +`mutation_controls.py` also produces exact actual-program counterexamples in `MUTATIONS.json`: erasing the first correction generator yields `(I-G59)x273` in output115; dropping the first nonidentity scale yields `-3*x119` in output119. Both baseline output functionals pass first. Every actual correction word has length one, so a multi-letter correction reorder is inapplicable rather than counted as an executed control. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py new file mode 100644 index 0000000000..4b24a50961 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/higher-moment-strictification/verify.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Higher-moment strictification and a polynomial-logarithm compiler bound. + +New arithmetic is independent of predecessor interval code. The unchanged +invoice replay and two outer ledgers are credited, byte-pinned oracles. +zxv with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +from collections import Counter +from contextlib import redirect_stdout +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256, sha1 +import io +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +GRID = 2**192 +C = Q('0.00268648') +KAPPA = Q('0.00268647') +T = {5:420, 6:270, 7:840, 8:1395, 9:3195, + 25:448, 41:448, 57:448, 121:224} +P = {1:37305, 2:10695, 3:3360, 4:1530, 5:300, + 8:1464, 16:448, 32:448, 48:448} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def down(x): + return Q((x*GRID).__floor__(), GRID) + + +def up(x): + return Q(-((-x*GRID).__floor__()), GRID) + + +def rounded(lo, hi): + return down(lo), up(hi) + + +def mul(a, b): + products = [x*y for x in a for y in b] + return rounded(min(products), max(products)) + + +def scale(a, x): + return mul(a, (x, x)) + + +def divide(a, b): + need(b[0] > 0, 'positive interval denominator') + return mul(a, rounded(1/b[1], 1/b[0])) + + +@lru_cache(None) +def log_bounds(n): + """Exact atanh series, binary reduction; round only the final interval.""" + need(isinstance(n, int) and n >= 1, 'positive integer logarithm') + + def series(x): + u = (x-1)/(x+1) + term, total = u, Q(0) + for j in range(80): + total += 2*term/(2*j+1) + term *= u*u + tail = 2*term/(161*(1-u*u)) + return total, total+tail + + k = n.bit_length()-1 + a, b = series(Q(2)) + c, d = series(Q(n, 2**k)) + return rounded(k*a+c, k*b+d) + + +def exp_point(x): + """Outward fixed-point Taylor enclosure, with binary scaling/squaring.""" + need(abs(x) < 16, 'bounded exponential argument') + if x < 0: + a, b = exp_point(-x) + return rounded(1/b, 1/a) + divisions = 0 + while x > Q(1, 2): + x /= 2 + divisions += 1 + term = total = (Q(1), Q(1)) + for j in range(1, 65): + term = scale(term, x/j) + total = rounded(total[0]+term[0], total[1]+term[1]) + following = scale(term, x/65) + # Every remaining ratio is <= 1/132. Twice the next term is safe. + result = rounded(total[0], total[1]+2*following[1]) + for _ in range(divisions): + result = mul(result, result) + return result + + +def exp_interval(a): + return exp_point(a[0])[0], exp_point(a[1])[1] + + +@lru_cache(None) +def power(n, exponent): + return exp_interval(scale(log_bounds(n), exponent)) + + +def moment(histogram, exponent): + low = high = Q(0) + for n, count in histogram.items(): + a, b = power(n, exponent) + low += count*a + high += count*b + return rounded(low, high) + + +def display(a): + unit = 10**30 + + def fixed(n): + sign = '-' if n < 0 else '' + s = str(abs(n)).rjust(31, '0') + return sign+s[:-30]+'.'+s[-30:] + + return {'lower': fixed((a[0]*unit).__floor__()), + 'upper': fixed(-((-a[1]*unit).__floor__()))} + + +def encoded(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encoded(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encoded(v) for v in x] + return x + + +def source_environment(path): + env = {'__file__': str(path), '__name__': 'pinned_source_oracle'} + exec(compile(path.read_bytes(), str(path), 'exec'), env) + return env + + +def authenticate(): + result = {} + for row in json.loads((HERE/'VENDOR.json').read_text())['files']: + path = HERE/'vendor'/Path(row['path']).relative_to( + 'research/higher-moment-strictification/vendor') + digest = sha256(path.read_bytes()).hexdigest() + need(digest == row['sha256'], 'changed source: '+row['path']) + raw = path.read_bytes() + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + == row['git_blob'], 'changed Git source blob') + result[row['path']] = digest + return result + + +def invoice_oracle(): + """Run #4426 unchanged, rebinding only its two file-location globals.""" + path = HERE/'vendor/invoice-review/verify.py' + env = source_environment(path) + env.update(ROOT=path.parent, PHASES='DATA-PHASES.json') + output = io.StringIO() + with redirect_stdout(output): + env['main']() + result = json.loads(output.getvalue()) + need(result['status'] == 'PASS_PR4416_INVOICE_REBUILD', 'source invoice oracle') + need({int(k): v for k, v in result['targets'].items()} == T + and {int(k): v for k, v in result['paid'].items()} == P, + 'exact literal-word invoice') + return result + + +def tail_certificate(v=150, cutoff=10, floor=15, u=Q(3, 10)): + t = 1-C + need(v >= 1 and 1 < cutoff < floor < 121, 'strict finite ranks') + need(t+u >= 1, 'tail moment exponent at least one') + target, paid = moment(T, t), moment(P, t) + alpha = divide(paid, target) + gamma = divide(moment(P, t+u), mul(power(cutoff, u), target)) + delta = divide((Q(sum(T.values())*floor),)*2, + mul(power(cutoff, C), target)) + limits = (1-Q(1, 10**8), Q(181, 200), Q(439, 500)) + for name, bounds, limit in zip(('alpha', 'gamma', 'delta'), + (alpha, gamma, delta), limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, name+' certified limit') + a, g, d = limits + bound = 1/(1+v*(1-a))+2*g**v+2*d**v + need(bound < 1, 'complete charged normalized moment') + old_gamma = divide((Q(sum(k*n for k, n in P.items())),)*2, + mul(power(cutoff, C), target)) + old_lower = alpha[0]**v+2*old_gamma[0]**v + need(old_lower > 1, 'rank-one-tail estimate fails at this tensor power') + return {'tensor_power': v, 'cutoff_base': cutoff, 'floor_base': floor, + 'paid_moment_exponent': t+u, 'tail_offset_u': u, + 'tested_saving': C, 'alpha': display(alpha), 'gamma': display(gamma), + 'delta': display(delta), 'rational_upper_limits': limits, + 'normalized_paid_upper': bound, 'strict_moment_gap': display((1-bound,)*2), + 'old_rank_one_gamma': display(old_gamma), + 'old_rank_one_bound_lower': display((old_lower, old_lower)), + 'ambient': '121^'+str(v), 'minimum_target': str(floor)+'^'+str(v), + 'maximum_paid': str(cutoff)+'^'+str(v), + 'productive_fields_before_uniform_compiler': '7688^'+str(v), + 'rank_one_surplus': '131723^'+str(v)+'-131115^'+str(v), + 'materialized_product_or_uniform_word': False} + + +def uniform_rank(v): + t, p, theta = 1-C, 13, Q(6, 7) + gap = (C-KAPPA)/7 + uniform_saving = C-gap + need(10**7 < 15**6, 'theta upper bound') + need(2*(10**v)**7 <= (121**v)**6, 'shifted logarithm inequality') + eta = scale(exp_interval(scale(log_bounds(121), -v*C)), t) + need(eta[0] > theta**p, 'exit contraction below complement capacity') + base = exp_interval(scale(log_bounds(121), v*C)) + need(base[1] < 2**p, 'entire ordinary base range fits') + # Integer grid: gap*H is integral, avoiding enormous rational powers. + step = gap.denominator + need(gap.numerator == 1, 'chosen rational gap grid') + + def passes(j): + H = step*j + return (H+1)**p < 2**j + + lo, hi = 1, 2 + while not passes(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (lo+hi)//2 + if passes(mid): + hi = mid + else: + lo = mid + H = step*hi + need(H > 7*v and passes(hi) and not passes(hi-1), 'final integer comparison') + need(eta[1] < theta**(p-1), 'one smaller logarithmic power fails') + return {'t': t, 'uniform_saving': uniform_saving, 'gap': gap, + 'logarithm_power': p, 'theta_upper': theta, 'eta': display(eta), + 'eta_minus_theta_to_p': display((eta[0]-theta**p, eta[1]-theta**p)), + 'm_to_saving': display(base), 'H': H, 'N': '2^'+str(H), + 'integer_test': {'left_base': H+1, 'left_exponent': p, + 'right_base': 2, 'right_exponent': hi}, + 'grid_step': step, 'previous_grid_point_rejected': True, + 'smaller_logarithmic_power_rejected': True} + + +def power_majorant_comparison(v, uniform_saving): + """Retain #4416's older power proof, changing only the new unit's ranks.""" + t, z, h = 1-C, 1-uniform_saving, Q(1, 7) + z0 = (t+z)/2 + delta = z0-t + B, debt = (4+7*h)*v, 1+7*v*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= 7*v and H0*h*delta >= delta*B+debt, 'power majorant threshold') + need((H0-1)*h*delta < delta*B+debt, 'previous power threshold rejected') + need(H1*(z-z0) > H0*(1-z0) >= (H1-1)*(z-z0), + 'strict power-majorant comparison and previous-rank control') + return {'H0': H0, 'H1': H1, 'N': '2^'+str(H1), 'theta_upper': 1-h, + 'scope': 'Tail transformation alone, retaining the older power majorant.'} + + +def outer_ledger(uniform_saving): + d = (C-KAPPA)/7 + params = {'kappa': KAPPA, 'tested_saving': C, + 'complex_uniform_saving': uniform_saving, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q('0.0027'), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + env = source_environment(HERE/'vendor/outer_endpoint.py') + row = env['ledger'](params) + need(len(row['strict_checks']) == 54 and len(row['functional_checks']) == 3, + 'complete first outer ledger') + need(all(v > 0 for group in ('strict_checks', 'functional_checks') + for v in row[group].values()), 'all outer predicates') + frozen = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['outer'] + need(encoded(row) == frozen, 'unchanged full p7 endpoint ledger') + parsed = ast.parse((HERE/'vendor/check_ledger.py').read_bytes()) + function = next(n for n in parsed.body + if isinstance(n, ast.FunctionDef) and n.name == 'ledger') + constants = [n for n in parsed.body if isinstance(n, ast.Assign) + and any(isinstance(t, ast.Name) and t.id.startswith('KAPPA_') + for t in n.targets)] + eps, beta, q, a = (params[k] for k in ('epsilon', 'beta', 'q', 'a')) + grid = 10**10 + backoff = Q((eps*q*grid).__floor__(), grid)-KAPPA + need(backoff > 0, 'strict derived oracle grid backoff') + oracle = {'Q': Q, 'R0': params['r0'], 'ZETA': Q(1, 10**8), + 'SLACK': d, 'STOP': d, 'FLOOR': grid, 'BACKOFF': backoff, + 'EPS': eps, 'BETA': beta, 'THETA_POWER': Q(2), + 'HALO_POWER': 48, 'CORE_POWER': 128, 'STRASSEN_TAU': Q(45, 16), + 'b': params['b'], 'q': q, 'a': a, 'bit': params['bit_saving'], + 'online': Q('0.001730970419199163702738'), + 'old': Q('0.001730970419199163702738')} + code = ast.fix_missing_locations(ast.Module(body=constants+[function], type_ignores=[])) + exec(compile(code, 'pinned 63-predicate ledger', 'exec'), oracle) + second = oracle['ledger']('higher_moment_smaller_ranks') + need(second['kappa'] == KAPPA and second['margins'] == row['margins'], + 'all nine rows match both ledgers') + need(len(second['strict_checks']) == 63 and + all(v > 0 for v in second['strict_checks'].values()), 'all 63 legacy predicates') + controls = {} + for name, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': C}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + bad = env['ledger'](dict(params, **updates)) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'outer control rejected: '+name) + controls[name] = failed + for name, options in [('old_per_axis_scan', {'old_scan': True}), + ('group_equals_dimension', {'beta_': eps})]: + bad = oracle['ledger']('reject_'+name, **options) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'legacy control rejected: '+name) + controls[name] = failed + return {'ledger': row, 'legacy_63_checks': second['strict_checks'], + 'legacy_grid': grid, 'legacy_backoff': backoff, + 'minimum_margin_minus_kappa': min(row['margins'].values())-KAPPA, + 'rejected_controls': controls} + + +def finite_controls(): + def tensor(histogram): + out = Counter() + for k, n in histogram.items(): + for h, b in histogram.items(): + out[k*h] += n*b + return out + + def split(histogram, cutoff): + out = Counter() + for k, n in histogram.items(): + q, r = divmod(k, cutoff) + out[cutoff] += q*n + if r: + out[r] += n + return +out + + target, paid = tensor({2:1, 5:1}), tensor({1:2, 4:1}) + padded, completion = Counter(), Counter() + for k, n in target.items(): + padded[max(k, 9)] += n + if k < 9: + completion[9-k] += n + final = split(paid+completion, 4) + mass = lambda x: sum(k*n for k, n in x.items()) + need(mass(padded)-mass(final) == 7**2-6**2 == 13, 'exact paid padding mass') + need(min(padded) > max(final), 'exact toy separation') + need(final == Counter({1:5, 4:9}), 'literal toy expanded inventory') + # t=1/2, sigma=3/4, R=100, J=1 refutes a sublinear tail extension. + invalid = power(100, Q(1, 2))[1]+2*power(100, Q(3, 4))[1] + need(invalid < 100, 'sublinear upper-tail moment cannot bound splitting') + return {'toy_targets': padded, 'toy_paid': final, 'rank_one_surplus': 13, + 'sublinear_tail_counterexample': {'R': 100, 'J': 1, 't': '1/2', + 'sigma': '3/4', 'actual_charge': 100, + 'invalid_upper': display((invalid, invalid))}} + + +def verify(): + sources = authenticate() + invoice = invoice_oracle() + tail = tail_certificate() + rank = uniform_rank(tail['tensor_power']) + endpoint = outer_ledger(rank['uniform_saving']) + controls = finite_controls() + rejected = [] + for name, updates, expected in [ + ('too_short_product', {'v': 100}, 'complete charged normalized moment'), + ('sublinear_tail', {'u': C/2}, 'tail moment exponent at least one'), + ('lost_separation', {'floor': 10}, 'strict finite ranks'), + ]: + try: + tail_certificate(**updates) + except ValueError as error: + need(str(error) == expected, 'wrong rejection: '+name) + rejected.append({'mutation': name, 'failed_at': str(error)}) + else: + raise ValueError('accepted mutation: '+name) + old = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['compiler'] + return encoded({'schema': 'higher-moment-native-strictification/1', + 'status': 'PASS_HIGHER_MOMENT_STRICTIFICATION', 'kappa': KAPPA, + 'invoice_oracle': invoice, 'strictification': tail, + 'uniform_rank': rank, 'outer': endpoint, + 'tail_only_power_majorant': power_majorant_comparison( + tail['tensor_power'], rank['uniform_saving']), + 'finite_controls': controls, 'rejected_mutations': rejected, + 'predecessor_H': old['H1'], + 'rank_exponent_reduction_factor': Q(old['H1'], rank['H']), + 'tensor_power_reduction_factor': Q(6240, tail['tensor_power']), + 'source_sha256': sources, + 'verifier_sha256': sha256(Path(__file__).read_bytes()).hexdigest(), + 'scope': 'Conditional charged transformation and finite compiler rank. Native all-column, physical, analytic, precision, storage, fixed-tape and recovery premises remain inherited. No new kappa, selected frontier or practical word.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = verify() + if args.out: + need(not args.out.exists(), 'new output path required') + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + need(json.loads((HERE/'RESULT.json').read_text()) == result, 'changed saved receipt') + print(json.dumps({'status': result['status'], 'tensor_power': result['strictification']['tensor_power'], + 'uniform_rank': result['uniform_rank']['N'], + 'strict_moment_gap': result['strictification']['strict_moment_gap'], + 'kappa': result['kappa']})) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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" + ], + [ + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "1", + "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", + "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", + "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", + "1", + "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", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "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", + "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", + "1", + "-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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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" + ], + [ + "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", + "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" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -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 + ], + [ + -1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 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 + ], + [ + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py new file mode 100644 index 0000000000..1d93e43d1c --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py @@ -0,0 +1,147 @@ +"""Complete p16 price and finite compiler for a changed native profile. + +Adapted from Cinna Davis's PR4470 arithmetic, retaining zxv's paid tensor +completion/logarithmic majorant and Jacob Alan Sussman's mixed-job flow. +Apache-2.0. Substantial OpenAI Codex assistance. Native admission is separate. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import importlib.util +import json +import math +import sys +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] + +def need(ok,why): + if not ok:raise ValueError(why) + +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path) + m=importlib.util.module_from_spec(spec);sys.modules[name]=m;spec.loader.exec_module(m) + return m + +def encode(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)):return [encode(v) for v in x] + return x + +def read(path): + import gzip + b=path.read_bytes();return json.loads(gzip.decompress(b) if path.suffix=='.gz' else b) + +def assemble(local): + H={int(k):v for k,v in local['helpers'].items()};N={int(k):v for k,v in local['paid'].items()} + sys.path.insert(0,str(ROOT/'research/joint-helper-lattice')) + J=load(ROOT/'research/joint-helper-lattice/verify.py','round2_pinned_controller') + sys.path.insert(0,str(ROOT/'research/query-thinned-controllers')) + C=load(ROOT/'research/query-thinned-controllers/controller.py','round2_controller_engine') + word=J.controller16(C) + T,P=Counter(),Counter();full=thin=0 + for e in word['physical_events']: + if e[0]=='LOCAL':full+=1;T.update(H);P.update(N) + elif e[0]=='QUERY_SHEAR':thin+=1;P[1]+=112 + elif e[0]=='IDLE':P[8*len(e[2])]+=224 + for term in word['diagonal']:T[1+8*sum(term[1:])]+=112 + need(full==18 and thin==15 and sum(H.values())==408,'Complete retained p16 call and input inventory') + return H,N,T,P,word + +def run(local,kappa=None): + H,N,T,P,word=assemble(local) + E=load(ROOT/'research/higher-moment-strictification/verify.py','round2_exact_intervals') + other=load(ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py','round2_second_intervals') + def margin(c): + t,p=E.moment(T,1-c),E.moment(P,1-c) + return t[0]-p[1],t[1]-p[0] + old_upper=Q('.0030201659771') + need(margin(old_upper)[0]>0,'Changed complete invoice strictly beats old raw root upper endpoint') + # Binary search on a fixed rational grid; all final signs use exact intervals. + lo,hi=0,100000000 + grid=10**10 + while hi-lo>1: + mid=(lo+hi)//2 + if margin(Q(mid,grid))[0]>0:lo=mid + else:hi=mid + root_low,root_high=Q(lo,grid),Q(hi,grid) + need(margin(root_low)[0]>0 and margin(root_high)[1]<0,'Strict changed-profile rational root enclosure') + if kappa is None:kappa=Q((root_low*10**8).__floor__()-3,10**8) + tested=kappa+Q(1,10**8) + need(Q('.003020165')ph and max(tl,target[0])<=min(th,target[1]) and max(pl,paid[0])<=min(ph,paid[1]),'Two independently implemented rational moment engines agree') + alpha=E.divide(paid,target) + gamma=E.divide(E.moment(P,t+u),E.mul(E.power(c,u),target)) + delta=E.divide((Q(sum(T.values())*b),)*2,E.mul(E.power(c,tested),target)) + alpha_gap=Q(1,10**9);g=d=Q(97,100) + need(alpha[1]<1-alpha_gap and gamma[1]theta**power,'Shifted exits and complement capacity') + need(E.power(145,v*tested)[1]<2**power,'Compiler initial range') + gap=(tested-kappa)/7;need(gap.numerator==1,'Explicit finite integer grid') + step=gap.denominator + def wins(j):return (step*j+1)**power<2**j + left,right=1,2 + while not wins(right):left,right=right,2*right + while right-left>1: + mid=(left+right)//2 + if wins(mid):right=mid + else:left=mid + height=step*right + need(height>8*v and wins(right) and not wins(right-1),'Strict finite uniform-rank integer bound') + local_scalar=max(x['real_scalar_allowance'] for x in local['native'].values()) + routes=(sum(N.values())+2*408+688)*1000 + need(local_scalar+routes<10**7,'Complete scalar and fixed monomial routing bound') + scalar_upper=18*10**7+15*1792+32*112*(len(word['physical_events'])+sum(len(word['boundaries'][k+'_program']) for k in ('left','right'))) + need(scalar_upper<10**9,'Raw controller scalar bound') + bit=read(ROOT/'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom=Q(bit['atom']);ordinary=(1-atom)*Q(bit['after_cover'])+atom*Q('.0000384599');admitted=Q(bit['admitted']) + need(atom==Q('.004') and atom>ordinary>admitted>tested and atom<1-ordinary,'Source ordinary BIT admission and stock') + L=load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py','round2_outer_ledger') + params={'kappa':kappa,'tested_saving':tested,'complex_uniform_saving':kappa+6*gap, + 'b':kappa+5*gap,'a':kappa+4*gap,'q':kappa+3*gap,'bit_saving':admitted, + 'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} + outer=L.ledger(params);outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) + need(len(outer['strict_checks'])==54 and len(outer['functional_checks'])==4,'Whole outer predicate inventory') + need(all(x>0 for key in ('strict_checks','functional_checks') for x in outer[key].values()),'All outer inequalities strictly positive') + controls={} + for name,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('unfunded_endpoint',{'kappa':tested}),('closed_epsilon',{'epsilon':Q(1)})]: + bad=L.ledger(dict(params,**patch));failed=[k for k,x in bad['strict_checks'].items() if x<=0] + need(failed,'Reject unsupported outer patch '+name);controls[name]=failed + return encode({'status':'PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE','kappa':kappa, + 'gain_over_PR4535':kappa-Q('.003020165'),'raw_root_interval':[root_low,root_high], + 'margin_at_old_root_upper':margin(old_upper),'local_helpers':H,'local_paid':N,'targets':T,'paid':P, + 'productive_fields':sum(T.values()),'paid_calls':sum(P.values()),'rank_mass_surplus':sum(r*n for r,n in T.items())-sum(r*n for r,n in P.items()), + 'strictification':{'tested':tested,'power':v,'cutoff':c,'floor':b,'tail_offset':u,'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta),'normalized_paid_upper':normalized}, + 'compiler':{'theta':theta,'logarithm_power':power,'eta':E.display(eta),'gap':gap,'uniform_saving':params['complex_uniform_saving'],'H':height,'N':'2^'+str(height),'integer_test_exponent':right,'word_materialized':False}, + 'nonrecursive':{'local_scalar':local_scalar,'local_routes':routes,'raw_scalar_upper':scalar_upper}, + 'ordinary_BIT':bit,'outer':outer,'negative_controls':controls, + 'scope':'Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.'}) + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--native',type=Path,required=True);ap.add_argument('--kappa');ap.add_argument('--out',type=Path,default=HERE/'ARITHMETIC.json');args=ap.parse_args() + result=run(read(args.native),Q(args.kappa) if args.kappa else None) + result['native_receipt_sha256']=sha256(args.native.read_bytes()).hexdigest() + # Pin all loaded project source modules and the non-module controller/stock + # records read by the inherited engines. Standard-library files are outside + # the repository and are recorded instead by the replay's Python version. + paths={Path(__file__).resolve(),ROOT/'research/joint-helper-lattice/CONTROLLER.json', + ROOT/'research/query-thinned-controllers/RESULT.json'} + for module in tuple(sys.modules.values()): + name=getattr(module,'__file__',None) + if name: + path=Path(name).resolve() + if path.is_relative_to(ROOT) and path.is_file():paths.add(path) + result['source_sha256']={p.relative_to(ROOT).as_posix():sha256(p.read_bytes()).hexdigest() for p in sorted(paths)} + args.out.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({k:result[k] for k in ('status','kappa','gain_over_PR4535','raw_root_interval','paid_calls','compiler')},indent=2)) diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/architecture/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py new file mode 100644 index 0000000000..7f84894efc --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +"""Native embedded query logger and common-frame H conjugation contacts. + +Apache-2.0. Substantial OpenAI assistance. These are fresh constructions with +explicit arbitrary-input endpoints. An embedded cache output is not claimed +as an independent clean helper output until a whole caller erases its defect. +""" +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +import argparse +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import rebuild_native as N +import power_two_balance as B + +B_SHA = '76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424' + + +def common_frame_h(geo, offset, frame): + """H = diag(I,-I) S_L S_-K S_L, with all shear ADDs having coefficient ±1. + + Balancing only the eight selected coordinates avoids scaling104 ordinary + coordinates. No private field and no recursive transport are introduced. + Precondition: ALL112 physical fields share the stated actual frame gauge. + """ + A = geo['selected'] + out = [['phase', 'fresh_common_frame_H']] + def scale(n, d): + out.extend(N.scalar(['scale', ['L', offset+a], n, d], frame) for a in A) + def left(): + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = 2*value + N.need(abs(coefficient) == 1, 'Balanced unit L coefficients') + out.append(N.scalar(['add', ['L', offset+a], ['L', offset+u], int(coefficient), 1], frame)) + scale(2, 1); left(); scale(1, 4) + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = -2*value + out.append(N.scalar(['add', ['L', offset+u], ['L', offset+a], int(coefficient), 1], frame)) + scale(4, 1); left(); scale(-1, 2) + N.need(B.scalar_sum(out) == 10096, 'Exact common-frame H scalar allowance') + return out + + +def embedded_cache_roles(canonical): + roles = [i for i in range(224, 632) if canonical['start'][i] == 0 and canonical['final'][i] == 1] + N.need(len(roles) == 213, '213 genuinely cold, full-ended native helper roles') + return roles[:8] + + +def embedded_logger_suffix(canonical, geo, roles=None): + roles = embedded_cache_roles(canonical) if roles is None else list(roles) + N.need(len(roles) == len(set(roles)) == 8, 'Eight distinct embedded caches') + N.need(all(224 <= i < 632 and canonical['start'][i] == 0 and canonical['final'][i] == 1 for i in roles), + 'Embedded logger only uses cold full-ended physical helper references') + out = [['phase', 'fresh_embedded_dirty_logger']] + for k, a in enumerate(geo['selected']): + r = roles[k] + out += [N.scalar(['scale', ['L', r], 2, 1], 1), + N.scalar(['add', ['L', r], ['L', a], 2, 1], 1)] + out += [N.scalar(['add', ['L', r], ['L', u], int(2*q), 1], 1) + for u, q in sorted(geo['L'][k].items())] + out.append(N.scalar(['scale', ['L', r], 1, 2], 1)) + N.need(B.scalar_sum(out) == 3440, 'Embedded logger exact scalar bill') + return out + + +def make_embedded_logger(canonical, base_word, geo): + word = B.make_balanced_h(canonical, base_word, geo)['forward'] + return word+embedded_logger_suffix(canonical, geo) + + +def make_wrapped_h(canonical, base_word, geo): + words = B.make_balanced_h(canonical, base_word, geo) + return {direction: common_frame_h(geo, 112, 0)+word+common_frame_h(geo, 0, 1) + for direction, word in words.items()} + + +def literal_replay(v, c, program, backward=False): + """Second literal evaluator for new endpoints; all632 inputs arbitrary. + + This checker has no endpoint-specific shortcut. It applies every scalar + and free-warp event and checks each contact's frame before comparing rows. + """ + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + current = {('L', i): f for i, f in enumerate(c['start'])}; current['C', 0] = None + spaces = [v.span(frame) for frame in c['frames']] + profile = Counter(); cost = 0; max_l1 = Q(1); witness = None; max_denominator = 1 + for j, event in enumerate(program): + kind = event[0]; touched = None + if kind == 'scalar': + g, frame = event[1:]; target = tuple(g[1]); touched = target + cost += N.primitive_allowance(g) + if g[0] == 'clear': + N.need(target == ('C', 0), 'Only owned C0 can be cleared') + rows[target] = {}; current[target] = frame + else: + N.need(current[target] == frame, 'Exact scalar target frame') + if g[0] in ('add', 'copy'): + source = tuple(g[2]); N.need(current[source] == frame, 'Exact scalar source frame') + if g[0] == 'copy': + N.need(target == ('C', 0), 'Only owned field overwritten by copy') + rows[target] = dict(rows[source]) + else: + N.need(target != source, 'Distinct reversible ADD arguments') + v.add(rows[target], rows[source], Q(g[3], g[4])) + else: + N.need(g[0] == 'scale', 'Known scalar action') + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + elif kind == 'warp': + _, r, op, old, new = event; target = tuple(r); touched = target + N.need(current[target] == old, 'Warp input frame') + rows[target] = v.warp(rows[target], op, backward); current[target] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, part, i, old, new, rank = event; target = ('L', i) + N.need(spaces[old] < spaces[new], 'Ascending borrowed climb') + else: + _, i, old, new, rank = event; target = ('C', i) + N.need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested center transport') + N.need(current[target] == old and rank == abs(len(c['frames'][new])-len(c['frames'][old])), 'Paid rank and source frame') + current[target] = new; profile[rank] += 1 + else: + N.need(kind in ('phase', 'adapter', 'residual_adapter'), 'Known inert native marker') + if touched is not None: + norm = sum(map(abs, rows[touched].values()), Q(0)) + if norm > max_l1: + max_l1 = norm; witness = dict(event=j, role=list(touched)) + max_denominator = max(max_denominator, max((x.denominator for x in rows[touched].values()), default=1)) + N.need([current['L', i] for i in range(632)] == c['final'], 'Final native frames') + N.need(not rows['C', 0], 'Owned C0 cleared at return') + return rows, dict(independent_persistent_columns=632, independent_owned_entry_columns=1, + scalar_frames_checked=True, arbitrary_owned_C0_cleared=True, + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*x for k, x in profile.items()), + real_scalar_allowance=cost, max_formal_prefix_l1=str(max_l1), max_denominator=max_denominator, + l1_witness=witness) + + +def check_rows(v, rows, geo, kind, backward=False, cache_roles=()): + mismatch = [] + for r in range(632): + actual = rows['L', r] + if kind == 'wrapped' and r < 224: + port = r % 112; wanted = {} + for j, q in geo['H'][port].items(): + v.add(wanted, v.identity(('L', (112 if r >= 112 else 0)+j)), q) + if backward and r < 112: + v.add(wanted, v.identity(('L', 112+j)), -q) + if not backward and r >= 112: + v.add(wanted, v.identity(('L', j)), q) + else: + wanted = v.identity(('L', r)) + if 112 <= r < 224: + for j, q in geo['H'][r-112].items(): + v.add(wanted, v.identity(('L', j)), q) + if r in cache_roles: + k = list(cache_roles).index(r) + for j, q in {geo['selected'][k]: Q(1), **geo['L'][k]}.items(): + v.add(wanted, v.identity(('L', j)), q) + if actual != wanted: + mismatch.append(r) + N.need(not mismatch, 'Fresh exact endpoint mismatch '+repr(mismatch[:5])) + + +def check_scalar_h(v, geo): + """Independent112-column execution without native body or Clifford data.""" + rows = {i: {i: Q(1)} for i in range(112)} + program = common_frame_h(geo, 0, 0) + for event in program: + if event[0] != 'scalar': + continue + g = event[1]; target = g[1][1] + if g[0] == 'scale': + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + else: + v.add(rows[target], rows[g[2][1]], Q(g[3], g[4])) + N.need(all(rows[i] == geo['H'][i] for i in range(112)), 'Three balanced shears exactly equal H') + return dict(all_columns=112, real_scalar_allowance=B.scalar_sum(program), + additions=sum(e[0] == 'scalar' and e[1][0] == 'add' for e in program), + unit_add_coefficients=True, owned_fields=0, new_recursive_children=0, + required_physical_precondition='All112 fields occupy one actual common frame reference.') + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--out', type=Path, default=HERE/'extension-certificates') + args = ap.parse_args(); args.out.mkdir(parents=True, exist_ok=True) + N.need(N.digest(HERE/'rebuild_native.py') == B.N_SHA and N.digest(HERE/'power_two_balance.py') == B_SHA, + 'Authenticated fresh prerequisite sources') + p, v, ce, receipt, inherited = N.authenticated(); geo = N.geometry(v.PACKET) + result = dict(schema='fresh-native-helper-log-and-common-frame-conjugation/1', + source_sha256=N.digest(Path(__file__)), reconstruction_source_sha256=B.N_SHA, + balance_source_sha256=B_SHA, scalar_H=check_scalar_h(v, geo), providers={}, no_new_kappa_claimed=True) + for tag in N.TAGS: + c = N.read(N.BASE/(tag+'-CANONICAL.json.gz')); word = N.read(N.BASE/(tag+'-NATIVE-WORD.json.gz')) + base_scalar = B.scalar_sum(word['forward']) + roles = embedded_cache_roles(c); embedded = make_embedded_logger(c, word, geo) + rows, embedded_check = literal_replay(v, c, embedded) + check_rows(v, rows, geo, 'embedded', cache_roles=roles) + N.need(embedded_check['real_scalar_allowance'] == base_scalar+3504+3440, 'Embedded complete scalar invoice') + wrapped = make_wrapped_h(c, word, geo); wrapped_checks = {} + for direction, program in wrapped.items(): + back = direction == 'backward' + rows, checked = literal_replay(v, c, program, back) + check_rows(v, rows, geo, 'wrapped', back) + N.need(checked['real_scalar_allowance'] == base_scalar+3504+2*10096, 'Wrapped H complete scalar invoice') + wrapped_checks[direction] = checked + ep = args.out/(tag+'-EMBEDDED-LOGGER.json.gz'); wp = args.out/(tag+'-SCALAR-WRAPPED-H.json.gz') + result['providers'][tag] = dict( + embedded_logger=dict(artifact=ep.name, sha256=N.save(ep, embedded), check=embedded_check, + cache_roles=roles, exactly_400_other_helpers_restored=True, + cache_output='d_k + X_A[k] + L[k] X_U', extra_children=0, + extra_persistent_fields=0, extra_owned_fields=0, extra_scalar_allowance=3440, + independent_clean_output_credit_for_eight_caches=False), + scalar_wrapped_H=dict(artifact=wp.name, sha256=N.save(wp, wrapped), checks=wrapped_checks, + endpoint='diag(H,H) times the corresponding identity shear in local logical coordinates', + new_recursive_children_beyond_H=0, extra_scalar_allowance=20192, + all_408_helpers_restored=True, + outer_intercall_frame_identification_certified=False)) + N.save(args.out/'RESULT.json', result) + print('PASS extensions', tag, 'embedded0 extra children; wrapped H20192 extra scalars', flush=True) + result['status'] = 'PASS_LOCAL_NATIVE_ENDPOINTS_WITH_EXPLICIT_OUTER_FRAME_OBLIGATION' + N.save(args.out/'RESULT.json', result) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py new file mode 100644 index 0000000000..340e1f0ffb --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +"""Exact endpoint refill conditional on the source PR4359 construction. + +Apache-2.0. Substantial OpenAI assistance. The mixed inventory and elementary +function enclosure are zxv's PR4359; mixed-target flow is Jacob Alan Sussman's +Theorem 1G. Outer formulas retain the attribution in PR4359 outer_parameters.py. +This file checks arithmetic, not the native or all-size proof hypotheses. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +PREFIX = Path('research/kappa-rebuild') +OLD_BASELINE = Q('0.001730970419199163702738') +KAPPA = Q('0.00230509') +TESTED = Q('0.00230509019') +ROOT_UPPER = Q('0.002306') + + +def need(value, message): + if not value: + raise AssertionError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def ceil(value): + value = Q(value) + return -((-value.numerator) // value.denominator) + + +def encode(value): + if isinstance(value, Q): + return str(value) + if isinstance(value, dict): + return {str(k): encode(v) for k, v in value.items()} + if isinstance(value, (tuple, list)): + return [encode(v) for v in value] + return value + + +def family(kappa, tested): + """One explicit slack family approaching the same source mixed root.""" + need(Q(0) < kappa < tested < ROOT_UPPER, 'Positive strictly ordered savings') + d = (tested-kappa)/7 + return {'kappa': kappa, 'tested_saving': tested, + 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, + 'bit_saving': Q('0.0027'), 'epsilon': 1-d, 'beta': 1-3*d, + 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + + +def ledger(p): + """Recompute all 54 named PR4359 checks with freely supplied parameters.""" + kappa, b, a, q = (p[key] for key in ('kappa', 'b', 'a', 'q')) + epsilon, beta, r0, stop, layout = (p[key] for key in + ('epsilon', 'beta', 'r0', 'stop', 'layout')) + sigma, tau = 1-b, 1-a + internal = tau+(1-stop)*max(sigma-tau, Q(0)) + leaf = sigma+stop*(1-sigma) + lam, c = 1-(q+a)/2, Q(3, 32) + xi, key = epsilon*(1+q)-c+layout, beta+1-epsilon + margins = { + 'main_transform': epsilon*q, + 'global_coordinate_router': a, + 'fused_gaussian': 1-epsilon+q*beta, + 'group_bit_router': 1-epsilon+a*beta, + 'group_scans': 1-epsilon+beta, + 'boundary_algebraic_matrix': c+xi-epsilon, + 'sparse_union_movement': xi+Q(1, 2)-epsilon, + 'polynomial_products': epsilon, + 'microbox_face_corrections': 1-(epsilon+beta+48-128+2), + } + checks = { + 'actual_bit_above_effective': p['bit_saving']-a, + 'complex_above_effective': b-a, + 'q_positive': q, 'complex_endpoint': b-q, 'q_below_effective': a-q, + 'stop_positive': stop, 'stop_below_one': 1-stop, + 'leaf_saving_above_effective': (1-stop)*b-a, + 'q_below_internal': 1-internal-q, 'q_below_leaf': 1-leaf-q, + 'lambda_above_tau': lam-tau, 'lambda_above_sigma': lam-sigma, + 'lambda_above_internal': lam-internal, + 'lambda_prime_above_lambda': 1-q-lam, + 'lambda_prime_above_leaf': 1-q-leaf, + 'epsilon_positive': epsilon, 'epsilon_below_one': 1-epsilon, + 'cap_above_band': xi-Q(1, 2), 'cap_below_cell': epsilon-xi, + 'group_positive': beta, 'group_below_dimension': epsilon-beta, + 'support_router_span': 1-beta, + 'group_gauge_power_slack': 1-(2*xi-2)-r0-beta, + 'actual_logarithmic_group_guard': 1-(2*xi-2)-beta, + 'global_gamma_power_slack': 1-epsilon-r0, + 'actual_logarithmic_gamma_guard': 1-epsilon, + 'alpha_logarithm_absorption': r0, + 'group_key_fits_record': 1-key, + 'membership_arithmetic_fits_record': 1-beta-2*(1-epsilon), + 'microbox_halo_volume': 128-48-beta, + 'positive_layout_slack': layout, + 'short_record_fallback': epsilon-a, + 'complex_below_one_over_32': Q(1, 32)-b, + 'strassen_integer_power_gap': Q(2**45-7**16), + 'theta_positive_polynomial_power': Q(2), + 'cap_below_phase_cell_power': 2-xi, + 'halo_covers_generic_inverse_radius': Q(48-43), + 'union_tag_work_per_visit_fits_record': 1-beta, + 'union_header_fits_record': 1-beta, + 'source_axis_superpolynomial': 1-epsilon, + 'gaussian_above_main': margins['fused_gaussian']-margins['main_transform'], + 'new_complex_uniform_saving_above_b': p['complex_uniform_saving']-b, + 'improvement_over_user_baseline': kappa-OLD_BASELINE, + 'new_semantic_guard_with_C1_one': 1-epsilon, + 'fine_prime_halo_umbrella': 10-(2*2+2+Q(1, 2)), + } + checks.update({name+'_above_kappa': value-kappa for name, value in margins.items()}) + # These are the additional functional conditions in the independent + # PR4359 outer_transfer_audit.py, beyond the 54-row parameter ledger. + functional = { + 'new_semantic_group_guard': 1-beta, + 'new_BIT_row_stock_sublinear_in_active_group': beta*(1-Q(3, 1000)), + 'fixed_halo_explicit_metadata_branch': 128-48-epsilon-beta-1, + } + return {'parameters': dict(p, cap_xi=xi, lambda_=lam, lambda_prime=1-q), + 'margins': margins, 'strict_checks': checks, 'functional_checks': functional} + + +def compiler_rank(E, targets, paid, tested, uniform): + """The original sufficient bound, re-instantiated for the new exponent.""" + m, kmin, rmax = max(targets), min(targets), max(paid) + need((m, kmin, rmax) == (57, 6, 5), 'Pinned complex separation') + t, z = 1-tested, 1-uniform + z0, h = (t+z)/2, Q(1, 10) + delta = z0-t + need(0 < t < z0 < z < 1, 'Compiler exponent order') + need(5**10 < 6**9 and 57 < 2**10, 'Exact source rank bounds') + need(z0 > Q(1, 2) and (1-z0)*E.log_interval(m)[1] < E.log_interval(2)[0], + 'Original eta strictly exceeds 1/4') + H0 = ceil((3+4*delta)/(h*delta)) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= m.bit_length() and H0*h*delta >= 3+4*delta, 'Induction starts') + need(H1*(z-z0) > H0*(1-z0), 'Strict winning uniform rank') + need((H0-1)*h*delta < 3+4*delta, 'Reject one lower threshold exponent') + need((H1-1)*(z-z0) <= H0*(1-z0), 'Reject one lower final exponent') + return {'t': t, 'z0': z0, 'z': z, 'theta_upper': Q(9, 10), + 'H0': H0, 'H1': H1, 'N_encoding': '2^H1', + 'strict_final_gap': H1*(z-z0)-H0*(1-z0), + 'winning_word_materialized': False, + 'bound': 'Original sufficient inequality; a sharper bound is separate.'} + + +def run(source_root): + base = source_root/PREFIX + interval_path = base/'architecture/mixed_target_probe.py' + spec = importlib.util.spec_from_file_location('pr4359_moment', interval_path) + E = importlib.util.module_from_spec(spec) + spec.loader.exec_module(E) + cover = read(base/'controller/P3-NATIVE-COVER.json.gz')['cover'] + targets = {int(k): int(v) for k, v in cover['targets'].items()} + paid = {int(k): int(v) for k, v in cover['paid'].items()} + need(targets == {6: 192, 7: 56, 8: 93, 9: 1229, 25: 448, 57: 224}, + 'Exact source productive inventory') + need(paid == {1: 17623, 2: 5065, 3: 1738, 4: 714, 5: 254}, + 'Exact source paid inventory') + signed = Counter(targets) + signed.subtract(paid) + need(sum(k*v for k, v in signed.items()) == 224, 'Rank-one surplus') + bracket = {'lower': E.moment(signed, TESTED), 'upper': E.moment(signed, ROOT_UPPER)} + need(bracket['lower'][0] > 0 and bracket['upper'][1] < 0, + 'Strict mixed test and upper root bound') + + original = read(base/'controller/OUTER-PARAMETERS.json')['outer'] + old = ledger({'kappa': Q('0.0023'), 'complex_uniform_saving': Q('0.002304'), + 'b': Q('0.002303'), 'a': Q('0.0023025'), 'q': Q('0.002302'), + 'bit_saving': Q('0.0027'), 'epsilon': Q('0.99999'), + 'beta': Q('0.99997'), 'r0': Q(1, 10**6), + 'stop': Q(1, 10**8), 'layout': Q(1, 10**6)}) + for group in ('margins', 'strict_checks'): + frozen = {key: Q(value['rational']) for key, value in original[group].items()} + need(old[group] == frozen, 'Exact reproduction of every old '+group) + p = family(KAPPA, TESTED) + result = ledger(p) + need(all(v > 0 for v in result['strict_checks'].values()), 'All 54 new outer predicates') + need(all(v > 0 for v in result['functional_checks'].values()), 'Additional functional predicates') + need(min(result['margins'].values()) == result['margins']['main_transform'], + 'Main transform remains limiting') + need(result['parameters']['cap_xi'] == Q(29, 32)+(1-p['d'])*p['q'], + 'Cofinal cap simplification') + controls = {} + for label, updates in [('closed_epsilon_gap', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': Q('0.002306')}), + ('BIT_below_effective', {'bit_saving': OLD_BASELINE}), + ('no_complex_slack', {'complex_uniform_saving': p['b']})]: + tested = ledger(dict(p, **updates)) + failures = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failures, 'Mutation rejected: '+label) + controls[label] = failures + need(E.moment(signed, Q('0.004'))[1] < 0, 'Unsupported mixed target is rejected') + inputs = [interval_path, base/'controller/P3-NATIVE-COVER.json.gz', + base/'controller/OUTER-PARAMETERS.json'] + return encode({'schema': 'pr4359-cofinal-outer-refill/1', + 'status': 'PASS_EXACT_CONDITIONAL_ENDPOINT_REFILL', + 'kappa': KAPPA, 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'unchanged_paid': paid, 'unchanged_targets': targets, + 'mixed_test_saving': TESTED, 'mixed_test_margin': E.show(bracket['lower']), + 'root_upper_test': ROOT_UPPER, 'root_upper_margin': E.show(bracket['upper']), + 'old_ledger_crosscheck': {'matched_savings': len(old['margins']), + 'matched_checks': len(old['strict_checks'])}, + 'outer': result, 'limiting_margin': min(result['margins'].values())-KAPPA, + 'compiler': compiler_rank(E, targets, paid, TESTED, p['complex_uniform_saving']), + 'negative_controls': controls, + 'source_sha256': {str(p.relative_to(source_root)): sha256(p.read_bytes()).hexdigest() + for p in inputs}, + 'scope': 'Conditional arithmetic and specified finite rank. The PR4359 native, compiler, cover, precision, fixed-tape and outer hypotheses remain premises; no full theorem or practical word is certified.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=HERE/'source') + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = run(args.source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'limiting_margin', 'compiler')}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/provenance/1ec1119972c9aefe42525172d07b332fcff81cb4/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/certificates/selected-result.json @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py new file mode 100644 index 0000000000..4b24a50961 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/higher-moment-strictification/verify.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Higher-moment strictification and a polynomial-logarithm compiler bound. + +New arithmetic is independent of predecessor interval code. The unchanged +invoice replay and two outer ledgers are credited, byte-pinned oracles. +zxv with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +from collections import Counter +from contextlib import redirect_stdout +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256, sha1 +import io +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +GRID = 2**192 +C = Q('0.00268648') +KAPPA = Q('0.00268647') +T = {5:420, 6:270, 7:840, 8:1395, 9:3195, + 25:448, 41:448, 57:448, 121:224} +P = {1:37305, 2:10695, 3:3360, 4:1530, 5:300, + 8:1464, 16:448, 32:448, 48:448} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def down(x): + return Q((x*GRID).__floor__(), GRID) + + +def up(x): + return Q(-((-x*GRID).__floor__()), GRID) + + +def rounded(lo, hi): + return down(lo), up(hi) + + +def mul(a, b): + products = [x*y for x in a for y in b] + return rounded(min(products), max(products)) + + +def scale(a, x): + return mul(a, (x, x)) + + +def divide(a, b): + need(b[0] > 0, 'positive interval denominator') + return mul(a, rounded(1/b[1], 1/b[0])) + + +@lru_cache(None) +def log_bounds(n): + """Exact atanh series, binary reduction; round only the final interval.""" + need(isinstance(n, int) and n >= 1, 'positive integer logarithm') + + def series(x): + u = (x-1)/(x+1) + term, total = u, Q(0) + for j in range(80): + total += 2*term/(2*j+1) + term *= u*u + tail = 2*term/(161*(1-u*u)) + return total, total+tail + + k = n.bit_length()-1 + a, b = series(Q(2)) + c, d = series(Q(n, 2**k)) + return rounded(k*a+c, k*b+d) + + +def exp_point(x): + """Outward fixed-point Taylor enclosure, with binary scaling/squaring.""" + need(abs(x) < 16, 'bounded exponential argument') + if x < 0: + a, b = exp_point(-x) + return rounded(1/b, 1/a) + divisions = 0 + while x > Q(1, 2): + x /= 2 + divisions += 1 + term = total = (Q(1), Q(1)) + for j in range(1, 65): + term = scale(term, x/j) + total = rounded(total[0]+term[0], total[1]+term[1]) + following = scale(term, x/65) + # Every remaining ratio is <= 1/132. Twice the next term is safe. + result = rounded(total[0], total[1]+2*following[1]) + for _ in range(divisions): + result = mul(result, result) + return result + + +def exp_interval(a): + return exp_point(a[0])[0], exp_point(a[1])[1] + + +@lru_cache(None) +def power(n, exponent): + return exp_interval(scale(log_bounds(n), exponent)) + + +def moment(histogram, exponent): + low = high = Q(0) + for n, count in histogram.items(): + a, b = power(n, exponent) + low += count*a + high += count*b + return rounded(low, high) + + +def display(a): + unit = 10**30 + + def fixed(n): + sign = '-' if n < 0 else '' + s = str(abs(n)).rjust(31, '0') + return sign+s[:-30]+'.'+s[-30:] + + return {'lower': fixed((a[0]*unit).__floor__()), + 'upper': fixed(-((-a[1]*unit).__floor__()))} + + +def encoded(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encoded(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encoded(v) for v in x] + return x + + +def source_environment(path): + env = {'__file__': str(path), '__name__': 'pinned_source_oracle'} + exec(compile(path.read_bytes(), str(path), 'exec'), env) + return env + + +def authenticate(): + result = {} + for row in json.loads((HERE/'VENDOR.json').read_text())['files']: + path = HERE/'vendor'/Path(row['path']).relative_to( + 'research/higher-moment-strictification/vendor') + digest = sha256(path.read_bytes()).hexdigest() + need(digest == row['sha256'], 'changed source: '+row['path']) + raw = path.read_bytes() + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + == row['git_blob'], 'changed Git source blob') + result[row['path']] = digest + return result + + +def invoice_oracle(): + """Run #4426 unchanged, rebinding only its two file-location globals.""" + path = HERE/'vendor/invoice-review/verify.py' + env = source_environment(path) + env.update(ROOT=path.parent, PHASES='DATA-PHASES.json') + output = io.StringIO() + with redirect_stdout(output): + env['main']() + result = json.loads(output.getvalue()) + need(result['status'] == 'PASS_PR4416_INVOICE_REBUILD', 'source invoice oracle') + need({int(k): v for k, v in result['targets'].items()} == T + and {int(k): v for k, v in result['paid'].items()} == P, + 'exact literal-word invoice') + return result + + +def tail_certificate(v=150, cutoff=10, floor=15, u=Q(3, 10)): + t = 1-C + need(v >= 1 and 1 < cutoff < floor < 121, 'strict finite ranks') + need(t+u >= 1, 'tail moment exponent at least one') + target, paid = moment(T, t), moment(P, t) + alpha = divide(paid, target) + gamma = divide(moment(P, t+u), mul(power(cutoff, u), target)) + delta = divide((Q(sum(T.values())*floor),)*2, + mul(power(cutoff, C), target)) + limits = (1-Q(1, 10**8), Q(181, 200), Q(439, 500)) + for name, bounds, limit in zip(('alpha', 'gamma', 'delta'), + (alpha, gamma, delta), limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, name+' certified limit') + a, g, d = limits + bound = 1/(1+v*(1-a))+2*g**v+2*d**v + need(bound < 1, 'complete charged normalized moment') + old_gamma = divide((Q(sum(k*n for k, n in P.items())),)*2, + mul(power(cutoff, C), target)) + old_lower = alpha[0]**v+2*old_gamma[0]**v + need(old_lower > 1, 'rank-one-tail estimate fails at this tensor power') + return {'tensor_power': v, 'cutoff_base': cutoff, 'floor_base': floor, + 'paid_moment_exponent': t+u, 'tail_offset_u': u, + 'tested_saving': C, 'alpha': display(alpha), 'gamma': display(gamma), + 'delta': display(delta), 'rational_upper_limits': limits, + 'normalized_paid_upper': bound, 'strict_moment_gap': display((1-bound,)*2), + 'old_rank_one_gamma': display(old_gamma), + 'old_rank_one_bound_lower': display((old_lower, old_lower)), + 'ambient': '121^'+str(v), 'minimum_target': str(floor)+'^'+str(v), + 'maximum_paid': str(cutoff)+'^'+str(v), + 'productive_fields_before_uniform_compiler': '7688^'+str(v), + 'rank_one_surplus': '131723^'+str(v)+'-131115^'+str(v), + 'materialized_product_or_uniform_word': False} + + +def uniform_rank(v): + t, p, theta = 1-C, 13, Q(6, 7) + gap = (C-KAPPA)/7 + uniform_saving = C-gap + need(10**7 < 15**6, 'theta upper bound') + need(2*(10**v)**7 <= (121**v)**6, 'shifted logarithm inequality') + eta = scale(exp_interval(scale(log_bounds(121), -v*C)), t) + need(eta[0] > theta**p, 'exit contraction below complement capacity') + base = exp_interval(scale(log_bounds(121), v*C)) + need(base[1] < 2**p, 'entire ordinary base range fits') + # Integer grid: gap*H is integral, avoiding enormous rational powers. + step = gap.denominator + need(gap.numerator == 1, 'chosen rational gap grid') + + def passes(j): + H = step*j + return (H+1)**p < 2**j + + lo, hi = 1, 2 + while not passes(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (lo+hi)//2 + if passes(mid): + hi = mid + else: + lo = mid + H = step*hi + need(H > 7*v and passes(hi) and not passes(hi-1), 'final integer comparison') + need(eta[1] < theta**(p-1), 'one smaller logarithmic power fails') + return {'t': t, 'uniform_saving': uniform_saving, 'gap': gap, + 'logarithm_power': p, 'theta_upper': theta, 'eta': display(eta), + 'eta_minus_theta_to_p': display((eta[0]-theta**p, eta[1]-theta**p)), + 'm_to_saving': display(base), 'H': H, 'N': '2^'+str(H), + 'integer_test': {'left_base': H+1, 'left_exponent': p, + 'right_base': 2, 'right_exponent': hi}, + 'grid_step': step, 'previous_grid_point_rejected': True, + 'smaller_logarithmic_power_rejected': True} + + +def power_majorant_comparison(v, uniform_saving): + """Retain #4416's older power proof, changing only the new unit's ranks.""" + t, z, h = 1-C, 1-uniform_saving, Q(1, 7) + z0 = (t+z)/2 + delta = z0-t + B, debt = (4+7*h)*v, 1+7*v*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= 7*v and H0*h*delta >= delta*B+debt, 'power majorant threshold') + need((H0-1)*h*delta < delta*B+debt, 'previous power threshold rejected') + need(H1*(z-z0) > H0*(1-z0) >= (H1-1)*(z-z0), + 'strict power-majorant comparison and previous-rank control') + return {'H0': H0, 'H1': H1, 'N': '2^'+str(H1), 'theta_upper': 1-h, + 'scope': 'Tail transformation alone, retaining the older power majorant.'} + + +def outer_ledger(uniform_saving): + d = (C-KAPPA)/7 + params = {'kappa': KAPPA, 'tested_saving': C, + 'complex_uniform_saving': uniform_saving, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q('0.0027'), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + env = source_environment(HERE/'vendor/outer_endpoint.py') + row = env['ledger'](params) + need(len(row['strict_checks']) == 54 and len(row['functional_checks']) == 3, + 'complete first outer ledger') + need(all(v > 0 for group in ('strict_checks', 'functional_checks') + for v in row[group].values()), 'all outer predicates') + frozen = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['outer'] + need(encoded(row) == frozen, 'unchanged full p7 endpoint ledger') + parsed = ast.parse((HERE/'vendor/check_ledger.py').read_bytes()) + function = next(n for n in parsed.body + if isinstance(n, ast.FunctionDef) and n.name == 'ledger') + constants = [n for n in parsed.body if isinstance(n, ast.Assign) + and any(isinstance(t, ast.Name) and t.id.startswith('KAPPA_') + for t in n.targets)] + eps, beta, q, a = (params[k] for k in ('epsilon', 'beta', 'q', 'a')) + grid = 10**10 + backoff = Q((eps*q*grid).__floor__(), grid)-KAPPA + need(backoff > 0, 'strict derived oracle grid backoff') + oracle = {'Q': Q, 'R0': params['r0'], 'ZETA': Q(1, 10**8), + 'SLACK': d, 'STOP': d, 'FLOOR': grid, 'BACKOFF': backoff, + 'EPS': eps, 'BETA': beta, 'THETA_POWER': Q(2), + 'HALO_POWER': 48, 'CORE_POWER': 128, 'STRASSEN_TAU': Q(45, 16), + 'b': params['b'], 'q': q, 'a': a, 'bit': params['bit_saving'], + 'online': Q('0.001730970419199163702738'), + 'old': Q('0.001730970419199163702738')} + code = ast.fix_missing_locations(ast.Module(body=constants+[function], type_ignores=[])) + exec(compile(code, 'pinned 63-predicate ledger', 'exec'), oracle) + second = oracle['ledger']('higher_moment_smaller_ranks') + need(second['kappa'] == KAPPA and second['margins'] == row['margins'], + 'all nine rows match both ledgers') + need(len(second['strict_checks']) == 63 and + all(v > 0 for v in second['strict_checks'].values()), 'all 63 legacy predicates') + controls = {} + for name, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': C}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + bad = env['ledger'](dict(params, **updates)) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'outer control rejected: '+name) + controls[name] = failed + for name, options in [('old_per_axis_scan', {'old_scan': True}), + ('group_equals_dimension', {'beta_': eps})]: + bad = oracle['ledger']('reject_'+name, **options) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'legacy control rejected: '+name) + controls[name] = failed + return {'ledger': row, 'legacy_63_checks': second['strict_checks'], + 'legacy_grid': grid, 'legacy_backoff': backoff, + 'minimum_margin_minus_kappa': min(row['margins'].values())-KAPPA, + 'rejected_controls': controls} + + +def finite_controls(): + def tensor(histogram): + out = Counter() + for k, n in histogram.items(): + for h, b in histogram.items(): + out[k*h] += n*b + return out + + def split(histogram, cutoff): + out = Counter() + for k, n in histogram.items(): + q, r = divmod(k, cutoff) + out[cutoff] += q*n + if r: + out[r] += n + return +out + + target, paid = tensor({2:1, 5:1}), tensor({1:2, 4:1}) + padded, completion = Counter(), Counter() + for k, n in target.items(): + padded[max(k, 9)] += n + if k < 9: + completion[9-k] += n + final = split(paid+completion, 4) + mass = lambda x: sum(k*n for k, n in x.items()) + need(mass(padded)-mass(final) == 7**2-6**2 == 13, 'exact paid padding mass') + need(min(padded) > max(final), 'exact toy separation') + need(final == Counter({1:5, 4:9}), 'literal toy expanded inventory') + # t=1/2, sigma=3/4, R=100, J=1 refutes a sublinear tail extension. + invalid = power(100, Q(1, 2))[1]+2*power(100, Q(3, 4))[1] + need(invalid < 100, 'sublinear upper-tail moment cannot bound splitting') + return {'toy_targets': padded, 'toy_paid': final, 'rank_one_surplus': 13, + 'sublinear_tail_counterexample': {'R': 100, 'J': 1, 't': '1/2', + 'sigma': '3/4', 'actual_charge': 100, + 'invalid_upper': display((invalid, invalid))}} + + +def verify(): + sources = authenticate() + invoice = invoice_oracle() + tail = tail_certificate() + rank = uniform_rank(tail['tensor_power']) + endpoint = outer_ledger(rank['uniform_saving']) + controls = finite_controls() + rejected = [] + for name, updates, expected in [ + ('too_short_product', {'v': 100}, 'complete charged normalized moment'), + ('sublinear_tail', {'u': C/2}, 'tail moment exponent at least one'), + ('lost_separation', {'floor': 10}, 'strict finite ranks'), + ]: + try: + tail_certificate(**updates) + except ValueError as error: + need(str(error) == expected, 'wrong rejection: '+name) + rejected.append({'mutation': name, 'failed_at': str(error)}) + else: + raise ValueError('accepted mutation: '+name) + old = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['compiler'] + return encoded({'schema': 'higher-moment-native-strictification/1', + 'status': 'PASS_HIGHER_MOMENT_STRICTIFICATION', 'kappa': KAPPA, + 'invoice_oracle': invoice, 'strictification': tail, + 'uniform_rank': rank, 'outer': endpoint, + 'tail_only_power_majorant': power_majorant_comparison( + tail['tensor_power'], rank['uniform_saving']), + 'finite_controls': controls, 'rejected_mutations': rejected, + 'predecessor_H': old['H1'], + 'rank_exponent_reduction_factor': Q(old['H1'], rank['H']), + 'tensor_power_reduction_factor': Q(6240, tail['tensor_power']), + 'source_sha256': sources, + 'verifier_sha256': sha256(Path(__file__).read_bytes()).hexdigest(), + 'scope': 'Conditional charged transformation and finite compiler rank. Native all-column, physical, analytic, precision, storage, fixed-tape and recovery premises remain inherited. No new kappa, selected frontier or practical word.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = verify() + if args.out: + need(not args.out.exists(), 'new output path required') + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + need(json.loads((HERE/'RESULT.json').read_text()) == result, 'changed saved receipt') + print(json.dumps({'status': result['status'], 'tensor_power': result['strictification']['tensor_power'], + 'uniform_rank': result['uniform_rank']['N'], + 'strict_moment_gap': result['strictification']['strict_moment_gap'], + 'kappa': result['kappa']})) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/joint-helper-lattice/CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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" + ], + [ + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "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", + "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", + "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", + "1", + "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", + "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", + "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", + "1", + "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", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "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", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-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", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "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", + "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", + "1", + "-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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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", + "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", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "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", + "0", + "0", + "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" + ], + [ + "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", + "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" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -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 + ], + [ + -1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 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, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 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 + ], + [ + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 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 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md new file mode 100644 index 0000000000..d0593a46e8 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/README.md @@ -0,0 +1,280 @@ +# Conditional kappa 0.00302666 from eight joint helper relations + +This construction gives **conditional kappa = 151333/50000000 = 0.00302666**. +It improves the one-relation [PR #5377](https://github.com/CrocSwap/integer-mult-bounds/pull/5377) +value by **431/100000000 = 0.00000431**. The gain over the selected final +[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +value is **24421/5000000000 = 0.0000048842**. + +Eight independent helper relations replace all eight backward rank-eight +centers with exact saved values. They also remove eight later rank-one jobs +on zero fields. Each backward call gives up eight rank-nine productive helper +targets. All 224 main inputs and the other 400 helper inputs stay independent. +The forward word and p16 controller stay unchanged. This changes the complete +paid profile and proves a strict moment gain. + +[WITNESS.json](WITNESS.json) lists the eight relations and source events. +[WORD.json.gz](WORD.json.gz) contains the complete literal program. +[RESULT.json](RESULT.json) gives the exact row identities and complete bill. +[SOURCES.json](SOURCES.json) pins every consumed input by Git blob and SHA256. +The package has no runtime dependency on the pending PR #5377 package. + +## Source and research boundary + +The branch starts at canonical main +[1ec1119972c9aefe42525172d07b332fcff81cb4](https://github.com/CrocSwap/integer-mult-bounds/commit/1ec1119972c9aefe42525172d07b332fcff81cb4). +This base selects the final PR4610 result with the independent +[PR #5241](https://github.com/CrocSwap/integer-mult-bounds/pull/5241) audit. +The [selected review](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md) +records its exact scope and five retained framework assumptions. + +The frozen native source is Cao Yifan's +[round-three word](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz) +at final PR4610 commit `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`. +Its decompressed SHA256 is +`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. +The prior complete bill and crossing come from its +[round-six arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json). +All consumed source bytes occur in the recorded main base. + +The [canonical claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154290) +covers only the eight named centers and their joint relation system. +The separate [no-snapshot relation search](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154267) +has released its scope and explicitly excludes joint relations and center reuse. +The original-input cache search in +[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355) +is also released. The coded caller in +[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930) +retains all original helper outputs. This package changes eight helper inputs +in backward calls. It does not take those other research scopes. + +## General relation construction + +Consider an exact linear register program with independent helper inputs in +one common input frame. Let r independent scalar relations have a reduced +basis with dyadic coefficients and r helper pivots. Make these r fields owned. +Clear them and prepare each pivot from the nonpivot inputs with scalar ADDs. +Each relation is then zero for every remaining independent input. The r owned +fields receive no productive output credit. + +Suppose that an earlier field and a later owned center output have the same +exact frame, and their logical row difference is zero under these relations. +Clear a new owned field, COPY the earlier value into it and retain it. At the +center, clear the old owned center and COPY the saved value into that same +output frame. Clear the snapshot after use. This implements the old output +exactly without the center job. If another paid job has an identically zero +input row, the physical identity also implements that job on the restricted +domain. A frame annotation may change only after this exact zero check. + +Each replacement preserves the source state on that domain. Induction through +the chronological word therefore preserves every retained output. Clear all +owned pivots at return. The complete cost must remove their productive +credits and count every new scalar operation and storage route. Independence +of the relations is necessary: counting eight apparent formulas is not a +proof of eight independent pivots or of eight distinct saved jobs. + +## Eight exact source identities + +Let h_r denote the unrestricted logical input of source helper Lr. Define: + +```text +D1 = h230 - h324 + h326 + h328 - h333 +D2 = h225 - h384 - h388 + h390 + h391 + h392 - h397 +D3 = h225 - h227 + h229 - 2h231 + h232 - h234 - h235 + - h236 - h237 + 2h238 + h239 - h384 - h388 + h390 + + h391 + h392 - h397 +D4 = h227 + h229 - h232 + h234 + h235 - h236 + h237 + - h239 - h324 + h326 + h328 - h333 +D5 = h241 - h243 + h245 - h247 - h252 - h253 + h254 + h255 +D6 = h225 - h241 + h243 + h245 - h247 - h252 + h253 + + h254 - h255 - h324 + h326 + h328 - h333 - h384 + - h388 + h390 + h391 + h392 - h397 +D7 = h257 - h259 + h261 - h263 - h268 - h269 + h270 + h271 +D8 = h288 - h294 - h296 - h297 + h300 + h303 +``` + +Every helper in these relations starts in frame 0 and ends in frame 1, of +rank nine. Exact row reduction gives the eight pivots +**225, 227, 229, 230, 241, 245, 257, 288**. The reduced basis has no other pivot +in any pivot row. Its nonzero coefficients are integers or half-integers. +The emitted preparation thus uses only independent inputs and dyadic ADDs; +it has no cyclic dependence and needs no recursive job. The full reduced +basis is recorded in the word and result. + +The following indices are zero-based indices in the frozen backward source. +A snapshot is taken immediately after its named event. The two last columns +are identities in the unrestricted source, before any relation is imposed. + +| Relation | Snapshot event and role | Frame | Center event | Later zero event and role | Center minus snapshot | Later row | +|---|---|---|---|---|---|---| +| D1 | 11205, L92 | 254 | 11332 | 15584, L92 | D1/4 | -D1/4 | +| D2 | 11218, L57 | 274 | 11358 | 17264, L57 | D2/4 | -D2/4 | +| D3 | 11231, L81 | 619 | 11384 | 17256, L81 | D3/4 | -D3/4 | +| D4 | 11244, L224 | 279 | 11410 | 17722, L224 | -D4/4 | D4/4 | +| D5 | 11257, L11 | 621 | 11436 | 15876, L11 | D5/4 | -D5/4 | +| D6 | 11270, L240 | 280 | 11462 | 17245, L240 | -D6/4 | D6/4 | +| D7 | 11283, L9 | 624 | 11488 | 15870, L9 | D7/4 | -D7/4 | +| D8 | 11306, L288 | 281 | 11514 | 17580, L288 | D8/4 | -D8/4 | + +The COPY coefficient is one in every case. All eight snapshots are live +before the first center replacement. They use distinct owned fields C1 through +C8. Each is read once and cleared after use. The source owned center C0 is +cleared before each replacement. Each later zero job changes from the listed +frame to frame 1 and has rank one. `zero_retag` is a physical no-op; the verifier +requires its complete row to be zero and checks both exact frame identifiers. + +A separate source interpreter checks all sixteen identities on the unrestricted +632 source inputs. The new interpreter then executes the emitted program on +all **624 independent persistent columns and 17 arbitrary owned entry columns**. +It checks every scalar frame, paid rank, native transition, retained endpoint, +final frame and owned return. No independent input is silently set to zero. + +The identities are over rational coefficients and reduced free operator words. +They hold for any invertible interpretation of the native generators. At +positive tensor width f, replace each generator with its source tensor power +and each inverse with the inverse tensor power. Keep each rational coefficient +outside this substitution. Evaluation is a representation of the free group, +so the identities still hold. In particular, no tensor power is distributed +over a sum. The retained +[free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md) +records this termwise argument and credits Cinna Davis and ToikY. + +All 4,429 source frames, 72 native maps, adapters and retained paid operators +are unchanged. The package authenticates and reuses the source +[absolute-phase evidence](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz). +Same-frame COPY and identity on zero add no phase recipe. This package does +not rerun the source Clifford lowering or amplitude checks. The new identities +hold for the full source operators, including their absolute phases. + +## Complete bill and compiler + +Each backward call has the following complete local profiles: + +```text +paid: {1:2193, 2:412, 3:510, 4:127, 5:40} +helpers: {4:28, 7:7, 8:47, 9:318} +``` + +The controller has 16 backward calls, two unchanged forward calls and 15 thin +queries. Every idle and main target remains paid or credited as in the source. +Compared with PR4610, the complete difference is **minus 128 H1 and 128 H8 paid +jobs, with minus 128 H9 productive targets**. Compared with PR5377 it removes +224 further paid jobs and 112 further productive fields. The complete bill has +**64,148 paid jobs and 10,800 productive fields**. The respective rank masses +are 237,982 and 238,734, with unchanged surplus 752. + +For every real `0 < t < 1`, the complete target-minus-paid moment increases by + +```math +128(1+8^t-9^t)>0. +``` + +Both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; summing and multiplying by `9^t` +proves the strict inequality. This comparison charges the lost helper jobs. + +The backward scalar allowance is **158,744**, which is 576 above the source. +Its maximum formal prefix L1 norm is **163**, below the source value 169, and +its maximum denominator stays 64. The forward values remain 158,120, 457 and +32. Eight new physical slots hold C1 through C8; the eight private helpers use +existing slots. The local route allowance charges both routes for each of +these sixteen new owned lifetimes. It is **4,834,000**. The local scalar-plus-route +bill stays below 10^7. The complete raw nonrecursive bound remains +**181,098,496 < 10^9**. These bounds include preparation, storage, COPY and CLEAR. +The retained precision and tape prescriptions must use this expanded fixed +template, not a former numerical template-size cap. + +Two rational interval engines verify the complete moment. Its unique crossing +in `0 < kappa < 1` lies in **(0.00302667476807, 0.00302667476808)**. Exact interval +bounds prove decrease on `[0,0.05]` and negativity on `[0.05,1]`. This is a ceiling +for this fixed complete profile. It does not optimize all relation systems. +The claimed kappa leaves more than **0.00000001476807** raw headroom. + +The tested saving is **0.00302667**. The paid/target ratio is below +`0.999999995016963387587258118167`, with reserve `1e-9`. The two charged tail +ratios are below 0.957 and 0.952, respectively, hence below 0.97. Tensor power +1024, cutoff 20, floor 21, tail offset 1/5, complement factor 63/64 and logarithm +power 1000 all pass. The finite compiler uses gap `1/700000000`, `j=44836`, +`H=31385200000000` and `N=2^31385200000000`. The exact test +`(H+1)^1000 < 2^44836` passes; the preceding grid integer fails. The uniform +complex saving is `529667/175000000`. All **54 strict outer predicates and +four functional predicates** pass with the retained ordinary BIT saving 0.0034. + +## Verification and limitations + +Use CPython 3.12 or 3.14 and the standard library. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/kappa-joint-relations-20261023 --check-only +python3 -B scripts/research_package.py --package research/kappa-joint-relations-20261023 +``` + +The registered verifier runs normal and optimized modes. The direct commands +also work in the official Git-free export: + +```sh +python3 -B research/kappa-joint-relations-20261023/verify.py +python3 -O -B research/kappa-joint-relations-20261023/verify.py +``` + +Both print `PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS`. +The verifier reconstructs and compares the literal published word and result. +`--write` is an authoring mode that writes only this package after all checks +pass. Regeneration compares decompressed payloads, not gzip container bytes. + +Fresh checks cover both original and changed words, all retained and owned +entry columns, sixteen unrestricted source identities, exact relation rank, +phase source bindings, the p16 Laurent controller and both boundary programs, +two complete invoice counts, two interval engines, the fixed profile ceiling, +completion, compiler and every outer predicate. Seven native controls reject +a wrong preparation sign, omitted input clear, wrong snapshot, wrong zero +frame, wrong paid rank, wrong COPY gauge and omitted output clear. Five +cost controls reject unearned helper credit and four invalid outer parameters. + +Normal and optimized registered checks passed on CPython 3.12.14. The direct +author replay also passed on CPython 3.14. Metadata and source pins passed. +The publication handoff records committed-byte and Git-free export checks. +The optional full-history preflight is not claimed in this shallow checkout. + +These are author checks. The source phase lowering, BIT native construction, +physical tape execution, numerical precision execution, analytic decomposition, +fine-prime avoidance and exact integer recovery are inherited. They are not +rerun here. No expanded compiled word, Lean proof, Docker run or independent +human acceptance is claimed. The complete result retains the selected five +framework assumptions: all-column native realization, owned erasure, uniform +compiler closure, precision/tape and analytic recovery. No selected record is +changed. This is a conditional mathematical improvement, not a timing result. + +## Credit + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +The new code and proof generalize our +[frozen one-relation package](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md) +from PR5377. That package supplies D1, its COPY/zero argument and the original +complete-cost verifier. The new work is the joint rank-eight system, seven +further centers, eight simultaneous snapshots and the new complete bound. + +Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +supplies the exact word, phase evidence and compiler lineage. Chris R's +[PR #5241](https://github.com/CrocSwap/integer-mult-bounds/pull/5241) supplies the +independent admission evidence now used by main; that audit does not cover +this changed helper inventory. Cinna Davis's +[PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470) supplies the +controller and productive-helper lineage. zxv's +[PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) supplies the +related cache contract and handoff to actual row/lifetime matches. + +The retained [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-interface-round2-20261022/price_profile.py) +and [native source](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/complex/native_extensions.py) +credit Dugongue's transported frames, zxv's native/compiler work, Jacob Alan +Sussman's mixed-target recursion and the earlier contributors. Their notices +and the original source bytes remain unchanged. + +## Open next questions + +An independent reviewer should check the eight pivot preparations and sixteen +unrestricted identities, then the COPY/zero realization and complete bill. +Independent physical and all-size acceptance remains necessary. A further +construction must change another paid job or relation system: all eight +backward centers are already removed here. Check live claims and price every +lost target before that search. [TASK.json](TASK.json) records both questions, +first checks and blockers. No optimum over helper relations is claimed. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json new file mode 100644 index 0000000000..b6c9cd0da1 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/RESULT.json @@ -0,0 +1,961 @@ +{ + "arithmetic": { + "PR5377_raw_root_upper": "75559684087/25000000000000", + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000199495867924466542600392", + "upper": "0.000000199495867924466542600393" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "529667/175000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195473.450610684184815935477074865515", + "upper": "-195473.450610684184815935477074865514" + }, + "remaining_interval_moment_upper": { + "lower": "-6820.155255095433991980526890420873", + "upper": "-6820.155255095433991980526890420872" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "24421/5000000000", + "gain_over_PR5377": "431/100000000", + "kappa": "151333/50000000", + "kappa_decimal": ".00302666", + "margin_at_previous_kappa": { + "lower": "1.209169472215494738857340795394", + "upper": "1.209169472215494738857340795395" + }, + "margin_at_previous_root_upper": { + "lower": "1.209152002019805295008574084544", + "upper": "1.209152002019805295008574084545" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 8, + "local_routes": 4834000, + "local_scalar": 158744, + "owned_slots_backward": 17, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "89109113099576267/98000000000000000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "lambda_": "199394667/200000000", + "lambda_prime": "139576267/140000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_calls": 64148, + "productive_fields": 10800, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "1476807/100000000000000", + "184601/12500000000000" + ], + "raw_root_interval": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999995016963387587258118166", + "upper": "0.999999995016963387587258118167" + }, + "cutoff": 20, + "delta": { + "lower": "0.951652473261883819699264316643", + "upper": "0.951652473261883819699264316644" + }, + "floor": 21, + "gamma": { + "lower": "0.956968564096059991841792406781", + "upper": "0.956968564096059991841792406782" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "302667/100000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_owned_entry_columns": 17, + "independent_persistent_columns": 624, + "max_denominator": 64, + "max_formal_prefix_l1": "163", + "owned_outputs_zero": true, + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "real_scalar_allowance": 158744, + "zero_identities": 8 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "checked": [ + [ + "center", + 11332 + ], + [ + "center", + 11358 + ], + [ + "center", + 11384 + ], + [ + "center", + 11410 + ], + [ + "center", + 11436 + ], + [ + "center", + 11462 + ], + [ + "center", + 11488 + ], + [ + "center", + 11514 + ], + [ + "zero", + 15584 + ], + [ + "zero", + 15870 + ], + [ + "zero", + 15876 + ], + [ + "zero", + 17245 + ], + [ + "zero", + 17256 + ], + [ + "zero", + 17264 + ], + [ + "zero", + 17580 + ], + [ + "zero", + 17722 + ] + ], + "owned_pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 288 + ], + "reduced_basis": { + "225": { + "225": "1", + "384": "-1", + "388": "-1", + "390": "1", + "391": "1", + "392": "1", + "397": "-1" + }, + "227": { + "227": "1", + "231": "1", + "232": "-1", + "234": "1", + "235": "1", + "237": "1", + "238": "-1", + "239": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "229": { + "229": "1", + "231": "-1", + "236": "-1", + "238": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "230": { + "230": "1", + "324": "-1", + "326": "1", + "328": "1", + "333": "-1" + }, + "241": { + "241": "1", + "243": "-1", + "253": "-1", + "255": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + "245": { + "245": "1", + "247": "-1", + "252": "-1", + "254": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "257": { + "257": "1", + "259": "-1", + "261": "1", + "263": "-1", + "268": "-1", + "269": "-1", + "270": "1", + "271": "1" + }, + "288": { + "288": "1", + "294": "-1", + "296": "-1", + "297": "-1", + "300": "1", + "303": "1" + } + }, + "relation_rank": 8, + "snapshot_terms_before_substitution": { + "11205": 61, + "11218": 63, + "11231": 73, + "11244": 68, + "11257": 64, + "11270": 75, + "11283": 64, + "11306": 62 + }, + "source_event_indices_are_zero_based": true, + "witnesses": [ + { + "cached_event": 11205, + "cached_role": 92, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11332, + "frame": 254, + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 15584, + "zero_factor": "-1/4", + "zero_role": 92 + }, + { + "cached_event": 11218, + "cached_role": 57, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11358, + "frame": 274, + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17264, + "zero_factor": "-1/4", + "zero_role": 57 + }, + { + "cached_event": 11231, + "cached_role": 81, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11384, + "frame": 619, + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17256, + "zero_factor": "-1/4", + "zero_role": 81 + }, + { + "cached_event": 11244, + "cached_role": 224, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11410, + "frame": 279, + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 17722, + "zero_factor": "1/4", + "zero_role": 224 + }, + { + "cached_event": 11257, + "cached_role": 11, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11436, + "frame": 621, + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "zero_event": 15876, + "zero_factor": "-1/4", + "zero_role": 11 + }, + { + "cached_event": 11270, + "cached_role": 240, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11462, + "frame": 280, + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17245, + "zero_factor": "1/4", + "zero_role": 240 + }, + { + "cached_event": 11283, + "cached_role": 9, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11488, + "frame": 624, + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "zero_event": 15870, + "zero_factor": "-1/4", + "zero_role": 9 + }, + { + "cached_event": 11306, + "cached_role": 288, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11514, + "frame": 281, + "relation": [ + [ + 288, + "1" + ], + [ + 294, + "-1" + ], + [ + 296, + "-1" + ], + [ + 297, + "-1" + ], + [ + 300, + "1" + ], + [ + 303, + "1" + ] + ], + "zero_event": 17580, + "zero_factor": "-1/4", + "zero_role": 288 + } + ] + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Declared zero identity" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS", + "word_payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json new file mode 100644 index 0000000000..71c57c8a90 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/SOURCES.json @@ -0,0 +1,90 @@ +{ + "schema_version": 1, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "usage": "provenance", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "usage": "provenance", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "provenance", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json new file mode 100644 index 0000000000..5b57a9e823 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/TASK.json @@ -0,0 +1,80 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "refined", + "actual_scope": "Prepare eight independent cold-helper relations, replace all eight backward centers with exact snapshots, remove eight later zero jobs, and debit eight rank-nine helper targets per backward call.", + "scope_change_reason": "This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.", + "bottleneck_link": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154290", + "budget_minutes": 240, + "stop_rule": "Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.", + "outcome": "completed", + "evidence": "WITNESS.json, WORD.json.gz, RESULT.json and the full exact verifier. Conditional kappa 0.00302666.", + "author": "Ali Romman", + "ai_assistance": "Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.", + "open_questions": [ + { + "question": "Can an independent reviewer validate the joint relation system and all inherited physical transfer premises?", + "why_it_matters": "The finite exact construction still uses the five selected framework assumptions.", + "first_step": "Check the sixteen unrestricted row identities, eight pivots and complete cost in README.md and RESULT.json.", + "blocked_by": "Independent review has not yet occurred." + }, + { + "question": "Can a different relation system improve the complete bill beyond this fixed profile?", + "why_it_matters": "The new profile ceiling is not an optimum over helper relations.", + "first_step": "Check live claims, then charge each lost target and prove an additional removed job.", + "blocked_by": "All eight backward center jobs are already removed in this construction." + } + ], + "coordination": { + "claim": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154290", + "distinct_scopes": [ + "https://github.com/CrocSwap/integer-mult-bounds/discussions/5355", + "https://github.com/CrocSwap/integer-mult-bounds/discussions/4930" + ], + "boundary": "This extends our frozen PR5377 relation to a joint rank-eight system. The original-input cache scope is released. The coded caller retains all original helpers; this package changes eight helper inputs per backward call. No shared controller or selected file changes." + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json new file mode 100644 index 0000000000..8098df4c80 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/VERIFY.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json new file mode 100644 index 0000000000..19665f9eac --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WITNESS.json @@ -0,0 +1,434 @@ +[ + { + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "event": 11332, + "frame": 254, + "cached_event": 11205, + "cached_role": 92, + "zero_event": 15584, + "zero_role": 92, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11358, + "frame": 274, + "cached_event": 11218, + "cached_role": 57, + "zero_event": 17264, + "zero_role": 57, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11384, + "frame": 619, + "cached_event": 11231, + "cached_role": 81, + "zero_event": 17256, + "zero_role": 81, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "event": 11410, + "frame": 279, + "cached_event": 11244, + "cached_role": 224, + "zero_event": 17722, + "zero_role": 224, + "copy_factor": "1", + "difference_factor": "-1/4", + "zero_factor": "1/4" + }, + { + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "event": 11436, + "frame": 621, + "cached_event": 11257, + "cached_role": 11, + "zero_event": 15876, + "zero_role": 11, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11462, + "frame": 280, + "cached_event": 11270, + "cached_role": 240, + "zero_event": 17245, + "zero_role": 240, + "copy_factor": "1", + "difference_factor": "-1/4", + "zero_factor": "1/4" + }, + { + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "event": 11488, + "frame": 624, + "cached_event": 11283, + "cached_role": 9, + "zero_event": 15870, + "zero_role": 9, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 288, + "1" + ], + [ + 294, + "-1" + ], + [ + 296, + "-1" + ], + [ + 297, + "-1" + ], + [ + 300, + "1" + ], + [ + 303, + "1" + ] + ], + "event": 11514, + "frame": 281, + "cached_event": 11306, + "cached_role": 288, + "zero_event": 17580, + "zero_role": 288, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + } +] diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..a4a58afce144541603385e9bf4e0695c54eade7c GIT binary patch literal 207650 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 @>uveO2avV>R2 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

(_a%qi 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 G-W>oS{_sZt literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py new file mode 100644 index 0000000000..cbff46fe6e --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/native.py @@ -0,0 +1,344 @@ +"""Eight prepared helpers remove sixteen paid jobs in the PR4610 backward word. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +This extends Ali Romman's one-relation PR5377 at c448d13c71908647f968b06cddb795ce7d288139. +The source word is by Cao Yifan. The row convention and scalar allowance +follow the credited native work of Cinna Davis and zxv. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from hashlib import sha1, sha256 +from pathlib import Path +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz' +PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +WITNESSES = json.loads((HERE / 'WITNESS.json').read_text(encoding='utf-8')) +COUNT = 8 +OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8} +NEW_PAID = dict(OLD_PAID) +NEW_PAID[1] -= COUNT +NEW_PAID.pop(8) +OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326} + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def encode(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encode(v) for v in x] + return x + + +def load(relative, name): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(): + pins = read(HERE / 'SOURCES.json') + for row in pins['files']: + if row['usage'] != 'input': + continue + p = ROOT + for part in Path(row['path']).parts: + p /= part + need(not p.is_symlink(), 'No source aliases') + raw = p.read_bytes() + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob') + need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload') + return pins + + +def span(basis): + out = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate') + out |= {v ^ vector for v in tuple(out)} + need(len(out) == 2 ** len(basis), 'Independent frame basis') + return out + + +def add(dst, src, q): + for k, v in tuple(src.items()): + value = dst.get(k, Q(0)) + q * v + if value: + dst[k] = value + else: + dst.pop(k, None) + + +def allowance(g): + if g[0] in ('clear', 'copy'): + return 2 + q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:]) + n, d = abs(q.numerator), q.denominator + need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +def relation_system(): + """Find exact independent pivots and eliminate all other pivot columns.""" + basis = {} + need(len(WITNESSES) == COUNT, 'Eight declared witnesses') + for witness in WITNESSES: + pairs = witness['relation'] + row = {h: Q(q) for h, q in pairs} + need(len(row) == len(pairs) and all(224 <= h < 632 and q for h, q in row.items()), 'Distinct helper coefficients') + for pivot, prior in sorted(basis.items()): + add(row, prior, -row.get(pivot, Q(0))) + need(row, 'Independent helper relations') + pivot = min(row); scale = row[pivot] + row = {h: q / scale for h, q in row.items()} + for prior in basis.values(): + add(prior, row, -prior.get(pivot, Q(0))) + basis[pivot] = row + need(len(basis) == COUNT, 'Eight paid helper outputs removed') + for pivot, row in basis.items(): + need(all(row.get(h, 0) == int(h == pivot) for h in basis), 'Reduced pivot columns') + return dict(sorted(basis.items())) + + +BASIS = relation_system() + + +def construct(source): + c = source['canonical']; old = source['programs']['backward'] + all_helpers = {h for x in WITNESSES for h, _ in x['relation']} + need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in all_helpers), 'Every relation uses cold full-ended helpers') + snapshots, centers, zeros = {}, {}, {} + for slot, x in enumerate(WITNESSES, 1): + frame, role = x['frame'], x['cached_role'] + need(old[x['event']] == ['center', 0, 0, frame, 8], 'Exact source center') + event = old[x['cached_event']] + need(event[0] == 'climb' and event[2] == role and event[4] == frame, 'Exact snapshot source') + need(old[x['zero_event']] == ['climb', 'warp_retimed', x['zero_role'], frame, 1, 1], 'Exact zero source job') + need(x['cached_event'] < x['event'] < x['zero_event'] and Q(x['copy_factor']) == 1, 'Snapshot chronology and COPY coefficient') + snapshots[x['cached_event']] = (slot, x) + centers[x['event']] = (slot, x) + zeros[x['zero_event']] = x + need(len(snapshots) == len(centers) == len(zeros) == COUNT, 'Distinct replacement sites') + word = [] + for pivot, row in BASIS.items(): + word.append(['scalar', ['clear', ['L', pivot]], 0]) + for h, q in sorted(row.items()): + if h != pivot: + word.append(['scalar', ['add', ['L', pivot], ['L', h], -q.numerator, q.denominator], 0]) + for index, event in enumerate(old): + if index in centers: + slot, x = centers[index]; f = x['frame'] + word += [['scalar', ['clear', ['C', 0]], f], + ['scalar', ['copy', ['C', 0], ['C', slot]], f], + ['scalar', ['clear', ['C', slot]], f]] + elif index in zeros: + x = zeros[index] + word.append(['zero_retag', ['L', x['zero_role']], x['frame'], 1]) + else: + word.append(deepcopy(event)) + if index in snapshots: + slot, x = snapshots[index]; f = x['frame'] + word += [['scalar', ['clear', ['C', slot]], f], + ['scalar', ['copy', ['C', slot], ['L', x['cached_role']]], f]] + word += [['scalar', ['clear', ['L', h]], 1] for h in BASIS] + physical = deepcopy(c); physical.pop('local_profile') + return {'schema': 'joint-helper-relations-word/1', 'canonical': physical, + 'relation_basis': encode(BASIS), + 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID}, + 'owned': {'forward': [['C', 0]], 'backward': [['C', i] for i in range(COUNT + 1)] + [['L', h] for h in BASIS]}, + 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', i) for i in range(1, COUNT + 1)} | {('L', h) for h in BASIS} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and any(dst == ('L', x['zero_role']) and (old, new) == (x['frame'], 1) for x in WITNESSES), 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == COUNT * int(specialized), 'All eight zero identities checked') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 632 - COUNT if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + """Check unrestricted source identities with the predecessor row engine.""" + v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'joint_relation_source_rows') + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)); saved = {}; checked = [] + for index, e in enumerate(source['programs']['backward']): + if e[0] == 'scalar': + g = e[1]; dst = tuple(g[1]) + if g[0] == 'clear': rows[dst] = {} + elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])]) + elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()} + else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4])) + elif e[0] == 'warp': + dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True) + for x in WITNESSES: + delta = {(('L', h), ()): Q(q) for h, q in x['relation']} + if index == x['cached_event']: + saved[index] = dict(rows['L', x['cached_role']]) + if index == x['event']: + diff = dict(rows['C', 0]); v.add(diff, saved[x['cached_event']], -Q(x['copy_factor'])) + need(diff == {k: Q(x['difference_factor']) * q for k, q in delta.items()}, 'Independent exact center minus snapshot identity') + checked.append(('center', index)) + if index == x['zero_event']: + need(rows['L', x['zero_role']] == {k: Q(x['zero_factor']) * q for k, q in delta.items()}, 'Independent exact zero-site row identity') + checked.append(('zero', index)) + need(len(checked) == 2 * COUNT, 'Sixteen unrestricted source identities') + need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints') + return {'source_event_indices_are_zero_based': True, 'witnesses': WITNESSES, + 'relation_rank': COUNT, 'owned_pivots': list(BASIS), 'reduced_basis': BASIS, + 'snapshot_terms_before_substitution': {i: len(row) for i, row in saved.items()}, + 'checked': checked} + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for x in WITNESSES for i in (x['event'], x['zero_event'])) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the sixteen proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py new file mode 100644 index 0000000000..2868905a16 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/price.py @@ -0,0 +1,198 @@ +"""Complete p16 bill and finite compiler for eight joint helper relations. + +The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna +Davis's PR4470 controller, zxv's completion and logarithmic majorant, and +Jacob Alan Sussman's mixed-target recursion. Apache-2.0. +Ali Romman, with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS, COUNT + +KAPPA = Q('.00302666') +TESTED = Q('.00302667') +PREVIOUS = Q('.0030217758') +OLD_ROOT_UPPER = Q('.00302177587078') + + +def controller(): + """Check the literal p16 word and both rational boundary programs.""" + word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json') + need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller') + zero = (0,) * 34 + def plus(dst, src, q): + for k, v in src.items(): + value = dst.get(k, Q(0)) + q * v + if value: dst[k] = value + else: dst.pop(k, None) + def shifted(row, term, sign=1): + return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row] + for side in ('left', 'right'): + matrix = [[Q(i == j) for j in range(32)] for i in range(32)] + for e in word['boundaries'][side + '_program']: + if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]] + elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]] + else: + need(e[0] == 'ADD', 'Boundary scalar opcode') + matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])] + need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program') + rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']] + for e in word['physical_events']: + if e[0] in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, back = e + x, y = 2 * pair, 2 * pair + 1 + if back: x, y = y, x + term = (1 if back else -1,) + (0,) * 33 + for dst, src in zip(rows[y], shifted(rows[x], term)): + plus(dst, src, Q(-1 if back else 1)) + if e[0] == 'LOCAL': + term = (0,) + tuple(int(s == stage) for s in range(33)) + for r in (x, y): rows[r] = shifted(rows[r], term) + elif e[0] == 'IDLE': + term = (0,) + tuple(int(s in e[2]) for s in range(33)) + for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term) + elif e[0] == 'ADD': + for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3])) + else: + need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode') + rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1) + out = [[{} for _ in range(32)] for _ in range(32)] + for i, row in enumerate(word['boundaries']['left']): + for k, q in enumerate(row): + if Q(q): + for j in range(32): plus(out[i][j], rows[k][j], Q(q)) + expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)] + need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors') + return word + + +def assemble(native, word): + T, P = Counter(), Counter() + orientations = Counter(); thin = 0 + for e in word['physical_events']: + if e[0] == 'LOCAL': + direction = 'backward' if e[3] else 'forward' + orientations[direction] += 1 + T.update(native[direction]['helpers']); P.update(native[direction]['paid']) + elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112 + elif e[0] == 'IDLE': P[8 * len(e[2])] += 224 + main = Counter() + for term in word['diagonal']: + need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target') + main[1 + 8 * sum(term[1:])] += 112 + T.update(main) + need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation') + # This second census uses the source invoice and the complete local deltas. + check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()}) + check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16 * COUNT + check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()}) + check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16 * COUNT; check_P[8] -= 16 * COUNT + need(T == check_T and P == check_P, 'Independent full invoice substitution') + need(sum(T.values()) == 10800 and sum(P.values()) == 64148, 'Complete productive and paid counts') + need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus') + return T, P + + +def run(native): + word = controller(); T, P = assemble(native, word) + prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json') + need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing') + prior_T = Counter({int(r): n for r, n in prior['targets'].items()}) + prior_P = Counter({int(r): n for r, n in prior['paid'].items()}) + prior_T[9] -= 16 * COUNT; prior_P[1] -= 16 * COUNT; prior_P[8] -= 16 * COUNT + need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill') + E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals') + other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals') + def margin(c): + t, p = E.moment(T, 1 - c), E.moment(P, 1 - c) + return t[0] - p[1], t[1] - p[0] + need(margin(Q('.00302238736348'))[0] > 0, 'Changed invoice beats the PR5377 raw crossing') + need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**9); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # Charge both routes for each of eight snapshots and eight owned helpers. + # The eight owned helpers use existing physical slots. + routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4 * COUNT) * 1000 + need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'kappa': KAPPA, 'kappa_decimal': '.00302666', 'gain_over_PR4610': KAPPA - PREVIOUS, + 'gain_over_PR5377': KAPPA - Q('.00302235'), 'PR5377_raw_root_upper': Q('.00302238736348'), + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': COUNT, 'owned_slots_backward': 2 * COUNT + 1}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py new file mode 100644 index 0000000000..3f7eb9359a --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-joint-relations-20261023/verify.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Replay the joint-relation native word and its complete conditional kappa. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +Read README.md for the source credit and inherited proof obligations. +""" +from hashlib import sha256 +import argparse +import gzip +import json +from pathlib import Path +import sys +sys.dont_write_bytecode = True +import native as N +import price + + +def run(): + N.authenticate() + source = N.read(N.ROOT / N.SOURCE) + candidate = N.construct(source) + c = candidate['canonical'] + before, after = {}, {} + for direction in ('forward', 'backward'): + back = direction == 'backward' + before[direction] = N.replay(c, source['programs'][direction], back, False) + after[direction] = N.replay(c, candidate['programs'][direction], back, back) + N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census') + N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile') + helpers = dict(N.OLD_HELPERS) + if back: helpers[9] -= N.COUNT + N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census') + identities = N.independent_source_identities(source) + phase = N.phase_inheritance(source, candidate) + controls = N.controls(c, candidate) + arithmetic = price.run(after) + data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\n').encode() + result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS', + 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(), + 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities, + 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic, + 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'}) + return data, result + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.') + ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.') + args = ap.parse_args() + data, result = run() + if args.write: + (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0)) + (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + else: + N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word') + N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result') + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'gain_over_PR5377', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-rebuild/architecture/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py new file mode 100644 index 0000000000..340e1f0ffb --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +"""Exact endpoint refill conditional on the source PR4359 construction. + +Apache-2.0. Substantial OpenAI assistance. The mixed inventory and elementary +function enclosure are zxv's PR4359; mixed-target flow is Jacob Alan Sussman's +Theorem 1G. Outer formulas retain the attribution in PR4359 outer_parameters.py. +This file checks arithmetic, not the native or all-size proof hypotheses. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +PREFIX = Path('research/kappa-rebuild') +OLD_BASELINE = Q('0.001730970419199163702738') +KAPPA = Q('0.00230509') +TESTED = Q('0.00230509019') +ROOT_UPPER = Q('0.002306') + + +def need(value, message): + if not value: + raise AssertionError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def ceil(value): + value = Q(value) + return -((-value.numerator) // value.denominator) + + +def encode(value): + if isinstance(value, Q): + return str(value) + if isinstance(value, dict): + return {str(k): encode(v) for k, v in value.items()} + if isinstance(value, (tuple, list)): + return [encode(v) for v in value] + return value + + +def family(kappa, tested): + """One explicit slack family approaching the same source mixed root.""" + need(Q(0) < kappa < tested < ROOT_UPPER, 'Positive strictly ordered savings') + d = (tested-kappa)/7 + return {'kappa': kappa, 'tested_saving': tested, + 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, + 'bit_saving': Q('0.0027'), 'epsilon': 1-d, 'beta': 1-3*d, + 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + + +def ledger(p): + """Recompute all 54 named PR4359 checks with freely supplied parameters.""" + kappa, b, a, q = (p[key] for key in ('kappa', 'b', 'a', 'q')) + epsilon, beta, r0, stop, layout = (p[key] for key in + ('epsilon', 'beta', 'r0', 'stop', 'layout')) + sigma, tau = 1-b, 1-a + internal = tau+(1-stop)*max(sigma-tau, Q(0)) + leaf = sigma+stop*(1-sigma) + lam, c = 1-(q+a)/2, Q(3, 32) + xi, key = epsilon*(1+q)-c+layout, beta+1-epsilon + margins = { + 'main_transform': epsilon*q, + 'global_coordinate_router': a, + 'fused_gaussian': 1-epsilon+q*beta, + 'group_bit_router': 1-epsilon+a*beta, + 'group_scans': 1-epsilon+beta, + 'boundary_algebraic_matrix': c+xi-epsilon, + 'sparse_union_movement': xi+Q(1, 2)-epsilon, + 'polynomial_products': epsilon, + 'microbox_face_corrections': 1-(epsilon+beta+48-128+2), + } + checks = { + 'actual_bit_above_effective': p['bit_saving']-a, + 'complex_above_effective': b-a, + 'q_positive': q, 'complex_endpoint': b-q, 'q_below_effective': a-q, + 'stop_positive': stop, 'stop_below_one': 1-stop, + 'leaf_saving_above_effective': (1-stop)*b-a, + 'q_below_internal': 1-internal-q, 'q_below_leaf': 1-leaf-q, + 'lambda_above_tau': lam-tau, 'lambda_above_sigma': lam-sigma, + 'lambda_above_internal': lam-internal, + 'lambda_prime_above_lambda': 1-q-lam, + 'lambda_prime_above_leaf': 1-q-leaf, + 'epsilon_positive': epsilon, 'epsilon_below_one': 1-epsilon, + 'cap_above_band': xi-Q(1, 2), 'cap_below_cell': epsilon-xi, + 'group_positive': beta, 'group_below_dimension': epsilon-beta, + 'support_router_span': 1-beta, + 'group_gauge_power_slack': 1-(2*xi-2)-r0-beta, + 'actual_logarithmic_group_guard': 1-(2*xi-2)-beta, + 'global_gamma_power_slack': 1-epsilon-r0, + 'actual_logarithmic_gamma_guard': 1-epsilon, + 'alpha_logarithm_absorption': r0, + 'group_key_fits_record': 1-key, + 'membership_arithmetic_fits_record': 1-beta-2*(1-epsilon), + 'microbox_halo_volume': 128-48-beta, + 'positive_layout_slack': layout, + 'short_record_fallback': epsilon-a, + 'complex_below_one_over_32': Q(1, 32)-b, + 'strassen_integer_power_gap': Q(2**45-7**16), + 'theta_positive_polynomial_power': Q(2), + 'cap_below_phase_cell_power': 2-xi, + 'halo_covers_generic_inverse_radius': Q(48-43), + 'union_tag_work_per_visit_fits_record': 1-beta, + 'union_header_fits_record': 1-beta, + 'source_axis_superpolynomial': 1-epsilon, + 'gaussian_above_main': margins['fused_gaussian']-margins['main_transform'], + 'new_complex_uniform_saving_above_b': p['complex_uniform_saving']-b, + 'improvement_over_user_baseline': kappa-OLD_BASELINE, + 'new_semantic_guard_with_C1_one': 1-epsilon, + 'fine_prime_halo_umbrella': 10-(2*2+2+Q(1, 2)), + } + checks.update({name+'_above_kappa': value-kappa for name, value in margins.items()}) + # These are the additional functional conditions in the independent + # PR4359 outer_transfer_audit.py, beyond the 54-row parameter ledger. + functional = { + 'new_semantic_group_guard': 1-beta, + 'new_BIT_row_stock_sublinear_in_active_group': beta*(1-Q(3, 1000)), + 'fixed_halo_explicit_metadata_branch': 128-48-epsilon-beta-1, + } + return {'parameters': dict(p, cap_xi=xi, lambda_=lam, lambda_prime=1-q), + 'margins': margins, 'strict_checks': checks, 'functional_checks': functional} + + +def compiler_rank(E, targets, paid, tested, uniform): + """The original sufficient bound, re-instantiated for the new exponent.""" + m, kmin, rmax = max(targets), min(targets), max(paid) + need((m, kmin, rmax) == (57, 6, 5), 'Pinned complex separation') + t, z = 1-tested, 1-uniform + z0, h = (t+z)/2, Q(1, 10) + delta = z0-t + need(0 < t < z0 < z < 1, 'Compiler exponent order') + need(5**10 < 6**9 and 57 < 2**10, 'Exact source rank bounds') + need(z0 > Q(1, 2) and (1-z0)*E.log_interval(m)[1] < E.log_interval(2)[0], + 'Original eta strictly exceeds 1/4') + H0 = ceil((3+4*delta)/(h*delta)) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= m.bit_length() and H0*h*delta >= 3+4*delta, 'Induction starts') + need(H1*(z-z0) > H0*(1-z0), 'Strict winning uniform rank') + need((H0-1)*h*delta < 3+4*delta, 'Reject one lower threshold exponent') + need((H1-1)*(z-z0) <= H0*(1-z0), 'Reject one lower final exponent') + return {'t': t, 'z0': z0, 'z': z, 'theta_upper': Q(9, 10), + 'H0': H0, 'H1': H1, 'N_encoding': '2^H1', + 'strict_final_gap': H1*(z-z0)-H0*(1-z0), + 'winning_word_materialized': False, + 'bound': 'Original sufficient inequality; a sharper bound is separate.'} + + +def run(source_root): + base = source_root/PREFIX + interval_path = base/'architecture/mixed_target_probe.py' + spec = importlib.util.spec_from_file_location('pr4359_moment', interval_path) + E = importlib.util.module_from_spec(spec) + spec.loader.exec_module(E) + cover = read(base/'controller/P3-NATIVE-COVER.json.gz')['cover'] + targets = {int(k): int(v) for k, v in cover['targets'].items()} + paid = {int(k): int(v) for k, v in cover['paid'].items()} + need(targets == {6: 192, 7: 56, 8: 93, 9: 1229, 25: 448, 57: 224}, + 'Exact source productive inventory') + need(paid == {1: 17623, 2: 5065, 3: 1738, 4: 714, 5: 254}, + 'Exact source paid inventory') + signed = Counter(targets) + signed.subtract(paid) + need(sum(k*v for k, v in signed.items()) == 224, 'Rank-one surplus') + bracket = {'lower': E.moment(signed, TESTED), 'upper': E.moment(signed, ROOT_UPPER)} + need(bracket['lower'][0] > 0 and bracket['upper'][1] < 0, + 'Strict mixed test and upper root bound') + + original = read(base/'controller/OUTER-PARAMETERS.json')['outer'] + old = ledger({'kappa': Q('0.0023'), 'complex_uniform_saving': Q('0.002304'), + 'b': Q('0.002303'), 'a': Q('0.0023025'), 'q': Q('0.002302'), + 'bit_saving': Q('0.0027'), 'epsilon': Q('0.99999'), + 'beta': Q('0.99997'), 'r0': Q(1, 10**6), + 'stop': Q(1, 10**8), 'layout': Q(1, 10**6)}) + for group in ('margins', 'strict_checks'): + frozen = {key: Q(value['rational']) for key, value in original[group].items()} + need(old[group] == frozen, 'Exact reproduction of every old '+group) + p = family(KAPPA, TESTED) + result = ledger(p) + need(all(v > 0 for v in result['strict_checks'].values()), 'All 54 new outer predicates') + need(all(v > 0 for v in result['functional_checks'].values()), 'Additional functional predicates') + need(min(result['margins'].values()) == result['margins']['main_transform'], + 'Main transform remains limiting') + need(result['parameters']['cap_xi'] == Q(29, 32)+(1-p['d'])*p['q'], + 'Cofinal cap simplification') + controls = {} + for label, updates in [('closed_epsilon_gap', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': Q('0.002306')}), + ('BIT_below_effective', {'bit_saving': OLD_BASELINE}), + ('no_complex_slack', {'complex_uniform_saving': p['b']})]: + tested = ledger(dict(p, **updates)) + failures = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failures, 'Mutation rejected: '+label) + controls[label] = failures + need(E.moment(signed, Q('0.004'))[1] < 0, 'Unsupported mixed target is rejected') + inputs = [interval_path, base/'controller/P3-NATIVE-COVER.json.gz', + base/'controller/OUTER-PARAMETERS.json'] + return encode({'schema': 'pr4359-cofinal-outer-refill/1', + 'status': 'PASS_EXACT_CONDITIONAL_ENDPOINT_REFILL', + 'kappa': KAPPA, 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'unchanged_paid': paid, 'unchanged_targets': targets, + 'mixed_test_saving': TESTED, 'mixed_test_margin': E.show(bracket['lower']), + 'root_upper_test': ROOT_UPPER, 'root_upper_margin': E.show(bracket['upper']), + 'old_ledger_crosscheck': {'matched_savings': len(old['margins']), + 'matched_checks': len(old['strict_checks'])}, + 'outer': result, 'limiting_margin': min(result['margins'].values())-KAPPA, + 'compiler': compiler_rank(E, targets, paid, TESTED, p['complex_uniform_saving']), + 'negative_controls': controls, + 'source_sha256': {str(p.relative_to(source_root)): sha256(p.read_bytes()).hexdigest() + for p in inputs}, + 'scope': 'Conditional arithmetic and specified finite rank. The PR4359 native, compiler, cover, precision, fixed-tape and outer hypotheses remain premises; no full theorem or practical word is certified.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=HERE/'source') + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = run(args.source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'limiting_margin', 'compiler')}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py new file mode 100644 index 0000000000..7ab20e1487 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/check_research_commit.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +"""Compare package working bytes with a commit before publishing hash receipts. + +This is a byte-transport preflight, not a research verifier or CI-equivalence +claim. Prepared for ywz65 with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import hashlib +import json +import os +import re +import subprocess +from contextlib import closing +from pathlib import Path + +from research_package import ( + canonical_relative_path, + git, + git_blobs, + git_source_env, + relative_file, + require, + source_pin, +) + +ROOT = Path(__file__).resolve().parents[1] +MAX_SOURCE_METADATA_BYTES = 16 * 1024 * 1024 +MAX_SOURCE_ROWS = 100000 +MAX_SOURCE_COMMITS = 256 + + +def history_git(root, *args): + env = git_source_env() + env['GIT_GRAFT_FILE'] = os.devnull + env.pop('GIT_SHALLOW_FILE', None) + return subprocess.run(['git', '--no-replace-objects', *args], cwd=root, env=env, + capture_output=True, check=False, timeout=30) + + +def publication_sources(root, package, commit): + """Read bounded, immutable metadata without local replacements or grafts.""" + spec = commit + ':' + package + '/SOURCES.json' + size = history_git(root, 'cat-file', '-s', spec) + require(size.returncode == 0 and size.stdout.strip().isdigit(), 'missing publication SOURCES.json') + require(int(size.stdout) <= MAX_SOURCE_METADATA_BYTES, 'source metadata byte limit exceeded') + payload = history_git(root, 'cat-file', 'blob', spec) + require(payload.returncode == 0 and len(payload.stdout) == int(size.stdout), + 'incomplete publication SOURCES.json') + return json.loads(payload.stdout) + + +def source_history(root, package, commit): + """Check committed pins against raw publication ancestry, not local refs. + + This is declared history availability, not full SOURCES.json validation + or discovery of imports, archive references or runtime dependencies. + """ + sources = publication_sources(root, package, commit) + require(isinstance(sources, dict), 'SOURCES.json must be an object') + base = sources.get('base_commit') + require(isinstance(base, str) and re.fullmatch(r'[0-9a-f]{40,64}', base), + 'SOURCES.json base_commit must be an exact commit ID') + rows = sources.get('files') + require(isinstance(rows, list), 'SOURCES.json files must be a list') + require(len(rows) <= MAX_SOURCE_ROWS, 'source row limit exceeded') + commits = {base} + for row in rows: + require(isinstance(row, dict) and isinstance(row.get('path'), str), + 'SOURCES.json files rows need a string path') + canonical_relative_path(row['path']) + commits.add(source_pin(row, base).split(':', 1)[0]) + require(len(commits) <= MAX_SOURCE_COMMITS, 'source commit limit exceeded') + shallow = history_git(root, 'rev-parse', '--is-shallow-repository') + require(shallow.returncode == 0, 'cannot inspect Git history') + require(shallow.stdout.strip() == b'false', 'source-history check requires full Git history') + for pin in sorted(commits): + resolved = history_git(root, 'rev-parse', '--verify', '--end-of-options', pin + '^{commit}') + require(resolved.returncode == 0 and resolved.stdout.strip() == pin.encode('ascii'), + 'unavailable source commit: ' + pin) + ancestor = history_git(root, 'merge-base', '--is-ancestor', pin, commit) + require(ancestor.returncode in (0, 1), + 'Git ancestry check failed: ' + ancestor.stderr.decode('utf-8', errors='replace').strip()) + require(ancestor.returncode == 0, + 'source pin is not an ancestor of publication ' + commit + ': ' + pin + + '; a separate cached branch/object is not publication history') + return sorted(commits) + + +def check(root, package, ref='HEAD', check_source_history=False): + require(re.fullmatch(r'research/[a-z0-9][a-z0-9-]*', package), 'package must be research/') + manifest = json.loads(relative_file(root, package+'/VERIFY.json').read_text(encoding='utf-8')) + require(isinstance(manifest, dict), 'VERIFY.json must be an object') + inputs = manifest.get('inputs') + require(isinstance(inputs, list), 'declare input paths in VERIFY.json') + for name in inputs: + canonical_relative_path(name) + commit = git(root, 'rev-parse', '--verify', '--end-of-options', ref+'^{commit}').decode('ascii').strip() + # Literal pathspecs keep wildcard filenames from selecting other files. + records = git(root, '--literal-pathspecs', 'ls-tree', '-r', '-z', '--full-tree', + commit, '--', package, *inputs).split(b'\0') + entries = {} + for record in records: + if not record: + continue + header, raw_name = record.split(b'\t', 1) + mode, kind, obj = header.split() + name = raw_name.decode('utf-8') + require(mode in (b'100644', b'100755') and kind == b'blob', + 'commit contains a non-regular file: '+name) + entries[name] = obj.decode('ascii') + # New nonignored local checkers must not disappear from the publication. + local = git(root, '--literal-pathspecs', 'ls-files', '-c', '-o', '--exclude-standard', + '-z', '--', package).decode('utf-8').split('\0') + expected = {name for name in local if name} | set(inputs) + require(set(entries) == expected, 'working/commit file inventory differs: '+ + ', '.join(sorted(set(entries) ^ expected))) + names = sorted(entries) + require(names, 'empty package inventory') + with closing(git_blobs(root, [entries[name] for name in names])) as blobs: + # Advance the blob iterator once past its last yield, so its final + # Git exit-status check runs before reporting success. + for (_, committed), name in zip(blobs, names): + working = relative_file(root, name).read_bytes() + require(working == committed, + 'working/commit bytes differ: '+name+' (working SHA256 '+ + hashlib.sha256(working).hexdigest()+', commit SHA256 '+ + hashlib.sha256(committed).hexdigest()+')') + result = {'commit':commit, 'files':len(names), 'package':package} + if check_source_history: + result['source_history_commits'] = source_history(root, package, commit) + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--package', required=True) + parser.add_argument('--ref', default='HEAD', help='commit to publish; default HEAD') + parser.add_argument('--check-source-history', action='store_true', + help='also require declared SOURCES.json pin commits in publication ancestry; full history only') + args = parser.parse_args() + try: + result = check(ROOT, args.package, args.ref, args.check_source_history) + except (OSError, ValueError, TypeError, subprocess.SubprocessError) as exc: + parser.exit(1, str(exc)+'\n') + print('PASS_RESEARCH_COMMIT_BYTES '+json.dumps(result)) + + +if __name__ == '__main__': + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py new file mode 100644 index 0000000000..ef9b52c392 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/capsule-v1/snapshot/scripts/research_package.py @@ -0,0 +1,1022 @@ +#!/usr/bin/env python3 +"""Validate and replay explicitly registered research packages, never every verify.py. + +Douglas Colkitt, with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import errno +from contextlib import closing, contextmanager +from itertools import chain +import hashlib +import importlib.metadata +import json +import os +from pathlib import Path, PurePosixPath +import re +import signal +import stat +import subprocess +import sys +import tempfile +import threading + +ROOT = Path(__file__).resolve().parents[1] +GIT_BLOB_RESPONSE_TIMEOUT = 90 + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def canonical_relative_path(name): + # Git's changed paths use one repository-relative POSIX spelling. Accepting + # aliases here would let a declared input evade the planner's exact match. + require(isinstance(name, str), "canonical relative path must be a string") + path = PurePosixPath(name) + require(bool(path.parts) and not path.is_absolute() and ".." not in path.parts + and "\\" not in name and path.as_posix() == name, + "use a canonical repository-relative POSIX path: " + name) + return path + + +def symlink_free_relative_path(root, name): + """Reject symlink components without requiring a deleted input to exist. + + Git reports changes under the target's path, not a symlink alias declared + by its consumer. Inspect existing components below the repository root; + the checkout must remain stable during planning, validation and replay. + """ + parts = canonical_relative_path(name).parts + current = root + for part in parts: + current = current / part + try: + mode = current.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + break + require(not stat.S_ISLNK(mode), "symlink in repository-relative path: " + name) + return root / name + + +def relative_file(root, name): + result = symlink_free_relative_path(root, name) + require(result.resolve().is_relative_to(root.resolve()) and result.is_file(), + "missing or external file: " + name) + return result + + +# Adapted from the package-local policy in +# research/t74-2530-source-partner-audit/audit_common.py (Apache-2.0). +# Keep repository configuration and linked-worktree .git discovery intact; +# inherited shell overrides must not choose a different repository or index. +_GIT_REDIRECT_VARS = frozenset(( + "GIT_DIR", "GIT_WORK_TREE", "GIT_INDEX_FILE", "GIT_OBJECT_DIRECTORY", + "GIT_ALTERNATE_OBJECT_DIRECTORIES", "GIT_NAMESPACE", "GIT_CEILING_DIRECTORIES", + "GIT_COMMON_DIR", "GIT_CONFIG_PARAMETERS", "GIT_CONFIG_COUNT", +)) +_GIT_CONFIG_PREFIXES = ("GIT_CONFIG_KEY_", "GIT_CONFIG_VALUE_") + + +def git_source_env(): + """Use cwd's repository and stored objects, without changing the parent. + + Git can ignore cwd when inherited selection variables point elsewhere. + Config-injection variables can also redirect worktree/index operations. + This policy is only for Git metadata/source subprocesses, not verifiers. + """ + env = {name: value for name, value in os.environ.items() + if name not in _GIT_REDIRECT_VARS and not name.startswith(_GIT_CONFIG_PREFIXES)} + # Replacement refs can report an original ID while returning other bytes. + env["GIT_NO_REPLACE_OBJECTS"] = "1" + return env + + +def git(root, *args): + return subprocess.run(["git", *args], cwd=root, env=git_source_env(), + capture_output=True, check=True).stdout + + +def tracked_input_paths(root): + """Use HEAD spelling, never case folding, filesystem resolution or the index. + + Staged/untracked files are not replay inputs until committed. NUL framing + preserves Git filenames containing whitespace, including CR and LF. + """ + raw = subprocess.run( + ["git", "ls-tree", "-r", "--name-only", "-z", "HEAD"], cwd=root, env=git_source_env(), + capture_output=True, check=True, timeout=30).stdout + return frozenset(name.decode("utf-8") for name in raw.split(b"\0") if name) + + +def require_tracked_input(name, paths): + canonical_relative_path(name) + require(name in paths, "use an exact Git-tracked input path from HEAD: " + name) + + +def git_source_rows(root, base, names): + """Read one pinned object at a time through one Git process; no persistent cache. + + Each request is consumed before the next is sent. This avoids pipe deadlocks + and retains the old one-blob memory bound, even for large source archives. + Newline paths and non-blob objects retain the legacy Git-show semantics. + The caller must close this generator if source validation fails mid-stream. + """ + with subprocess.Popen(["git", "cat-file", "--batch"], cwd=root, env=git_source_env(), + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) as process: + try: + for name in names: + expression = base + ":" + name + if "\n" in expression or "\r" in expression: + yield git(root, "rev-parse", expression).decode().strip(), git(root, "show", expression) + continue + process.stdin.write(expression.encode("utf-8") + b"\n") + process.stdin.flush() + header = process.stdout.readline().rstrip(b"\n").split(b" ") + require(len(header) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", header[0]) + and header[2].isdigit(), "missing or invalid Git source: " + name) + size = int(header[2]) + payload = process.stdout.read(size) + require(len(payload) == size and process.stdout.read(1) == b"\n", + "truncated Git source: " + name) + if header[1] != b"blob": + payload = git(root, "show", expression) + yield header[0].decode("ascii"), payload + process.stdin.close() + code = process.wait(timeout=90) + require(code == 0, "Git source reader failed: " + process.stderr.read().decode("utf-8", errors="replace")) + finally: + if not process.stdin.closed: + process.stdin.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +class _UnsupportedNulBatch(Exception): + """Git rejected the initial NUL-mode request before yielding any source.""" + + +def _closed_stdin_error(error): + # Windows can report EINVAL instead of EPIPE when a child closes stdin. + # This classifies the pipe error only; the retry still requires exit 129. + return (isinstance(error, BrokenPipeError) + or (os.name == "nt" and error.errno == errno.EINVAL)) + + +def _stop_git_blob_process(process): + """Stop this reader's owned POSIX group even after its leader exits.""" + try: + if os.name == "posix": + # Reap an exited leader first: signaling a group containing only + # its unreaped zombie can report EPERM on macOS. A surviving + # descendant keeps the group alive after the leader is reaped. + process.poll() + os.killpg(process.pid, signal.SIGKILL) + else: + process.kill() + except ProcessLookupError: + pass + + +@contextmanager +def _git_blob_response_deadline(stop): + """Bound one response, excluding time spent by its consumer. + + On POSIX the reader owns a session: ordinary descendants retaining a pipe + are stopped with the leader. Escaped sessions and separate git() calls are + outside this contract; non-POSIX retains the direct-child deadline. + """ + expired = threading.Event() + + def terminate(): + expired.set() + stop() + + timer = threading.Timer(GIT_BLOB_RESPONSE_TIMEOUT, terminate) + timer.start() + try: + yield + finally: + timer.cancel() + timer.join() + if expired.is_set(): + raise subprocess.TimeoutExpired("git cat-file blob response", GIT_BLOB_RESPONSE_TIMEOUT) + + +def _git_blob_batch(root, specs, nul): + argv = ["git", "cat-file", "--batch"] + (["-z"] if nul else []) + # Usage diagnostics from the unsupported-option probe are expected. Avoid + # a second pipe that could block while we consume the framed stdout reply. + with subprocess.Popen(argv, cwd=root, env=git_source_env(), stdin=subprocess.PIPE, + stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, + start_new_session=(os.name == "posix")) as process: + stopped = False + + def stop(): + nonlocal stopped + if not stopped: + _stop_git_blob_process(process) + stopped = True + + try: + for index, spec in enumerate(specs): + require("\0" not in spec, "invalid Git object request") + request = spec + if not nul and ("\n" in spec or "\r" in spec): + # Resolve one literal argument, never split a path into requests. + request = git(root, "rev-parse", "--verify", "--end-of-options", spec).decode("ascii").strip() + require(re.fullmatch(r"[0-9a-f]{40,64}", request), "invalid Git object ID") + with _git_blob_response_deadline(stop): + try: + process.stdin.write(request.encode("utf-8") + (b"\0" if nul else b"\n")) + process.stdin.flush() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + header = b"" + else: + header = process.stdout.readline() + if nul and index == 0 and not header and process.wait(timeout=90) == 129: + raise _UnsupportedNulBatch(spec) + fields = header.rstrip(b"\n").split(b" ") + require(len(fields) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", fields[0]) + and fields[1] == b"blob" and fields[2].isdigit(), + "missing or non-blob Git source: " + spec) + size = int(fields[2]) + pinned = process.stdout.read(size) + require(len(pinned) == size and process.stdout.read(1) == b"\n", + "incomplete Git blob response: " + spec) + yield fields[0].decode("ascii"), pinned + process.stdin.close() + require(process.wait(timeout=90) == 0, "Git source reader failed") + finally: + # Terminate ordinary descendants before closing buffered pipes. This + # also covers successful leader exit and an early generator close. + if os.name == "posix": + stop() + # Option rejection can close stdin before our first write/flush. + try: + process.stdin.close() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + process.stdout.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +def git_blobs(root, specs): + """Stream exact blobs, retaining the one-process NUL protocol on newer Git. + + Git without -z rejects it with usage status 129. Retry only before any + response, replaying the consumed first request through the line protocol. + The fallback resolves CR/LF paths to object IDs before requesting content. + The caller must close this iterator if validation stops before exhaustion. + """ + specs = iter(specs) + sentinel = object() + first = next(specs, sentinel) + if first is sentinel: + return + with closing(_git_blob_batch(root, chain((first,), specs), nul=True)) as rows: + try: + yield from rows + except _UnsupportedNulBatch as exc: + with closing(_git_blob_batch(root, chain((exc.args[0],), specs), nul=False)) as legacy: + yield from legacy + + +def meaningful(value): + return isinstance(value, str) and bool(value.strip()) and not re.search(r"\bTODO\b", value, re.I) + + +def brief(value): + text = json.dumps(value, ensure_ascii=True, sort_keys=True) + return text if len(text) <= 120 else text[:117] + "..." + + +def require_key(mapping, key, where, shape=None): + """Name the missing key and its expected shape instead of a bare KeyError.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing" + + ("; expected " + shape if shape else "")) + return mapping[key] + + +def require_text(mapping, key, where, shape="a non-empty string without TODO"): + """Name the key and distinguish missing, wrong-shaped and weak values.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing; expected " + shape) + value = mapping[key] + require(isinstance(value, str) and meaningful(value), + where + "." + key + " must be " + shape + "; found " + type(value).__name__ + ": " + brief(value)) + + +def card_differences(own, pinned): + """Name every key by which a TASK.json original_card differs from its pin.""" + if not isinstance(own, dict): + return "TASK.json original_card is " + type(own).__name__ + ", expected a JSON object" + details = [] + missing = [key for key in pinned if key not in own] + extra = [key for key in own if key not in pinned] + if missing: + details.append("missing keys: " + ", ".join(missing)) + if extra: + details.append("unexpected keys: " + ", ".join(extra)) + for key in (key for key in pinned if key in own and own[key] != pinned[key]): + details.append(key + " differs (TASK.json: " + brief(own[key]) + "; pinned: " + brief(pinned[key]) + ")") + return "; ".join(details) or "cards compare unequal without a key difference" + + +def source_pin(row, base): + """Resolve one SOURCES.json row to its exact Git object expression. + + Rows without an explicit pin keep the historical base_commit: form. + A file vendored from a pull-request head is pinned exactly with + head:<40-hex sha>:, so its bytes resolve at that commit, not at the + package base. An explicit but unparseable pin fails closed. + """ + name = row["path"] + pin = row.get("pin") + if pin is None: + return base + ":" + name + if pin == "base_commit:" + name: + return base + ":" + name + # Git filenames can contain LF; it is part of the exact path, not a delimiter. + match = re.fullmatch(r"head:([0-9a-f]{40}):(.+)", pin, re.DOTALL) if isinstance(pin, str) else None + if match is not None and match.group(2) == name: + return match.group(1) + ":" + name + raise ValueError("SOURCES.json pin for " + name + " is not a supported pin form: " + brief(pin) + + "; accepted pin forms are base_commit: and head:<40-hex sha>:") + + +def validate(root, package, check_pins=True): + parts = PurePosixPath(package).parts + require(len(parts) == 2 and parts[0] == "research" and re.fullmatch(r"[a-z0-9][a-z0-9-]*", parts[1]), + "package must be research/") + data = {} + for name in ("TASK.json", "SOURCES.json", "VERIFY.json"): + data[name] = json.loads(relative_file(root, package + "/" + name).read_text(encoding="utf-8")) + version = require_key(data[name], "schema_version", name) + require(version == 1, name + ".schema_version must be 1; found " + brief(version)) + task, sources, manifest = (data[n] for n in ("TASK.json", "SOURCES.json", "VERIFY.json")) + scope_status = require_key(task, "scope_status", "TASK.json", "unchanged, refined or changed") + require(scope_status in ("unchanged", "refined", "changed"), + "TASK.json.scope_status must be unchanged, refined or changed; found " + brief(scope_status)) + for field in ("actual_scope", "bottleneck_link", "stop_rule", "evidence", "author", "ai_assistance"): + require_text(task, field, "TASK.json") + if scope_status == "unchanged": + question = require_key(require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object"), + "question", "TASK.json.original_card") + require(task["actual_scope"] == question, + "different wording/scope requires refined or changed plus a reason" + + " (TASK.json.actual_scope " + brief(task["actual_scope"]) + + " differs from TASK.json.original_card.question " + brief(question) + ")") + else: + require_text(task, "scope_change_reason", "TASK.json", + "a non-empty string without TODO explaining the scope refinement/change") + outcome = require_key(task, "outcome", "TASK.json", + "partial, completed, blocked or negative-result") + require(outcome in ("partial", "completed", "blocked", "negative-result"), + "TASK.json.outcome must be partial, completed, blocked or negative-result; found " + brief(outcome)) + questions = task.get("open_questions") + require(isinstance(questions, list), + "TASK.json.open_questions must be a list; found " + type(questions).__name__ + ": " + brief(questions)) + if not questions: + require_text(task, "no_open_questions_reason", "TASK.json", + "a non-empty string without TODO explaining an empty next-question list") + for position, question in enumerate(questions): + for field in ("question", "why_it_matters", "first_step", "blocked_by"): + require_text(question, field, "TASK.json.open_questions[" + str(position) + "]") + readme = relative_file(root, package + "/README.md").read_text(encoding="utf-8") + require("## Open next questions" in readme, "README.md needs an \"## Open next questions\" section") + status = require_key(manifest, "status", "VERIFY.json") + require(status == "ready", + "VERIFY.json.status must be \"ready\"; complete the draft before requesting replay; found " + brief(status)) + python = require_key(manifest, "python", "VERIFY.json") + require(python == "3.12", + "VERIFY.json.python must be \"3.12\" (generic replay currently uses Python 3.12); found " + brief(python)) + requirements = manifest.get("requirements", []) + require(isinstance(requirements, list), + "VERIFY.json.requirements must be a list of exact \"name==version\" pins; found " + + type(requirements).__name__ + ": " + brief(requirements)) + require(len(requirements) == len(set(requirements)), "VERIFY.json.requirements must not repeat a pin") + for item in requirements: + require(isinstance(item, str) + and re.fullmatch(r"(?:numpy|sympy|scipy)==[0-9]+(?:\.[0-9]+){1,2}", item), + "generic CI supports exact numpy/sympy/scipy pins; use a dedicated workflow for other environments" + + "; offending entry: " + brief(item)) + names = [item.split("==")[0] for item in requirements] + require(len(names) == len(set(names)), "declare only one version per dependency") + # Validation already treats an omitted list as empty; execution must receive + # that same default without rewriting the contributor's manifest on disk. + manifest["requirements"] = requirements + commands = manifest.get("commands") + require(isinstance(commands, list) and 1 <= len(commands) <= 8, + "VERIFY.json.commands must be a list of 1..8 explicit verification commands; found " + + type(commands).__name__ + ": " + brief(commands)) + total = 0 + for position, command in enumerate(commands): + path = "VERIFY.json.commands[" + str(position) + "]" + require(isinstance(command, dict), + path + " must be a JSON object; found " + type(command).__name__ + ": " + brief(command)) + argv = command.get("argv") + require(isinstance(argv, list) and len(argv) >= 2 and all(isinstance(a, str) for a in argv), + path + ".argv must be a list of at least 2 strings; found " + brief(argv)) + require(argv[0] == "{python}", path + ".argv must explicitly use {python}; no implicit shell") + require_text(command, "checks", path, "a non-empty string without TODO describing command coverage") + seconds = command.get("timeout_seconds") + require(type(seconds) is int, + path + ".timeout_seconds must be an integer number of seconds; found " + + type(seconds).__name__ + ": " + brief(seconds)) + require(1 <= seconds <= 600, + path + ".timeout_seconds " + str(seconds) + + (" exceeds the 600 s per-command cap" if seconds > 600 + else " is below the 1 s per-command minimum")) + total += seconds + require(total <= 1200, "declared replay budget " + str(total) + + " s (sum of timeout_seconds) exceeds the 1200 s total cap" + + "; use a dedicated job for larger checks") + inputs = manifest.get("inputs") + require(isinstance(inputs, list), + "VERIFY.json.inputs must be a list of canonical repository-relative paths; found " + + type(inputs).__name__ + ": " + brief(inputs)) + tracked = tracked_input_paths(root) + for name in inputs: + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + relative_file(root, name) + files = require_key(sources, "files", "SOURCES.json") + require(files, "SOURCES.json.files is empty; declare the source inventory") + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + require(isinstance(base, str) and re.fullmatch(r"[0-9a-f]{40,64}", base), + "SOURCES.json.base_commit must be a 40-64 hex string pinning an exact base commit; found " + brief(base)) + task_base = require_key(task, "base_commit", "TASK.json", + "a 40-64 hex string equal to SOURCES.json.base_commit") + require(task_base == base, "TASK.json.base_commit " + brief(task_base) + + " must equal SOURCES.json.base_commit " + brief(base)) + for row in files: + require(isinstance(row, dict) and isinstance(row.get("path"), str), + "SOURCES.json.files rows must be JSON objects with a string path; offending row: " + brief(row)) + require(row.get("usage") in ("input", "provenance"), + "SOURCES.json.files row " + row["path"] + " must declare usage \"input\" or \"provenance\"; found " + + brief(row.get("usage"))) + undeclared = sorted({r["path"] for r in sources["files"] if r["usage"] == "input"} - set(inputs)) + require(not undeclared, + "every SOURCES.json files row with usage \"input\" must also be declared in VERIFY.json inputs" + + " (they drive CI invalidation); undeclared: " + ", ".join(undeclared)) + if check_pins: + catalog_name = "docs/research/agent-task-catalog.json" + require(catalog_name in {r["path"] for r in sources["files"]}, + "SOURCES.json.files must pin the originating task catalogue " + catalog_name + + " (a provenance row pinned at base_commit)") + names = [r["path"] for r in sources["files"]] + for name in names: + p = PurePosixPath(name) + require(not p.is_absolute() and ".." not in p.parts, "invalid source path") + specs = [source_pin(row, sources["base_commit"]) for row in sources["files"]] + require(all(spec == sources["base_commit"] + ":" + catalog_name + for name, spec in zip(names, specs) if name == catalog_name), + "originating task catalogue must be pinned at base_commit") + with closing(git_blobs(root, specs)) as objects: + for index, (obj, pinned) in enumerate(objects): + row = sources["files"][index] + name = row["path"] + require(obj == row["git_blob"], "source blob provenance mismatch: " + name) + require(hashlib.sha256(pinned).hexdigest() == row["sha256"], "source SHA256 provenance mismatch: " + name) + if row["usage"] == "input": + require(pinned == relative_file(root, name).read_bytes(), "working source drift: " + name) + if name == catalog_name: + catalog = json.loads(pinned) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task["task_id"]] + require(len(cards) == 1, + "TASK.json task_id " + brief(task["task_id"]) + " matches " + str(len(cards)) + + " cards in pinned " + catalog_name + " at base_commit " + sources["base_commit"] + + "; need exactly one") + original_card = require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object (copy --print-card output verbatim)") + if original_card != cards[0]: + raise ValueError("original card in TASK.json must equal the pinned catalogue card object exactly; " + "copy it verbatim from " + catalog_name + " at base_commit " + sources["base_commit"] + + ": " + card_differences(original_card, cards[0])) + return task, manifest + + +def catalogue_card(root, package, task_id): + """The exact original_card object a hand-authored TASK.json must copy. + + Reads the catalogue blob pinned at the package base commit, never the + working tree, because validate() compares original_card against that pin. + """ + sources = json.loads(relative_file(root, package + "/SOURCES.json").read_text(encoding="utf-8")) + name = "docs/research/agent-task-catalog.json" + rows = require_key(sources, "files", "SOURCES.json") + row = next((r for r in rows if isinstance(r, dict) and r.get("path") == name), None) + require(row is not None, "SOURCES.json.files must pin the originating task catalogue " + name) + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + spec = source_pin(row, base) + require(spec == base + ":" + name, "originating task catalogue must be pinned at base_commit") + catalog = json.loads(git(root, "show", spec)) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task_id] + require(len(cards) == 1, + "task_id " + brief(task_id) + " matches " + str(len(cards)) + + " cards in pinned " + name + " at base_commit " + base + "; need exactly one") + return cards[0] + + +_WINDOWS_GATE = r""" +import ctypes +from ctypes import wintypes +import json +import subprocess +import sys +api = ctypes.WinDLL('kernel32', use_last_error=True) +api.OpenEventW.argtypes = [wintypes.DWORD, wintypes.BOOL, wintypes.LPCWSTR] +api.OpenEventW.restype = wintypes.HANDLE +api.WaitForSingleObject.argtypes = [wintypes.HANDLE, wintypes.DWORD] +api.WaitForSingleObject.restype = wintypes.DWORD +api.CloseHandle.argtypes = [wintypes.HANDLE] +api.CloseHandle.restype = wintypes.BOOL +event = api.OpenEventW(0x00100000, False, sys.argv[1]) +if not event: + raise ctypes.WinError(ctypes.get_last_error()) +try: + if api.WaitForSingleObject(event, 30000) != 0: + raise RuntimeError('replay ownership gate was not released') +finally: + api.CloseHandle(event) +# No verification command or descendant starts until the parent owns this job. +sys.exit(subprocess.call(json.loads(sys.argv[2]))) +""" + +def run_windows_command(argv, cwd, timeout, env): + """Own ordinary verification descendants even after their leader exits. + + The gated launcher joins a kill-on-close Job Object before it may spawn + the requested command. A late taskkill cannot recover an exited leader's + tree. Job handles are not inherited and breakaway is not enabled. + """ + import ctypes + from ctypes import wintypes + import time + import uuid + + class BasicLimits(ctypes.Structure): + _fields_ = [("ProcessTime", ctypes.c_int64), ("JobTime", ctypes.c_int64), + ("Flags", wintypes.DWORD), ("MinWorkingSet", ctypes.c_size_t), + ("MaxWorkingSet", ctypes.c_size_t), ("ActiveProcessLimit", wintypes.DWORD), + ("Affinity", ctypes.c_size_t), ("Priority", wintypes.DWORD), + ("Scheduling", wintypes.DWORD)] + + class IOCounts(ctypes.Structure): + _fields_ = [(name, ctypes.c_uint64) for name in + ("ReadOps", "WriteOps", "OtherOps", "ReadBytes", "WriteBytes", "OtherBytes")] + + class ExtendedLimits(ctypes.Structure): + _fields_ = [("Basic", BasicLimits), ("IO", IOCounts), + ("ProcessMemory", ctypes.c_size_t), ("JobMemory", ctypes.c_size_t), + ("PeakProcessMemory", ctypes.c_size_t), ("PeakJobMemory", ctypes.c_size_t)] + + class Accounting(ctypes.Structure): + _fields_ = [(name, ctypes.c_int64) for name in + ("UserTime", "KernelTime", "PeriodUserTime", "PeriodKernelTime")] + [ + (name, wintypes.DWORD) for name in + ("PageFaults", "TotalProcesses", "ActiveProcesses", "TerminatedProcesses")] + + api = ctypes.WinDLL("kernel32", use_last_error=True) + + def native(name, result, *arguments): + fn = getattr(api, name) + fn.restype, fn.argtypes = result, arguments + return fn + + handle, dword, boolean = wintypes.HANDLE, wintypes.DWORD, wintypes.BOOL + create_job = native("CreateJobObjectW", handle, ctypes.c_void_p, wintypes.LPCWSTR) + set_info = native("SetInformationJobObject", boolean, handle, ctypes.c_int, ctypes.c_void_p, dword) + assign = native("AssignProcessToJobObject", boolean, handle, handle) + terminate = native("TerminateJobObject", boolean, handle, wintypes.UINT) + query = native("QueryInformationJobObject", boolean, handle, ctypes.c_int, + ctypes.c_void_p, dword, ctypes.c_void_p) + create_event = native("CreateEventW", handle, ctypes.c_void_p, boolean, boolean, wintypes.LPCWSTR) + set_event = native("SetEvent", boolean, handle) + close = native("CloseHandle", boolean, handle) + + def checked(ok): + if not ok: + raise ctypes.WinError(ctypes.get_last_error()) + return ok + + job = checked(create_job(None, None)) + event, process, assigned = None, None, False + try: + limits = ExtendedLimits() + limits.Basic.Flags = 0x2000 # JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE + checked(set_info(job, 9, ctypes.byref(limits), ctypes.sizeof(limits))) + name = "Local\\research-replay-" + uuid.uuid4().hex + event = checked(create_event(None, True, False, name)) + # A name collision must not attach to an already-signaled event. + if ctypes.get_last_error() == 183: + raise ValueError("replay ownership gate name already exists") + process = subprocess.Popen( + # The gate itself must not run sitecustomize/PYTHONPATH startup + # code before ownership. The requested command retains env/argv. + # Windows accepts Unicode argv directly. ASCII JSON escaping can + # expand an otherwise valid command past its UTF-16 launch limit. + [sys.executable, "-I", "-S", "-c", _WINDOWS_GATE, name, + json.dumps(argv, ensure_ascii=False)], + cwd=cwd, env=env, start_new_session=True) + checked(assign(job, int(process._handle))) + assigned = True + checked(set_event(event)) + try: + return process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + finally: + try: + if process is not None: + if assigned: + checked(terminate(job, 1)) + # Termination is asynchronous. Require the job to report + # no active processes before releasing its ownership handle. + deadline = time.monotonic() + 10 + while True: + state = Accounting() + checked(query(job, 1, ctypes.byref(state), ctypes.sizeof(state), None)) + if not state.ActiveProcesses: + break + if time.monotonic() >= deadline: + raise ValueError("verification process cleanup timed out") + time.sleep(0.01) + elif process.poll() is None: + # Assignment failed before the gate opened: no command child + # exists, so only this known gated launcher needs stopping. + process.kill() + process.wait(timeout=10) + finally: + try: + if event: + checked(close(event)) + finally: + checked(close(job)) + +def run_command(argv, cwd, timeout): + # Assertion checks must not disappear because of the caller's environment. + # Keep explicit manifest options (including deliberate -O controls) intact. + # PYTHONPATH precedes the standard library on a child's sys.path, so a stray + # same-named module could end a verifier with exit code 0 before any check. + env = os.environ.copy() + env.pop("PYTHONOPTIMIZE", None) + # Ambient inspection can turn a verifier exception into a successful REPL + # exit at terminal EOF. Keep explicit -i and the caller's stdin unchanged. + env.pop("PYTHONINSPECT", None) + env.pop("PYTHONPATH", None) + if os.name == "nt": + code = run_windows_command(argv, cwd, timeout, env) + require(code == 0, f"verification command exited {code}") + return + previous_handler = None + terminating = False + waiting = False + process = None + + def terminate(signum, frame): + nonlocal terminating + if not terminating: + terminating = True + # Only interrupt the protected wait. Launch/assignment and cleanup + # defer delivery; repeated signals cannot interrupt group cleanup. + if waiting: + raise SystemExit(128 + signum) + + # Own a group for POSIX cleanup of this command and its descendants. + try: + if (threading.current_thread() is threading.main_thread() + and signal.getsignal(signal.SIGTERM) == signal.SIG_DFL): + previous_handler = signal.SIG_DFL + signal.signal(signal.SIGTERM, terminate) + if terminating: + raise SystemExit(143) + process = subprocess.Popen(argv, cwd=cwd, env=env, start_new_session=True) + try: + try: + waiting = True + if terminating: + raise SystemExit(143) + code = process.wait(timeout=timeout) + finally: + waiting = False + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + require(code == 0, f"verification command exited {code}") + finally: + try: + if process is not None: + if hasattr(os, "killpg"): + # The leader may have exited while descendants hold its group. + try: + os.killpg(process.pid, signal.SIGKILL) + except ProcessLookupError: + pass + elif process.poll() is None: + subprocess.run(["taskkill", "/F", "/T", "/PID", str(process.pid)], capture_output=True) + process.wait() + finally: + if previous_handler is not None: + signal.signal(signal.SIGTERM, previous_handler) + if terminating: + raise SystemExit(143) + + +def isolated_python_argv(argv, cache_directory): + """Place our cache option after interpreter flags, before the entry point. + + -B prevents writes, not reads of existing .pyc files. A fresh namespace + keeps preexisting source-adjacent and externally configured caches out of + this registered interpreter. It is not inherited by child interpreters. + """ + require(argv and argv[0] == sys.executable, "cache isolation requires the registered Python interpreter") + index = 1 + options = [argv[0]] + while index < len(argv): + option = argv[index] + if option in ("-", "--") or not option.startswith("-"): + break + if option == "--check-hash-based-pycs": + require(index + 1 < len(argv), "missing Python hash-cache option argument") + options.extend(argv[index:index + 2]) + index += 2 + continue + if option.startswith("--"): + options.append(option) + index += 1 + continue + # Python permits combined short flags, attached -c/-m payloads, and + # attached or separate -W/-X arguments. Stop scanning an option once + # its argument begins: letters inside that argument are not flags. + entry = False + consumed = 1 + replace_cache = False + for offset, flag in enumerate(option[1:], start=1): + if flag in "cm": + entry = True + break + if flag in "WX": + if offset == len(option) - 1: + require(index + 1 < len(argv), "missing Python interpreter option argument") + consumed = 2 + value = argv[index + 1] if consumed == 2 else option[offset + 1:] + if flag == "X" and value.split("=", 1)[0] == "pycache_prefix": + replace_cache = True + if offset > 1: + options.append(option[:offset]) + break + if entry: + break + if not replace_cache: + options.extend(argv[index:index + consumed]) + index += consumed + # CPython's effective prefix can use the first duplicate -X value even + # when sys._xoptions shows the last. Remove only earlier cache-prefix + # settings; script arguments remain untouched, even when spelled -X. + return [*options, "-X", "pycache_prefix=" + str(cache_directory), *argv[index:]] + + +def run_python_replay(argv, cwd, timeout): + with tempfile.TemporaryDirectory(prefix="research-replay-pycache-") as cache: + run_command(isolated_python_argv(argv, cache), cwd, timeout) + + +def run_package(root, package, install=False): + task, manifest = validate(root, package) + require(sys.version_info[:2] == (3, 12), "run replay with Python 3.12 (metadata check is version-independent)") + if install and manifest["requirements"]: + run_command([sys.executable, "-m", "pip", "install", "--disable-pip-version-check", *manifest["requirements"]], root, 300) + for requirement in manifest["requirements"]: + name, version = requirement.split("==") + require(importlib.metadata.version(name) == version, "dependency version mismatch: " + requirement) + # Coverage labels are UTF-8 metadata but a redirected Windows stdout may + # use cp1252. Escape unrepresentable display characters instead of aborting + # before replay. This changes only our stream, not child encoding or env. + if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(errors="backslashreplace") + for command in manifest["commands"]: + argv = [sys.executable if item == "{python}" else item.replace("{package}", package) for item in command["argv"]] + print("CHECK " + command["checks"], flush=True) + run_python_replay(argv, root, command["timeout_seconds"]) + print("PASS_REGISTERED_RESEARCH_PACKAGE " + package + " outcome=" + task["outcome"]) + + +def planning_manifests(root, tracked): + """Include deliberate sparse omissions without disguising deletions or drift. + + The fallback follows the chooser's PR3102 contract: one stage-zero regular + skip-worktree index entry must match the exact HEAD mode and blob. This is + declaration discovery only, not permission to replay absent package code. + """ + committed = {name for name in tracked + if name.startswith("research/") and name.count("/") == 2 + and name.endswith("/VERIFY.json")} + # Explicit scandir retains error detection; only an absent directory is OK. + try: + with os.scandir(root / "research") as entries: + local = {Path(entry.path) / "VERIFY.json" for entry in entries} + except FileNotFoundError: + local = set() + present, missing = {}, set() + for path in sorted(local | {root / name for name in committed}): + name = path.relative_to(root).as_posix() + symlink_free_relative_path(root, name) + try: + mode = path.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + if name in committed: + missing.add(name) + continue + require(stat.S_ISREG(mode), "non-regular replay manifest: " + name) + present[name] = path + fallback = {} + if missing: + indexed, objects = {}, {} + for record in git(root, "ls-files", "-t", "--stage", "-z", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + indexed.setdefault(name, []).append(header.split()) + for record in git(root, "ls-tree", "-r", "-z", "HEAD", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + objects[name] = header.split() + for name in sorted(missing): + metadata = objects.get(name, []) + require(len(metadata) == 3 and metadata[0] in (b"100644", b"100755") + and metadata[1] == b"blob" + and indexed.get(name) == [[b"S", metadata[0], metadata[2], b"0"]], + "missing replay manifest is not an unchanged sparse HEAD input: " + name + + "; materialize it or commit its intended deletion") + # A regular file occupying the package directory is not an omission. + require(not (root / name).parent.exists() or (root / name).parent.is_dir(), + "non-directory replay package: " + name) + names = sorted(missing) + with closing(git_blobs(root, [objects[n][2].decode("ascii") for n in names])) as rows: + for (oid, raw), name in zip(rows, names): + require(oid.encode("ascii") == objects[name][2], "sparse manifest blob mismatch: " + name) + fallback[name] = raw + # Preserve Path's component ordering: package "a" precedes "a-extra". + for name in sorted(present.keys() | fallback.keys(), key=lambda name: PurePosixPath(name).parts): + yield root / name, fallback[name] if name in fallback else present[name].read_bytes(), name in fallback + + +def plan_details(root, changed): + """One selection pass with exact causes; no replay or acceptance decision.""" + changed = set(changed) + # A removed input is absent from HEAD, including an old case-only rename + # spelling on case-insensitive filesystems. Git's exact changed paths remain + # eligible so its consumer is selected, rather than rejected or skipped. + head_tracked = tracked_input_paths(root) + tracked = head_tracked | changed + replay_changed = sorted(changed.intersection({ + "scripts/research_package.py", ".github/workflows/research-packages.yml", + ".github/workflows/research-package-batch.yml"})) + # Group literal Git paths once. Keep removed paths and exact spellings. + changed_packages = {} + for name in sorted(changed): + parts = name.split("/", 2) + if len(parts) == 3 and parts[0] == "research": + changed_packages.setdefault("/".join(parts[:2]), []).append(name) + packages = [] + sparse_count = 0 + for path, raw, sparse in planning_manifests(root, head_tracked): + sparse_count += sparse + package = path.parent.relative_to(root).as_posix() + manifest = json.loads(raw.decode("utf-8")) + # Parse only for selection; validate fully in the isolated replay job. + inputs = manifest.get("inputs", []) + require(isinstance(inputs, list), "declare input paths for CI invalidation") + for name in inputs: + # Do not require existence: a deleted input must still trigger replay. + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + causes = { + "declared_inputs": sorted(changed.intersection(inputs)), + "package_files": changed_packages.get(package, []), + "shared_controls": replay_changed, + } + if any(causes.values()): + packages.append({"package": package, "causes": causes, + "manifest_sha256": hashlib.sha256(raw).hexdigest()}) + if sparse_count: + print(f"Planning includes {sparse_count} unchanged sparse manifests from HEAD; " + "materialize packages and inputs before replay.", file=sys.stderr) + return packages + + +def plan(root, changed): + return [row["package"] for row in plan_details(root, changed)] + + +def write_plan_explanation(path, base, head, changed, details): + """Publish a complete sidecar before stdout/GitHub matrix publication.""" + matched = {name for row in details for names in row["causes"].values() for name in names} + report = { + "schema_version": 1, "base": base, "head": head, + "mode": "all-tracked" if base is None else "commit-diff", + "scope": "Selection from working or authenticated sparse HEAD manifests, not replay or mathematical acceptance. " + "Manifest hashes bind the declarations read; checkout must remain stable.", + "changed_paths": sorted(set(changed) - {""}), "selected": details, + "unmatched_paths": sorted(set(changed) - matched - {""}), + } + fd, temporary = tempfile.mkstemp(prefix=".replay-plan-", dir=path.parent) + try: + with os.fdopen(fd, "w", encoding="utf-8") as stream: + json.dump(report, stream, indent=2) + stream.write("\n") + os.replace(temporary, path) + finally: + Path(temporary).unlink(missing_ok=True) + + +def replay_matrix(packages, batch_size=None): + """Retain the flat CLI format, or group complete coverage into bounded matrices.""" + if batch_size is None: + return {"include": [{"package": p} for p in packages]} + require(type(batch_size) is int and 1 <= batch_size <= 256, + "matrix batch size must be 1..256") + batches = [packages[i:i + batch_size] for i in range(0, len(packages), batch_size)] + require(len(batches) <= 256, + "more than 256 matrix batches required; no packages were truncated") + return {"include": [{"packages": batch} for batch in batches]} + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--package") + ap.add_argument("--check-only", action="store_true") + ap.add_argument("--print-card", metavar="TASK_ID", + help="print the exact pinned catalogue card object to copy into TASK.json original_card") + ap.add_argument("--install-deps", action="store_true", help="explicit opt-in to install manifest's allowed pinned dependencies") + ap.add_argument("--changed-since", help="plan affected opt-in packages relative to this Git commit") + ap.add_argument("--github-output", type=Path) + ap.add_argument("--explain-plan", type=Path, + help="write exact replay-selection causes to JSON; matrix output stays unchanged") + ap.add_argument("--matrix-batch-size", type=int, + help="group planned packages for bounded reusable-workflow matrices (1..256)") + args = ap.parse_args() + if args.explain_plan and (not args.changed_since or args.package or args.print_card): + ap.error("--explain-plan requires --changed-since without --package or --print-card") + if args.explain_plan and args.github_output and args.explain_plan.resolve() == args.github_output.resolve(): + ap.error("--explain-plan and --github-output must use different files") + try: + if args.print_card: + require(args.package, + "--print-card needs --package research/ to resolve its pinned catalogue") + sys.stdout.write(json.dumps(catalogue_card(ROOT, args.package, args.print_card), indent=2) + "\n") + elif args.changed_since: + if set(args.changed_since) == {"0"}: + base = None + changed = git(ROOT, "ls-files", "-z").decode().split("\0") + else: + base = git(ROOT, "rev-parse", "--verify", args.changed_since + "^{commit}").decode().strip() + # A rename must invalidate both the removed input and its new path. + changed = git(ROOT, "diff", "--no-renames", "--name-only", "-z", base, "HEAD").decode().split("\0") + details = plan_details(ROOT, changed) + packages = [row["package"] for row in details] + matrix = json.dumps(replay_matrix(packages, args.matrix_batch_size)) + if args.explain_plan: + head = git(ROOT, "rev-parse", "--verify", "HEAD^{commit}").decode().strip() + write_plan_explanation(args.explain_plan, base, head, changed, details) + print(matrix) + if args.github_output: + with args.github_output.open("a", encoding="utf-8") as out: + out.write(f"matrix={matrix}\ncount={len(packages)}\n") + elif args.package: + if args.check_only: + validate(ROOT, args.package) + print("PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check)") + else: + run_package(ROOT, args.package, args.install_deps) + else: + ap.error("use --package, --print-card or --changed-since") + except (OSError, ValueError, KeyError, TypeError, subprocess.SubprocessError, importlib.metadata.PackageNotFoundError) as exc: + ap.exit(1, str(exc) + "\n") + + +if __name__ == "__main__": + main() diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json new file mode 100644 index 0000000000..a6c564ffa2 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/MANIFEST.json @@ -0,0 +1,36 @@ +{ + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "status": "READY", + "rows": [ + { + "path": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "git_blob": "bf5ff049da5fa07f9bf71176dfafe3343b7ac93d", + "sha256": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "bytes": 8277, + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "path": "research/final4610-independent-admission/SPECIALIZATION.md", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147", + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "bytes": 19802, + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "path": "research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "git_blob": "9917ac5543608047fd368e5e75f0851310f53584", + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "bytes": 15369, + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + }, + { + "path": "research/query-thinned-controllers/PROOF.md", + "git_blob": "9068f429896112082664455ab00bab083c99d1d8", + "sha256": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841", + "bytes": 14363, + "commit": "1ec1119972c9aefe42525172d07b332fcff81cb4" + } + ], + "missing": [], + "scope": "Exact canonical generic stock/precision/stronger BIT proof references; no mathematical execution" +} diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md new file mode 100644 index 0000000000..bf5ff049da --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md @@ -0,0 +1,137 @@ +# PR4610: conditional admission through the PR5241 audit + +**Pass under the unchanged five selected framework assumptions:** +κ = 15108879/5000000000 = **0.0030217758**. +This is Cao Yifan / intqwq's construction at +`20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`, independently audited in +Chris R / Clear1nsight's PR5241 at +`13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2`. +Maintainer review: Douglas Colkitt's OpenAI assistant, with substantial AI +assistance. Apache-2.0. No independent human or end-to-end formal proof is claimed. + +## Changed construction and exact coverage + +The accepted object is the frozen round3 native word and round6 compiler point, +not every exploratory claim or intermediate result in PR4610. Relative to +selected PR4470, 20 native binary maps and 26 helper boundary interfaces change; +all twelve shared prelude maps and the main endpoints remain fixed. The complete +local paid profile becomes `{1:2201, 2:412, 3:510, 4:127, 5:40, 8:8}`. +The productive helper profile remains `{4:28, 7:7, 8:47, 9:326}`. + +The fresh audit passes all eleven required stages. It checks 480 signed warp +events, 180 signed warp classes in both orientations, all 408 helper inputs +through 34 oriented endpoint classes, and all 5,710 oriented paid classes +covering 6,596 local event instances. No earlier receipt's PASS flag substitutes +for phase correctness. The frozen paid catalogue is candidate data; its +compiler is not imported by the acceptance path. + +The reviewer inspected the independent Clifford evaluation and phase test: +equality on the 18 Pauli generators identifies the operator up to a scalar; +equality on an exactly normalized nonzero state fixes that scalar. All factors +are validated monomial/Clifford operations, so this is a complete finite-operator +argument, not a sample of input vectors. Phase-only mutations preserve the +tableau and are nevertheless rejected. Positive recursive ranks are checked +against the actual nested bases, including all eight owned rank-eight calls. + +The chronological symbolic interpreter tracks all 632 independent persistent +inputs, current frames, inverse orientations and the owned C0. It verifies a +free-group identity on arbitrary dirty inputs, with each helper restored and +only the owned stream erased. Left multiplication on reduced free words is +injective; its dictionary update does not silently discard colliding words. +Main chart and scalar opcode/coefficient sequences are compared to retained +source. No arbitrary borrowed input is treated as initialized workspace. + +## Uniform lift and physical specialization + +We reviewed PROOF.md and SPECIALIZATION.md against the pinned PR4359, PR4416 +and PR4470 reviews and the general-frame/compact-movement notes. The retained +contract already permits arbitrary fixed nested binary frames with independent +two-sided monomial adapters. The new recipes lie in that class: invertible +nine-bit affine maps and Z4 quadratic phases. Elimination, translations and +phase operations need at most 171 primitive records per monomial, hence at +most 342 for two adapters, within the retained 1000-record raw allowance. +This counts retained physical primitive records, not constant literal tape +steps at arbitrary column multiplicity. + +Tensor power is applied to products and individual operator factors. The scalar +ADD program instead lifts by evaluation of its proved free-group identity. +Tensor power is never distributed over a sum. Absolute phase is repeated once +per column. Algebraic equality holds at every positive multiplicity; the +physical tariff retains its source hypotheses on complete slots, restored +controls, record fibers and the f,p domain. Spectators and independent ownership +remain explicit. Thus the changed catalogue does not add a candidate-specific +oracle to the old assumptions. + +Expanded template counts, owned banks, routing and coefficient envelopes must +be substituted into the retained precision/stock formulas. The new enormous +compiler does not inherit an old numerical template-size cap. This remains a +conditional application of the selected physical and analytic framework; +finite computations do not independently prove its fixed-tape, precision or +integer-recovery theorems. + +## Invoice, completion and outer transfer + +The unchanged p16/query-thinned controller is source-identical to the selected +review. The audit independently reconstructs its events and boundary programs; +the previously reviewed Laurent endpoint and stage-zero commutation argument +are reused with unchanged main operators. Eighteen full calls, fifteen thin +queries, fifteen idle windows, all main/helper targets and owned centers give +**64,404 paid calls and 10,928 productive fields**. Target and paid rank masses +remain 239,886 and 239,134, giving surplus 752. Compared with PR4470 the whole +paid histogram changes by `{-648 H1, +432 H2, +288 H3, -360 H4, +72 H5}`: +216 fewer calls, without removing rank mass or reusing output credit. + +Two independently implemented directed interval engines check the freshly +derived invoice. The raw crossing is bracketed by +(.00302177587077, .00302177587078). The tested saving .00302177581 exceeds the +claim .0030217758. The old selected invoice fails at the new claim; this is a +changed-construction gain, not decimal refinement of the old crossing. + +At tensor power 1024, cutoff 20, completion floor 21 and tail shift 1/5, +alpha < 1-10^-11 and both charged tail ratios are below 97/100. The complete +bound `1/(1+1024*10^-11)+4/2^32 < 1` is checked exactly. The old 10^-9 reserve +would fail here and is explicitly rejected. The reviewed product/completion +and splitting arguments apply with these new constants and actual profiles. +The compiler's sufficient integer test gives H=38,569,300,000,000,000 and +N=2^H. This is a finite specified construction; no expanded word is materialized. + +The ordinary BIT interface is exactly equal to the selected source and admits +.0034, above the required effective saving. Its already reviewed supplier and +conversion are reused, not established anew by the complex checks. All nine +outer cost rows, 54 strict predicates and four functional predicates pass. +The minimum recorded strict predicate is 1/7,000,000,000,000. Both arithmetic +engines retain the charged targets, owned centers and compiler tails. + +## Execution, provenance and invalidation + +COLD-REPLAY.json and BOUNDED-RUN.json record the complete serial CPython 3.12 +run: 137.25 seconds and 184,928 KiB peak sampled descendant RSS, below the +660-second / 1 GiB guard. All 82 committed-byte bindings, canonical source +ancestry and registered metadata/pins checks passed. No Lean, Docker, hosted +Linux run or historical all-suite replay was performed. + +The current selected metadata is changing, but PR5241 authenticates the exact +old PR4470 record as its baseline. The new reproduction entrypoint therefore +exports that historical record from `certificates/checkpoints/frontier4470.json` +to its original path, explicitly. The research package and scientific source +bytes remain unchanged. Canonical Git objects are used only for ancestry and +stored-blob checks; the mathematical code reads its closed exported input set. +The source manifest also retains the prior reviewed foundation closure. + +Changes to frames, native phases, scalar chronology, helper endpoints, +controller, actual ownership, paid completion, compiler parameters, source +bytes or physical/outer contracts invalidate the affected review. Optional +optimizers, claimed global optima and later scalar-compression variants are +outside this acceptance. The result remains conditional on precisely the five +PR4470 assumption records, copied without weakening or deletion. + +## Credit + +Cao Yifan / intqwq: changed construction and compiler point (PR4610). +Chris R / Clear1nsight: complete independent admission package (PR5241). +Cinna Davis /1337isnot1337: joint-helper, query-thinned controller and preceding +construction chain. zxv: productive-helper native/compiler machinery. +Jacob Alan Sussman: mixed-target recursion. Dugongue: transported frames and +physical interfaces. Mihir Srivastava, Ryanson Jonathan and Mark / Matarener: +retained independent checks and adversarial questions. All BIT, geometry, +Clifford, precision and analytic contributors retain their earlier credit. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md new file mode 100644 index 0000000000..7ee84b3089 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/final4610-independent-admission/SPECIALIZATION.md @@ -0,0 +1,130 @@ +# P1: specialize the selected physical grammar to final #4610 + +This note proves a conditional **specialization**, not a new physical primitive theorem. Let H_selected denote precisely the native normal-form, compact movement/repair, scalar/owned-storage, completed-call, fixed-tape and outer hypotheses retained by selected #4470 through its reviewed #4359/#4416 lineage. Under H_selected, the actual final #4610 catalogue is an instance of that same physical grammar, with newly counted fixed constants. The proof does not introduce a separate assumption that the new recipes work. + +Candidate #4610 is Cao Yifan/intqwq's existing construction, head `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`, final local-word payload `cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. Pinned canonical source is `ec2780e8aeb1c88acaf5e9e470ef8c68e7fbbb6c`. Selected #4470 remains .00302015; this note does not modify selection or claim construction/gain priority. Exact source bytes, including the following premise texts, are bound in `SOURCES.json`. + +## 1. The selected premise already quantifies over the required class + +The premises used here are the following statements in the selected source closure, with their original physical qualifications retained: + +1. `notes/general-clifford-frames.tex`, “Exact representatives and nested children”: for an arbitrary binary subspace U and deterministic invertible basis extension G, the exact Gaussian-dyadic K_G and its conjugate by F have rank zero and are fixed binary address permutations with unit quadratic phases. For **every** nested U subset V, the exact transition is two rank-zero adapters around a positive coordinate C child. Exact phases and finite movement/scalars are charged. The statement is not restricted to the selected word's list of old frame labels. +2. `notes/compact-control-movement.tex`, “Compact-control selected-bit addition” and “Application to a fixed binary change of basis”: either ordering of two complete slots admits exact selected-bit row addition with restored arbitrary temporary fields; a fixed binary basis change is a fixed number of such additions. The fixed-tape bound is `O(V*((e*log p)^tau+1))`, including repair and descriptor work, under the stated complete-field reservations and record-size hypotheses. Constants and cutoffs are uniform within each fixed parameter family. +3. Selected #4359 `PROOF-REVIEW.md` section2: free-word evaluation allows arbitrary positive column multiplicity by substituting lifted generators, separately tensor-lifting exact paid/helper factorizations. Absolute monomial phase is `a*f+sum q(x_j)`. Helpers are normalized only after their autonomous completed endpoint. Section3 explicitly permits fixed template matrices/matchers to change dimensions/counts/constants while retaining the same movement exponent and tape uniformity. Section4 separately pays address permutations and unit phases and replaces semantic precision constants. +4. Selected #4416 `PROOF-REVIEW.md` section2: exact whole-job normal forms use independent **two-sided** recorded factors. They need not be an inverse pair. Canonicalize the complete job, place its axes by a charged coordinate matcher, execute the child, and restore the prescribed adapters before resuming its parent. Distinct physical owners and separate live centers are preserved. +5. Selected #4470 `PROOF-REVIEW.md` sections1–3 applies these rules to new actual helper normalizers, paid transports, p16/query/idle events and their new finite scalar/route/owner/precision constants. The retained conditions include all-column implementation, whole-job adapters, owned erasure, fixed-tape movement, precision and outer hypotheses. + +Consequently the permitted class is generic fixed finite Gaussian-dyadic monomial/positive-child programs with the stated arbitrary-owner and spectator ABI. It is not the stronger assertion that an arbitrary RAM gather or arbitrary address function is cheap. The reduction below uses only the selected binary row-addition/ordered-movement operations, finite unit phases and the same scalar/child/owned alphabet. + +## 2. A constructive grammar for every actual monomial + +Use the source's exact composition convention. A record m has invertible binary matrix A of size9, affine offset b, constant a modulo4, linear coefficients alpha_i modulo4 and symmetric binary quadratic matrix Q, with `alpha_i mod2=Q_ii`. On a basis address x it acts as + +``` +|x> -> i^(a+q(x)) |A*x xor b>, +q(x) = sum_i alpha_i*x_i + 2*sum_(i A*x_j xor b for every j, +phase = a*f + sum_(j=1..f) q(x_j) (mod4). +``` + +Apply the finite row-addition list to the corresponding pair of complete f-axis slots, and use the pointwise residue above. Each selected slot is a full range; arbitrary intervening, preceding and following spectator fields remain present. The temporary complete compact fields are returned by each addition. Thus the lift is exactly m tensor-powered f, acting as identity on the other address fields. It uses one fixed list of primitive **types/operations**, rather than f separately allocated tapes. Its per-record descriptor arithmetic is polynomial in the same selected address bound, and the number of work tapes stays fixed for the template. + +For a recorded positive-rank recipe, source equality is the ordered product `right.then(C_r).then(left)`. Tensoring this product gives `right_f.then(C_(r*f)).then(left_f)` after the fixed coordinate reordering. This is one ordinary positive rank-r*f child on the actual owner's full stream, with its input and output monomials independently retained. Inverse orientation and Pauli corrections are included by the actual signed recipes. No identity distributes a tensor power over a matrix sum. + +For the scalar word itself, use selected #4359's free-word substitution theorem: replace each warp generator by its f-column lift while leaving ADD/SCALE coefficients and chronology unchanged. This is an algebra homomorphism from the noncommuting free-word algebra; hence the already checked arbitrary-input word identity survives. The scalar program is not itself tensor-powered. Keeping a single constant phase a instead of a*f would violate the lift; a negative control explicitly distinguishes that mutation at f=2. + +The ideal algebraic lift holds for every positive f. Its physical tariff applies only in the selected source domain: f<=p, A=O(p), K/log p tending to infinity, and a superpolynomial record fiber. In the actual layer f<=e<=floor(b_in^epsilon) and p=6*b_in eventually. No tariff is extrapolated to arbitrary independent f,p/geometry. The compact-control parameter hypotheses are unchanged: f slots, complete dirty reservations, `A=O(p)`, record fiber beyond fixed powers, and the same selected movement exponent. The final uniform template may have much larger fixed dimensions and operation counts. That changes constants and thresholds through section6 below, rather than changing these quantifiers or creating a new tape per coordinate. + +## 4. Exhaustive family/owner specialization + +The executable source census is over the actual final payload, not its proposed histogram. It classifies every event in both21449-record orientations, and checks exact scalar coefficients/opcodes/chronology against the selected THREE-base word. Main charts on all224 persistent main owners are exact retained records. Every scalar target/source belongs to the632 declared persistent owners or the one declared owned C0. Clear and overwrite COPY target only C0; ADD arguments are distinct owners; no new borrowed owner, alias or productive C0 is introduced. + +| Actual family | Membership/coverage | Selected physical interpretation | +| --- | --- | --- | +| 180 signed warp classes,240 occurrences | Each actual G is invertible; both signed recipes have rank0;800new monomial records cover this and the changed families below | Fixed affine binary permutation and unit quadratic phase from section2; same all-f native generator | +| 3290 borrowed climbs per orientation | Actual source/target bases strictly nested, correct current owner/frame and rank | The selected arbitrary-U-subset-V factorization: two rank-zero adapters and one positive rank-r*f child | +| Eight center calls per orientation | Actual nested comparable bases, owned C0 only, all eight rank8 jobs billed | Same positive child plus signed adapters; no productive credit, no allocation of a new arbitrary input | +| 408 helper endpoints | Actual strict nested entrance/exit, profile `{4:28,7:7,8:47,9:326}` | Complete two-sided normal form on each distinct arbitrary input field; no internal scalar reframing shortcut | +| 448 main entrance/exit charts | Exact event equality with retained base main charts | Source-identical selected chart/axis interface, with its retained charge | +| 17453 scalar records per orientation | Exact old opcode/coefficient sequence, dyadic grammar and current-frame checks | Retained ADD, dyadic unit SCALE, owned COPY/CLEAR; identical scalar tariff | +| Ten phase labels | Fixed annotations, no new physical instruction | Existing scalar-word scope boundaries; not extra outputs or uncharged operators | + +Exact factorization equality and arbitrary-input endpoints are independently established by the admission dossier's native/phase replays, not by a syntactic schema. This module supplies the missing **physical class implication** for those exact factors. The new phase receipt covers180signedwarp classes,105newpaid pairs and5changedhelper pairs. The382 unchanged helpers are bound to the selected #4470 phase receipt through gain_acceptance's exact ordered-basis/owner lineage;26changed helpers use the new five-pair receipt. The independently replayed all2855paid-pair factorization module supplies the full actual paid-pair coverage. These coverage claims remain separate from this module's fresh class/census checks. + +For owned return, the local word retains one physical C0 and ends its C0 updates with a permitted erase. The existing arbitrary-input native proof establishes completed main/helper endpoints and C0 clearance. During product/compiler substitution, each suspended local occurrence receives its own center bank; all child inputs are distinct actual fields, even when values are correlated or one input is a parent's center. The child finishes and its adapters/role ordering return **before** the parent resumes. The parent clears only its own bank after its last use. Every such bank is excluded from productive W and included in full O. This is exactly the selected compiler ownership rule; no one-bank-per-depth reuse or undeclared initialized input is used. + +## 5. Finite raw tariffs in the selected unit + +The tariff unit here is a retained elementary scalar/movement/phase **record**, each realized with the selected physical primitive's asymptotic bound. It is not one literal tape instruction and does not suppress the f-dependent movement bound. Choose the same common upper unit for the fixed primitive alphabet as in the selected finite-word accounting. Each new two-sided nine-axis recipe has at most342 elementary records, below the retained conservative1000-per-group allowance. Unchanged main charts retain their selected count/unit. The selected primitive implementation constants, record-paid setup, scans and repair remain paid in that common physical unit. Changing the finite catalogue does not require a new asymptotic movement assumption. + +The actual local route groups are + +``` +3298 paid jobs + 2*408 helper wrappers + 240 warps + 448 main charts + = 4802 groups, +4802*1000 = 4,802,000. +``` + +The source scalar allowance formula, reimplemented directly without importing its evaluator, gives158120 forward and158168 backward. Therefore + +``` +158168 + 4802000 = 4960168 < 10^7. +``` + +This is an instantiation of the selected raw-unit bound with a smaller changed paid count, not reuse of an old expanded compiler cap. The controller remains18full calls and15thin queries, with the exact retained physical-event and boundary programs. The complete source raw bound is + +``` +18*10^7 + 15*1792 + + 32*112*(#physical_events + #left_boundary_program + #right_boundary_program) + = 181098496 < 10^9. +``` + +Each thin query's paid rank-one request, owned copy/add/erase and inverse orientation remain in the source invoice. Idle jobs, main normalizations, inherited controller geometry and actual exact phase bills remain charged. No local or controller charge is credited as a new productive output. These numerical bounds concern **raw** supplier records only; they are not the expanded uniform word's operation count, storage or literal physical runtime. + +## 6. Expanded compiler, precision and tape constants + +Apply the selected chronological product, same-owner paid completion, disjoint splitting and integer finite compiler to this now-specialized raw program. The algorithms are finite and only instantiate the same grammar. Their matching uses complete job endpoints and restores adapters, and their owner allocation is the rule just proved applicable. No new movement species occurs when a fixed matcher has a larger fixed rank: binary basis/coordinate permutations have the same finite elimination construction, now with a larger fixed list. + +Let W,P,O be the actual final productive width, paid rank-one count and full owned-bank allocation; let R count the full native/movement/normalizer records, including product, completion, split and compiler routes. Let G be their fresh dyadic coefficient/phase allowance, computed by summing the actual scalar allowances (plus the source's conservative non-scalar charge). These are finite computable integers of the new expanded template. They are fixed before multiplication input size varies. A record-count overestimate and one owned bank per relevant occurrence suffice; no practical materialization or old p3 numerical count is needed. + +Use the **new** values in the selected semantic prescription: + +``` +Z=W+O, +E=64*(Z+N+P+G+1)^3, +B=P+E, +C0=32*N*B^2. +``` + +The selected completed-child argument gives `A(e)<=A(floor(e/N))+P*floor(e/N)+E`, hence `A(e)<=2B*e`. Monomial permutations/unit phases add no coefficient height but do retain their execution/descriptor costs. The new C0 determines a new eventual fine-grid threshold. The compact row reserve, full simultaneous stock products, depth-first parking, fixed tape inventory and polynomial setup degrees also use the new W,P,O,R,N and selected formulas. Fixed enlarged degrees/counts are absorbed by the same retained superpolynomial record fiber and strict outer epsilon<1 after increasing the threshold. In particular, neither raw10^9 nor selected p3/p16 reserve constants stand in for these expanded values. + +Thus P2–P4 can consume a genuine new finite instance of H_selected's grammar and precision/stock/tape prescriptions. This note does not independently prove the historical native movement/repair or outer analytic/recovery stack. Those are exactly the assumptions already retained by selected #4470, with no additional candidate-specific implementation assumption. + +## 7. Conclusion and exact limits + +Given H_selected and the source-bound exact semantic/phase endpoints supplied by the independent native dossier, the final catalogue has permitted explicit all-f realizations, legal actual-owner return, finite raw tariffs and the selected expanded-constant substitution. No extra primitive or changed movement exponent is required. P1 is therefore a **consequence** of H_selected for this instance. It need not be restated as a new hypothesis “the new recipes implement.” + +`checks/specialization.py` runs through the master verifier and its source-authenticated `--repo` working-byte loader; it never substitutes clean Git blobs for dirty inputs. Its new actual catalogue has800monomials with at most83 elementary records each, compared with the uniform171 bound. It also checks1692selected monomial records by the identical schema, exhaustive event/role/rank/scalar census in both orientations, helper geometry, retained main charts, the4802route grouping and raw bounds. Controls reject singular maps, non-Z4 absolute phases, borrowed clear, unpaid rank changes, non-dyadic scalars and an unlifted f=2 global phase. Exact phase/operator equality is intentionally supplied by the separate phase/native verification rather than inferred from membership. + +Credits remain with Cao Yifan/intqwq (#4610), Cinna Davis (#4470/#4416/controller/helper lineage), zxv (#4359/native/compiler/semantic precision), icekylinx and Dugongue (general Clifford/transported frames), Jacob Alan Sussman (mixed integer compiler), and all retained physical/BIT/geometry/analytic contributors. This new specialization/proof/check uses substantial OpenAI assistance. It is a scoped conditional AI verification contribution, not an unconditional multiplication theorem or independent human/kernel acceptance. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md new file mode 100644 index 0000000000..9917ac5543 --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/supplement-03-v1/snapshot/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md @@ -0,0 +1,339 @@ +# Native closure and explicit constants for the finite uniform template + +Status: independently audited, conditional on the retained native movement, +fixed-tape, and analytic interfaces stated below. This note supplies the new +finite-template constants; it does not reuse the old supplier's scalar cap, +row reserve, or obsolete pathwise precision exponent. It complements +`AUDIT.md`, `P3-NATIVE-AUDIT.json.gz`, and `P3-COVER-AUDIT.json`. + +Apache-2.0. Substantial OpenAI assistance. The semantic completed-child +argument is the attributed argument in +[`references/semantic-bulk/pr23/semantic-bulk-17-note.tex`](../../../references/semantic-bulk/pr23/semantic-bulk-17-note.tex), +section “Linear semantic precision for this actual circuit.” Its later +explicit-constant application is also in +[`notes/stopped-product-complex.tex`](../../../notes/stopped-product-complex.tex). +The paths in the machine-readable receipt are relative to the repository +root and bind the exact reviewed versions by SHA-256. + +## 1. What has actually been instantiated + +The p3 complex unit is a complete native word, not just a histogram. The +independent audits verify its serialized scalar controller, 3,136 physical +main-contact maps and their absolute phases, 672 complete main endpoints, +2,856 actual local helper roles, causal idle windows, every paid completion, +and the final order of whole-field normalizers. Its productive targets are + +``` +{6:192, 7:56, 8:93, 9:1229, 25:448, 57:224}. +``` + +There are 2,242 independent productive fields, one explicitly owned center, +and paid children + +``` +{1:17623, 2:5065, 3:1738, 4:714, 5:254}. +``` + +All productive inputs are arbitrary. The owned center is initialized and +cleared; it is never an additional credited output. Every helper endpoint +is autonomous at the completed local boundary. Independent normalizers +therefore surround an entire local call, without changing the frames of +internal ADD instructions. + +The exact integer precompiler in `AUDIT.md` turns this unit into a finite +uniform word with parameters + +* ambient rank `N >= 2`; +* `W` productive arrays, each receiving the **full** rank-`N` transform; +* `P` rank-one paid children; +* `U` copies of the mixed unit in the completely expanded finite word; +* at most `O=U` owned centers, conservatively one per mixed-unit instance. + +For every rational `z` strictly above the mixed root and below one, the +constructive count argument provides an `N` with `P < W*N^z`. +“Finite” here means fixed before the eventual multiplication input grows. +It can be astronomically large. Neither this note nor the receipts claim +to have materialized the winning near-threshold instance. The later +`../controller/EXPLICIT-TEMPLATE-BOUNDS.md` strengthens the existence +argument to the specified complex rank `N=2^276540184361`, with uniform +saving `0.002304`; no search for a successful rank is left unperformed. +The integer recursion defines its exact finite `W,P,U`, and the constants +below are computable functions of that finite result. + +The fully materialized, depth-zero `N=57` example has `W=2242`, `P=127570`, +and `U=1`. It is a useful independent check that complementary source jobs +are really paid: `57*2242-127570=224`. This small example is not claimed to +attain the limiting mixed exponent. + +## 2. Every column count and every complete spectator field + +The local logical identities were replayed in a free noncommuting operator +word algebra. Apart from rational scalar arithmetic, the checker uses only +composition and cancellation of an operator with its recorded inverse. +For any positive integer `f`, substitute the `f`-column physical operator +for each such generator. This extends to an algebra homomorphism on the +free word algebra and preserves the checked identities. + +This is not the false assertion that tensor power is additive on arbitrary +matrix sums. The role-level scalar word is unchanged. Each physical address +generator is replaced by its column lift, while its formal products and +linear combinations are evaluated on the same independent role arrays. + +A rank-zero native monomial has the form + +``` +|x> -> i^(a+q(x)) |M*x+b>, +``` + +with invertible binary `M` and a permitted quadratic phase `q`. Its column +lift has blockwise address map `M`, translation `b` in every column, and +phase `a*f + sum_j q(x_j)` modulo four. This explicitly retains the absolute +phase. A fixed coordinate matcher in the precompiler becomes the same +fixed permutation of `f`-axis blocks. All untouched axes remain complete +spectator fields. A rank-one leaf becomes the standard rank-`f` child. + +The retained exact Clifford normal form supplies the monomial factors +around each child. The independent p3 audit checks the whole main boundary, +including the output translations required by negative powers of `C_q`. +The fixed THREE/base selection is valid for every column count: THREE/base +and THREE/extra have identical entrance and exit operators; their difference +is an internal frame and its associated warps. No layer-dependent selector +is required for the endpoint contract. + +For any integer input width `e=N*f+r`, first apply the `r=2`, `B=P+E`, and `E>=64`, + +``` +2*B*(N-1) >= P+E, +2*B*f+P*f+E <= 2*B*N*f <= 2*B*e. +``` + +Induction gives `A(e)<=2B e`. Completed disjoint selected-axis pieces have +total width at most `d`. The retained prefix kernels, outer phases and +normalization add at most `18d`, giving + +``` +A_layer <= (2*B+18)*d < C0*d. +``` + +Every calculation remains on one fixed fine grid. A child is never rounded, +compressed, or re-encoded at return. The change is to the proof's bound on a +completed value, not to its stored representation. Other fields remain +parked while the child executes. This is why the linear semantic bound +survives a huge scalar word and why the older pathwise `C1>1` estimate is +unnecessary. + +The stopping rule can be any fixed rational `0=2N`, every internal call has the required positive `f`; +the completed-leaf estimate remains `8e` at the stopping leaves. No old +numerical cutoff is carried over. + +### An effective threshold, including enormous constants + +Suppose `d<=c*p^epsilon`, with fixed `c>=1` and rational +`epsilon=a/b` in `(0,1)`. Let `L` be the binary bit length of +`4*C0*ceil(c)` and choose + +``` +t = max(4, ceil(b*L/(b-a))), p0 = 2^t. +``` + +For all `p>=p0`, `p^(1-epsilon)>4*C0*c`, so the integer guard +`Delta=C0*d` is at most `p/4`. Signed components with `p+Delta` fractional +bits and `Delta+3` magnitude/sign bits have width + +``` +p+2*Delta+3 <= 2p. +``` + +The audit emits `p0` as a compressed power of two. It does not try to +allocate that many bits. This construction proves the eventual `O(p)` word +bound for the new finite template, including the current outer choice +`epsilon=99999/100000`. Huge fixed constants change `p0`, not `C1` or the +power in the final exponent inequalities. + +## 5. Productive stock, owned storage, and native tape closure + +For the ordinary uniform complex word, let + +``` +D(e)=0 if e=W^D(d)` for `K>=1`. Pad complete rows once to the next multiple +of `W^D(d)`. The padding factor is below two. Every descendant then has +exactly `1/W` of its parent's productive volume and enough divisibility for +its remaining depth, with complete active, control and spectator fields. +All-row endpoint correctness restores appended zero rows to zero. + +Owned storage contributes no factor to productive output credit. A safe +choice is one full center field per finite mixed-unit instance, namely +`O=U`. At an ordinary recursion node each such field has the same shape as +one productive role stream, of volume `V/W`. Initialize, retain and clear +it as its actual word prescribes. If simultaneously suspended units keep +live centers, they receive distinct banks. Reusing one bank per recursion +depth would not suffice. Owned-space scans and parking cost fixed multiples +of volume; paid calls on those banks are already in `P`. + +The integer audit checks row divisibility and one-time padding at several +floor-depth boundaries. It also gives an explicit sufficient threshold +for `q0=C and integer power v. +After the product finishes, complete every rank K2^26*N^5, also avoiding the finite denominators and +rank witnesses, exceeds 256/(C0-C1)*N^5 and pays the complete fallback. + +Change the atom power to delta=0.004. With retained old ordinary saving +a_old=0.0000384599, the ordinary saving is exactly + + (1-delta)*C1+delta*a_old = 0.0034363538396 > 0.0034. + +Admit 0.0034. The linear adapter has saving delta>0.0034363538396; stock +is sublinear because delta<1-0.0034363538396. The old delta=0.003 fails +this adapter comparison and is explicitly rejected. All compiled dimensions, +role counts, routes, centers and leaf counts replace the old p3 constants in +the delayed-cover stock formulas. For fixed compiled N,B,P, the borrowed +digits remain O(w log e)=o(e), with w=ceil(e^0.004). + +Put kappa=0.00296, C=0.00296030, d=(C-kappa)/7, and + + complex_uniform = kappa+6d, b=kappa+5d, + a=kappa+4d, q=kappa+3d, + epsilon=1-d, beta=1-3d, r0=d/10, stop=layout=d. + +Use the admitted BIT saving 0.0034 in the unchanged nine-row outer ledger. +All 54 named strict predicates and the three retained functional predicates +pass. An additional functional predicate binds the new BIT atom explicitly, +beta*(1-0.004)>0. The smallest outer saving exceeds kappa by +629378373/4900000000000000. Old BIT admission, zero layout, closed epsilon, +closed complex slack and an unfunded endpoint each fail their intended checks. + +## 5. Finite constants, precision and scope + +No new operation is declared free. Raw scalar programs, signed swaps, copy/ +erase records, affine port charts and inverse routes are finite emitted lists. +The conservative raw scalar record bound is 10^9, above the checked local, +query and boundary bills. Every query adds its own paid job and its own +fixed routing records. Initial/end charts and target normalizers are retained. + +For a raw unit with productive count B, paid count P and scalar bound L0, +a v-fold chronological product has at most +L0*v*(B+P)^v nonrecursive records before final completion. Its old paid rank +mass is P1^v, and added completion rank is at most B^v*b^v. Bound all new +completion/splitting records by their integer rank masses, then multiply by +10*m^(2v)+10 to cover whole-job normalizers and inverse routes. This is a +constructive finite overestimate, not a claim that those movements vanish. +Allocate a distinct center to each simultaneously suspended instance; a +bound by the total expanded record count suffices. The integer compiler adds +only finitely many effective classes and clears their batch denominators. + +Apply the retained semantic-precision and stock prescriptions to these new +finite lists, coefficient heights, prefix row norms, owned centers and +matchers. They are fixed constants before the asymptotic input size varies. +All raw complex boundary coefficients are unit signed scalars; native dyadic +coefficients and BIT rational cover entries retain their pinned bounds. A +brute-force product of per-record row-mass bounds supplies an effective +prefix bound if a sharper bound is unnecessary. Increase the fixed precision +constant and fixed stock coefficient accordingly. The outer slack conditions +are strict, so absorbing these fixed constants does not change their powers. +This inherits the same all-column, physical tape, native movement/repair, +precision, analytic and recovery contracts as the reviewed source; it does +not independently prove that historical implementation stack. + +## 6. Sources, attribution, validation and next questions + +Canonical baseline: 3a23e9d9d2e67833515d1c60a17e966bcdcab43c, priority +revision 7. Refreshed main and PR checks are recorded in TASK.json. Live +overlap covered all open PR bodies and Discussion pages; sparse local README +coverage and closed-PR-body coverage are incomplete. No novelty theorem is +claimed. #4194's coded/clean local hybrid addresses a different interface; +this construction uses complete native calls and copied rank-one shears. + +Credit: zxv for the retained controller/native construction and higher-moment +tail proof (#4359/#4433); Jacob Alan Sussman for mixed-target integer flow +(#4268); Cinna Davis for the p7 paid-completion/native construction (#4416); +DreamingOfClouds, eumemic and their retained PR589/PR555 BIT lineage; +David Ganz, Jeremy Kothe, Rohan Arun, Marius-Paul Dumitrean, Erwan Secousses +and the native/outer contributors named in the unchanged source notices and +the selected contributor map. New query-thinning construction, proofs and +checks were prepared for Cinna Davis with substantial OpenAI Codex assistance. +Apache-2.0. No subagents were used. + +Reproduce with the registered command in README.md. Finite source, physical +operator, phase, interval, invoice and outer checks support this written +conditional proof; they do not constitute formal verification. Full old native +word replays, Lean and Docker were not rerun for this contribution. + +Open next questions, with first steps and blockers, are in TASK.json. The +next useful audit is the whole-job/owned-query lowering at arbitrary column +multiplicity. The next improvement question is a changed local query/native +alphabet or controller topology. A larger path census alone gives no global +optimality or assurance of a stronger complete construction. diff --git a/research/price-plane-independent-validation/frozen/09-capsule-cold/verify_merkle_provenance.py b/research/price-plane-independent-validation/frozen/09-capsule-cold/verify_merkle_provenance.py new file mode 100644 index 0000000000..900de5d04e --- /dev/null +++ b/research/price-plane-independent-validation/frozen/09-capsule-cold/verify_merkle_provenance.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +"""Verify frozen source provenance using only included raw Git objects and bytes. + +Prepared for Chris R / Clear1nsight with substantial OpenAI Codex assistance. +Apache-2.0. No candidate scientific module is imported or executed. +""" +from pathlib import Path +import argparse,base64,hashlib,json + +def need(ok,why): + if not ok:raise ValueError(why) +def oid(kind,raw):return hashlib.sha1(kind.encode()+b' '+str(len(raw)).encode()+b'\0'+raw).hexdigest() +def entries(raw): + rows={};pos=0 + while postree->path->blob bytes and actual direct canonical source parent. + for n in ['capsule-v1','capsule-5387-v1']: + with tempfile.TemporaryDirectory(prefix='price-source-') as td: + result=json.loads(run([C/'verify_merkle_provenance.py','--capsule',C/n,'--receipt',C/(n+'-MERKLE-PROVENANCE.json')],Path(td),15));results.append(result) + # The same parser verifies the supplementary canonical precision proof paths. + with tempfile.TemporaryDirectory(prefix='price-supplement-') as td: + t=Path(td);proof=read(HERE/'SUPPLEMENT-MERKLE.json');m=b'canonical supplementary precision source paths';(t/'IMMUTABLE-MANIFEST.json').write_bytes(m) + proof['capsule_manifest_sha256']=hashlib.sha256(m).hexdigest() + for r in proof['rows']: + p=t/r['capsule_path'];p.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(F/r['capsule_path'],p) + (t/'proof.json').write_text(json.dumps(proof));results.append(json.loads(run([C/'verify_merkle_provenance.py','--capsule',t,'--receipt',t/'proof.json'],t,15))) + return results + +def resolve_historical(name): + aliases=read(HERE/'PATH-ALIASES.json');prefix=aliases['workspace_prefix']+'/' + if name.startswith(prefix):name=name[len(prefix):] + need(name in aliases['paths'],'undeclared historical dependency '+name) + return safe(HERE,aliases['paths'][name]) + +def joined_static(): + result={} + for rev,receipt_name,closure_name,light_name in [('5383','receipt-v3.json','CLOSURE-v2.json','LIGHT-ARITHMETIC.json'),('5387','5387-receipt-v2.json','CLOSURE-5387-v1.json','LIGHT-ARITHMETIC-5387.json')]: + r=read(F/'04-exact-funding'/receipt_name);c=read(F/'03-precision-stock'/closure_name) + need(r['status']=='FUNDED_CONDITIONAL_INDEPENDENT_STATIC_ADMISSION' and r['endpoint_funded'],'static funded gate '+rev) + need(c['status']=='PASS_SAME_PREMISE_CONSTRUCTIVE_FINITE_TEMPLATE_SPECIALIZATION','precision applicability '+rev) + need(c['retained_assumptions']==ASSUMPTIONS and not c['new_candidate_specific_assumptions'],'five framework assumptions '+rev) + for name,h in r.get('closure_dependencies_sha256',{}).items():need(sha(resolve_historical(name))==h,'closure dependency '+name) + for name,h in c['dependencies_sha256'].items():need(sha(resolve_historical(name))==h,'template dependency '+name) + for name,h in c['source_proof_sha256'].items():need(sha(C/'supplement-03-v1/snapshot'/name)==h,'canonical source proof '+name) + need(r['N']==c['expanded_constants']['N'],'fresh expanded finite N '+rev) + need(not c['expanded_constants']['old_raw_cap_used_as_expanded_cap'],'expanded constants not raw cap '+rev) + need(c['stock']['simultaneous_rule']=='product','simultaneous stock product '+rev) + result[rev]=dict(head=r['candidate']['head'],funded_kappa=r['kappa'],N=r['N'],framework_assumptions=5) + return result + +def cold(): + v=read(C/'VALIDATION.json');b=read(C/'BOUNDED-REGISTERED-RUN.json') + need(v['status']=='PASS_FUNDED_CONDITIONAL_AND_ONE_REGISTERED_NORMAL_OPTIMIZED_PAIR' and v['candidate']['head']==HEAD,'strongest frozen cold head/status') + need(all(value==b.get(key) for key,value in v['registered_replay'].items()),'complete cold resource receipt join') + need(b['status']=='PASS_COMPLETE_REGISTERED_NORMAL_AND_OPTIMIZED' and b['exit']==0 and b['resource_stop'] is None and not b['scientific_or_git_bytes_changed'],'actual frozen registered cold pair') + need(read(C/'PRE-RUN-HASHES.json')==read(C/'POST-RUN-HASHES.json'),'complete original cold pre/post equality') + need(len(read(C/'PRE-RUN-HASHES.json'))==20535,'complete original cold inventory count') + need(sha(C/'REGISTERED-COLD.stdout.log')==b['stdout_sha256'] and sha(C/'REGISTERED-COLD.stderr.log')==b['stderr_sha256'],'complete cold stdout/stderr') + need((C/'REGISTERED-COLD.stderr.log').stat().st_size==0,'cold stderr empty') + log=(C/'REGISTERED-COLD.stdout.log').read_text();need(log.count('PASS_CONDITIONAL_KAPPA_003026674765_COMPILER_MARGIN')==2 and 'PASS_REGISTERED_RESEARCH_PACKAGE' in log,'both actual author modes') + need(v['controls']['two_modes_total']==44 and v['assumptions']==ASSUMPTIONS,'actual cold controls and scope') + author=C/'capsule-5387-v1/snapshot/research/eight-owned-relations' + for key,name in [('RESULT_json_sha256','RESULT.json'),('WORD_gz_sha256','WORD.json.gz')]:need(sha(author/name)==v['fresh_artifact_equality'][key],'cold exact scientific artifact '+name) + need(hashlib.sha256(gzip.decompress((author/'WORD.json.gz').read_bytes())).hexdigest()==v['fresh_artifact_equality']['WORD_decompressed_sha256'],'cold decompressed word') + for role,r in v['independent_gates'].items():need(sha(resolve_historical(r['path']))==r['sha256'],'cold independent gate '+role) + return dict(status=b['status'],seconds=b['seconds'],peak_sampled_descendant_rss_kib=b['peak_sampled_descendant_rss_kib'],original_unchanged_files=20535,author_controls=44,freshly_rerun_by_this_package=False,comparison5383_own_author_cold=False) + +def stable(d):return {k:v for k,v in d.items() if k!='seconds'} +def fresh_engines(tmp): + t=tmp/'frozen';shutil.copytree(F,t) + # Every executable writes only private copies; the actual package is immutable. + result={} + for rev,where in [('5383','01-physical'),('5387','01-physical/5387-fresh')]: + p=t/where/'independent_physical_check.py';old=read(F/where/'PHYSICAL-RECEIPT.json');new=json.loads(run([p],tmp)) + need(stable(new)==stable(old),'complete independent physical result '+rev) + result['physical'+rev]=dict(status=new['status'],seconds=new['seconds'],actual_word_mutations=len(new['negative_controls'])) + # Original census and precision assertions are preserved with optimize=0; + # physical/exact checks use explicit need/raise and inherit wrapper optimization. + for rev,n,capsule in [('5383','v1','capsule-v1'),('5387','v2','capsule-5387-v1')]: + run([HERE/'exec_frozen.py',t/'02-census'/('census.py' if n=='v1' else 'census-v2.py'),t/'09-capsule-cold'/capsule],tmp) + invoice=read(t/'02-census'/('INVOICE-'+n+'.json'));old=read(F/'02-census'/('INVOICE-'+n+'.json')) + need(invoice==old,'full independent literal invoice '+rev) + need(sha(t/'02-census'/('CHRONOLOGY-'+n+'.json'))==old['chronology_sha256'],'full chronology regeneration '+rev) + result['census'+rev]=dict(paid=invoice['totals']['paid_jobs'],productive=invoice['totals']['productive_fields'],complete_invoice_and_chronology_equal=True) + path=t/'03-precision-stock'/('check_precision.py' if n=='v1' else 'check_precision_5387.py') + run([HERE/'exec_frozen.py',path],tmp) + name='LIGHT-ARITHMETIC.json' if n=='v1' else 'LIGHT-ARITHMETIC-5387.json' + need(stable(read(t/'03-precision-stock'/name))==stable(read(F/'03-precision-stock'/name)),'full literal precision/scalar audit '+rev) + receipt=F/'04-exact-funding'/('receipt-v3.json' if n=='v1' else '5387-receipt-v2.json') + exact=json.loads(run([HERE/'replay_exact.py',t/'04-exact-funding/exact_engine.py',t/'02-census'/('INVOICE-'+n+'.json'),receipt],tmp)) + need(exact['root']['derivative_upper'].startswith('-') and exact['root']['remaining_moment_upper'].startswith('-'),'actual full-domain fixed-profile ceiling proof') + result['exact'+rev]=dict(status=exact['status'],seconds=exact['seconds'],kappa=exact['kappa'],root=exact['root'],outer_strict=exact['outer']['strict_count'],outer_functional=exact['outer']['functional_count']) + # The equality guard consumes a newly reconstructed full invoice, not a source + # RESULT. False productive credits must fail that actual guard. + mutant=copy.deepcopy(old);mutant['histograms']['productive']['9']+=128 + try:need(invoice==mutant,'unearned128H9 targets rejected by fresh literal census') + except ValueError:pass + else:raise ValueError('unearned productive credit accepted') + result['assertion_adapter']='Frozen assertion-based census/precision source compiled with explicit optimize=0 in both parent modes; physical/exact need/raise checks inherit parent optimization.' + return result + +def controls(manifest,tmp): + row=next(r for r in manifest['files'] if r['path'].endswith('capsule-5387-v1/snapshot/research/eight-owned-relations/WORD.json.gz')) + q=tmp/row['path'];q.parent.mkdir(parents=True,exist_ok=True);q.write_bytes((HERE/row['path']).read_bytes()+b'changed') + try:inventory(tmp,dict(files=[row])) + except ValueError as e:need('packet byte guard' in str(e),'source mutation wrong failure') + else:raise ValueError('source mutation accepted') + return ['actual changed WORD byte rejected before evaluation','unearned 128 productive H9 targets rejected against freshly reconstructed literal invoice','both fresh physical engines execute seven actual word mutation controls','exact engine rechecks root signs, derivative/away ceiling, reserve and all outer semantic controls'] + +def main(): + p=argparse.ArgumentParser();p.add_argument('--integrity-only',action='store_true');a=p.parse_args();start=time.monotonic() + need(sha(HERE/'PACKET.json')==PACKET_SHA256,'immutable packet manifest') + manifest=read(HERE/'PACKET.json');count=inventory(HERE,manifest);sources=merkle();static=joined_static();frozen=cold() + result=dict(status='PASS_PRICE_PLANE_INDEPENDENT_INTEGRITY',canonical_base=MAIN,candidate_head=HEAD,inventory_files=count,source_proofs=sources,static_funded=static,frozen_actual_author_cold=frozen,selected_record_changed=False) + if not a.integrity_only: + with tempfile.TemporaryDirectory(prefix='price-independent-') as td: + result['fresh_independent_engines']=fresh_engines(Path(td));result['controls']=controls(manifest,Path(td)/'mutation') + inventory(HERE,manifest);result['status']='PASS_INDEPENDENT_PRICE_PLANE_CONDITIONAL_VALIDATION' + result['seconds']=round(time.monotonic()-start,3);print(json.dumps(result,indent=2,sort_keys=True)) +if __name__=='__main__':main() From ac21ffde44c1356983e260b6301aa31478d5a3ec Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 08:29:50 +1100 Subject: [PATCH 2/4] Retain full frozen and independent execution logs --- .../package-run/REGISTERED-PACKAGE.stderr.log | 0 .../package-run/REGISTERED-PACKAGE.stdout.log | 315 ++++++++++ .../01-physical/5387-fresh/check.stdout.log | 578 ++++++++++++++++++ .../REGISTERED-COLD.stderr.log | 0 .../REGISTERED-COLD.stdout.log | 5 + 5 files changed, 898 insertions(+) create mode 100644 research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stderr.log create mode 100644 research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stdout.log create mode 100644 research/price-plane-independent-validation/frozen/01-physical/5387-fresh/check.stdout.log create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/REGISTERED-COLD.stderr.log create mode 100644 research/price-plane-independent-validation/frozen/09-capsule-cold/REGISTERED-COLD.stdout.log diff --git a/research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stderr.log b/research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stderr.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stdout.log b/research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stdout.log new file mode 100644 index 0000000000..8976cce521 --- /dev/null +++ b/research/price-plane-independent-validation/evidence/package-run/REGISTERED-PACKAGE.stdout.log @@ -0,0 +1,315 @@ +CHECK Offline immutable source/Merkle proofs, complete frozen actual cold receipt, fresh both-candidate independent physical+census+precision+exact funding engines and mutation controls. +{ + "candidate_head": "b1ab650d36f59e5be682a813145b7c67e219e341", + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "controls": [ + "actual changed WORD byte rejected before evaluation", + "unearned 128 productive H9 targets rejected against freshly reconstructed literal invoice", + "both fresh physical engines execute seven actual word mutation controls", + "exact engine rechecks root signs, derivative/away ceiling, reserve and all outer semantic controls" + ], + "fresh_independent_engines": { + "assertion_adapter": "Frozen assertion-based census/precision source compiled with explicit optimize=0 in both parent modes; physical/exact need/raise checks inherit parent optimization.", + "census5383": { + "complete_invoice_and_chronology_equal": true, + "paid": 64148, + "productive": 10800 + }, + "census5387": { + "complete_invoice_and_chronology_equal": true, + "paid": 64148, + "productive": 10800 + }, + "exact5383": { + "kappa": "151333/50000000", + "outer_functional": 4, + "outer_strict": 54, + "root": { + "bracket": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "decreasing_domain": [ + "0", + "1/20" + ], + "derivative_upper": "-488683626526710462039838692687163785495951656708121746250621/2500000000000000000000000000000000000000000000000000000", + "remaining_domain": [ + "1/20", + "1" + ], + "remaining_moment_upper": "-34100776275477169959902634452104360781907588365102281856203/5000000000000000000000000000000000000000000000000000000", + "scope": "necessary fixed-profile moment ceiling on 0 Date: Sat, 24 Oct 2026 08:30:47 +1100 Subject: [PATCH 3/4] Clarify frozen review scope and completed validation evidence --- .../price-plane-independent-validation/HANDOFF.md | 6 +++--- .../price-plane-independent-validation/README.md | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/research/price-plane-independent-validation/HANDOFF.md b/research/price-plane-independent-validation/HANDOFF.md index 2f04d913c8..1c9d5d9cb6 100644 --- a/research/price-plane-independent-validation/HANDOFF.md +++ b/research/price-plane-independent-validation/HANDOFF.md @@ -2,14 +2,14 @@ HANDOFF **Research discussion / PR / artifact:** Independent validation package `research/price-plane-independent-validation`; [current public review claim](https://github.com/CrocSwap/integer-mult-bounds/pull/5387#issuecomment-6374985927). This package is local until root publishes its committed branch. Operational drafts and publication receipts are in `outputs/price-plane-validation-package-20261024` at the coordinating workspace. -**Exact commit:** Sources: strongest PR5387 `b1ab650d36f59e5be682a813145b7c67e219e341`; comparator PR5383 `4bd6efa51a495a7c7b7754915cf0244e7e60969e`; canonical base/source parent `1ec1119972c9aefe42525172d07b332fcff81cb4`. Root records the exact package publication commit separately from those source commits. +**Exact commit:** Sources: reviewed PR5387 `b1ab650d36f59e5be682a813145b7c67e219e341`; comparator PR5383 `4bd6efa51a495a7c7b7754915cf0244e7e60969e`; canonical base/source parent `1ec1119972c9aefe42525172d07b332fcff81cb4`. Root records the exact package publication commit separately from those source commits. -**What is established:** Independent source-bound physical/census/precision/stock/tape/exact-funding gates admit strongest independently validated conditional point in this frozen round, κ=.003026674765. Complete bill64148paid/10800productive,surplus752. Unique fixed-profile crossing strictly within(.00302667476807,.00302667476808), with full domain derivative/away proof. One actual frozen PR5387 author registered pair passes140.030862s/223576KiB,44controls,20535unchanged files. Own registered independent normal/optimized pair passed128.740804s,224952KiBpeak,exit0,empty stderr,178package+174shared guarded inputs unchanged. The package independently reruns both physical words, full literal invoices/chronologies, scalar preparation and exact numeric funding; all stable fields must match, with explicit source/credit/semantic controls. The same five framework assumptions remain, and selected metadata is unchanged. +**What is established:** Independent source-bound physical/census/precision/stock/tape/exact-funding gates admit strongest independently validated conditional point in this frozen round, κ=.003026674765. Complete bill 64,148 paid / 10,800 productive, surplus 752. Unique fixed-profile crossing strictly within (.00302667476807, .00302667476808), with full domain derivative/away proof. One actual frozen PR5387 author registered pair passes in 140.030862 s / 223,576 KiB, 44 controls, 20,535 unchanged files. Own registered independent normal/optimized pair passed in 128.740804 s, 224,952 KiB peak, exit 0, empty stderr, 178 package + 174 shared guarded inputs unchanged. The package independently reruns both physical words, full literal invoices/chronologies, scalar preparation and exact numeric funding; all stable fields must match, with explicit source/credit/semantic controls. The same five framework assumptions remain, and selected metadata is unchanged. **What remains uncertain:** Generic native/all-column, owned-erasure, compiler, precision/tape and analytic-recovery foundations remain conditional. Source phase lowering and ordinary BIT are authenticated inherited foundations. No own PR5383 author cold pair, emitted enormous compiler word, unconditional/formal-kernel theorem, independent human acceptance or global construction optimum is claimed. Hosted CI and maintainer selection require separate evidence. Original historical reports retain their then-open gates; final joined records supersede those stages without rewriting them. **Smallest useful next task:** Root reviews exact final package/export receipts, refreshes live source/head/guidance/overlap through the sole feed, publishes the focused independent validation PR and records public CI. New physical-profile research needs a changed literal witness and complete invoice; do not infer physical coverage from histogram equality or repeat the author cold pair. -**Reproduction command and expected runtime:** `python3 -B scripts/research_package.py --package research/price-plane-independent-validation` runs normal/optimized independent checks with240seconds per mode and roughly70seconds per mode expected. Git-free direct: `python3 -I -B research/price-plane-independent-validation/verify.py`; optimized direct adds`-O`. Add`--integrity-only` for source/receipt authentication without mathematics. Frozen assertion-based census/precision checks are explicitly compiled with optimize=0 in both modes. Actual package results and resource guard are in RESULT.json/evidence/package-run; complete actual author cold records remain separately in frozen/09-capsule-cold. +**Reproduction command and expected runtime:** `python3 -B scripts/research_package.py --package research/price-plane-independent-validation` runs normal/optimized independent checks with 240 seconds per mode and roughly 70 seconds per mode expected. Git-free direct: `python3 -I -B research/price-plane-independent-validation/verify.py`; optimized direct adds `-O`. Add `--integrity-only` for source/receipt authentication without mathematics. Frozen assertion-based census/precision checks are explicitly compiled with optimize=0 in both modes. Actual package results and resource guard are in RESULT.json/evidence/package-run; complete actual author cold records remain separately in frozen/09-capsule-cold. **Predecessor credit:** Ali Romman #5377 one-relation predecessor and #5383 eight-relation mechanism; Dugongue #5387 refinement and changed witness; Cao Yifan #4610; Cinna Davis controller/helpers; zxv native/cache/compiler/precision; Jacob Alan Sussman recursion; Chris R/Clear1nsight #5241/#5384 and this independent review; ToikY, Tekalign, Douglas Colkitt and all exact retained native/Clifford/BIT/precision/analytic/recovery source notices. Substantial OpenAI Codex assistance; Apache-2.0. No construction authorship or independent human acceptance claimed. diff --git a/research/price-plane-independent-validation/README.md b/research/price-plane-independent-validation/README.md index 5047f943e0..71ce961ea2 100644 --- a/research/price-plane-independent-validation/README.md +++ b/research/price-plane-independent-validation/README.md @@ -16,21 +16,21 @@ The independent census reads literal source JSON and reconstructs every paid/tar The independent standard-library rational engine uses directed atanh/Taylor enclosures. It reconstructs and checks the entire arithmetic receipt rather than importing the submitted interval/native/price evaluator. The two candidates have the same complete P/T moment profile, whose unique crossing is strictly enclosed by **(.00302667476807, .00302667476808)**. The verifier proves a negative derivative on `[0,1/20]` through sixteen directed interval cells and a negative moment on `[1/20,1]` through 128 interval cells. The strict endpoint signs and these two domain checks establish the necessary fixed-profile moment ceiling on `0 1/[1024*(2^30-1)]`, while the paid ratio requires `rho < 1-alpha`; the new reserve lies strictly within that interval. Original `10^-9` and insufficient `10^-13` reserve controls fail. The uniform gap is `1/7000000000000`; integer grid `j=58507` satisfies `(7000000000000*j+1)^1000 < 2^j`, and the preceding grid fails. It supplies `H=409549000000000000` and `N=2^H`. All **54 strict plus four functional** outer predicates are freshly recomputed and positive. Full exact values, root/derivative/away enclosures, compiler predicates and controls appear in [5387-receipt-v2.json](frozen/04-exact-funding/5387-receipt-v2.json). The separately funded PR5383 point uses its own complete receipt and threshold. +The actually funded PR5387 point in this frozen round uses tested saving `.003026674766`, final κ `.003026674765`, tensor power 1024, cutoff 20, floor 21, shift 1/5, θ 63/64, logarithm power 1000 and reserve `10^-12`. Both tails are strictly below 97/100. The fixed completion/rounding envelope requires `rho > 1/[1024*(2^30-1)]`, while the paid ratio requires `rho < 1-alpha`; the new reserve lies strictly within that interval. Original `10^-9` and insufficient `10^-13` reserve controls fail. The uniform gap is `1/7000000000000`; integer grid `j=58507` satisfies `(7000000000000*j+1)^1000 < 2^j`, and the preceding grid fails. It supplies `H=409549000000000000` and `N=2^H`. All **54 strict plus four functional** outer predicates are freshly recomputed and positive. Full exact values, root/derivative/away enclosures, compiler predicates and controls appear in [5387-receipt-v2.json](frozen/04-exact-funding/5387-receipt-v2.json). The separately funded PR5383 point uses its own complete receipt and threshold. ## Precision, storage and inherited premises -The constructive finite-template proof prescribes fresh expanded W/P/O/R/G and thresholds for the actual prepared, completed, split and compiled word at the new N. Each raw occurrence has 274 full LOCAL private banks, plus disjoint query, compiler, completion, split and internal scratch banks. The new preparation has coefficient row norm at most9 and dyadic denominator2; no unit-ball hypothesis is imposed on prepared inputs. Fresh scalar height is29193. The proof pays for all changed instruction counts and uses `Z=W+O`, `E=64*(Z+N+P+G+1)^3`, `B=P+E`, `C0=32*N*B^2`, `C1=1`. Its leaf-inclusive logarithmic error count is `(G+N+2P+4)*d`; no approximate zero is silently treated as exact. Ordinary BIT and complex stock use their simultaneous product and a new eventual threshold. The small raw 181,098,496 allowance is not an expanded storage/precision cap. The astronomical word is not materialized. +The constructive finite-template proof prescribes fresh expanded W/P/O/R/G and thresholds for the actual prepared, completed, split and compiled word at the new N. Each raw occurrence has 274 full LOCAL private banks, plus disjoint query, compiler, completion, split and internal scratch banks. The new preparation has coefficient row norm at most 9 and dyadic denominator 2; no unit-ball hypothesis is imposed on prepared inputs. Fresh scalar height is 29193. The proof pays for all changed instruction counts and uses `Z=W+O`, `E=64*(Z+N+P+G+1)^3`, `B=P+E`, `C0=32*N*B^2`, `C1=1`. Its leaf-inclusive logarithmic error count is `(G+N+2P+4)*d`; no approximate zero is silently treated as exact. Ordinary BIT and complex stock use their simultaneous product and a new eventual threshold. The small raw 181,098,496 allowance is not an expanded storage/precision cap. The astronomical word is not materialized. -The exact retained assumptions are `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. Source phase lowering, native movement, ordinary BIT stock/conversion and analytic recovery are authenticated inherited foundations. They were not freshly re-executed here. There is no new candidate-specific assumption, unconditional theorem, Lean/kernel proof or independent human acceptance claim. Frozen reports preserve the status at their original execution time; later joined gates and the complete cold record resolve their then-outstanding package obligations without rewriting historical evidence. +The exact retained assumptions are `native_all_columns`, `owned_erasure`, `compiler `, `precision_tape`, `analytic_recovery`. Source phase lowering, native movement, ordinary BIT stock/conversion and analytic recovery are authenticated inherited foundations. They were not freshly re-executed here. There is no new candidate-specific assumption, unconditional theorem, Lean/kernel proof or independent human acceptance claim. Frozen reports preserve the status at their original execution time; later joined gates and the complete cold record resolve their then-outstanding package obligations without rewriting historical evidence. ## Frozen actual cold evidence and fresh package replay -[VALIDATION.json](frozen/09-capsule-cold/VALIDATION.json), the complete [resource receipt](frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json), full stdout/stderr, root grant and original pre/post inventories authenticate **one actual normal/optimized registered PR5387 author pair**: 140.030862 seconds, 223,576KiB peak sampled aggregate descendant RSS, exit0, empty stderr, no resource stop and all20,535 scientific/provenance/Git files unchanged. Both modes reconstructed and checked the complete committed RESULT and decompressed WORD. Fifteen native, five cost/outer and two reserve controls per mode supplied 44 author-path control executions. No own PR5383 author cold pair is claimed. +[VALIDATION.json](frozen/09-capsule-cold/VALIDATION.json), the complete [resource receipt](frozen/09-capsule-cold/BOUNDED-REGISTERED-RUN.json), full stdout/stderr, root grant and original pre/post inventories authenticate **one actual normal/optimized registered PR5387 author pair**: 140.030862 seconds, 223,576 KiB peak sampled aggregate descendant RSS, exit 0, empty stderr, no resource stop and all 20,535 scientific/provenance/Git files unchanged. Both modes reconstructed and checked the complete committed RESULT and decompressed WORD. Fifteen native, five cost/outer and two reserve controls per mode supplied 44 author-path control executions. No own PR5383 author cold pair is claimed. -This package's registered commands freshly rerun the independent physical engines for both candidates, full literal census/chronology, scalar/RREF precision audits and independent rational funding engines. Every stable physical/precision field and every numeric result must equal the exact original reviewer receipt; only execution time is excluded. Original chronology files are regenerated in a private directory and checked against their frozen full SHA256 values in the independent invoices; the approximately40MB of redundant chronology JSON is not vendored. Frozen assertion-based census/precision scripts execute through `compile(optimize=0)` so their checks remain active in both wrapper modes. Physical/rational engines use explicit need/raise checks and inherit wrapper optimization. Frozen source copies and all package evidence are rehashed after execution. +This package's registered commands freshly rerun the independent physical engines for both candidates, full literal census/chronology, scalar/RREF precision audits and independent rational funding engines. Every stable physical/precision field and every numeric result must equal the exact original reviewer receipt; only execution time is excluded. Original chronology files are regenerated in a private directory and checked against their frozen full SHA256 values in the independent invoices; the approximately 40 MB of redundant chronology JSON is not vendored. Frozen assertion-based census/precision scripts execute through `compile(optimize=0)` so their checks remain active in both wrapper modes. Physical/rational engines use explicit need/raise checks and inherit wrapper optimization. Frozen source copies and all package evidence are rehashed after execution. -Package/CI replay authenticates the frozen author cold execution; it **does not rerun the author cold pair**. Package receipts, hosted CI, public review and maintainer selection are separate evidence. The actual registered independent normal/optimized package pair passed in128.740804seconds, peak224952KiB, exit0, empty stderr and no resource stop. All178guarded package inputs and174corresponding shared inputs remained unchanged. See [RESULT.json](RESULT.json) for the complete registered independent package run, and [HANDOFF.md](HANDOFF.md) for publication state. +Package/CI replay authenticates the frozen author cold execution; it **does not rerun the author cold pair**. Package receipts, hosted CI, public review and maintainer selection are separate evidence. The actual registered independent normal/optimized package pair passed in 128.740804 seconds, peak 224,952 KiB, exit 0, empty stderr and no resource stop. All 178 guarded package inputs and 174 corresponding shared inputs remained unchanged. See [RESULT.json](RESULT.json) for the complete registered independent package run, and [HANDOFF.md](HANDOFF.md) for publication state. ## Source integrity and reproduce @@ -52,7 +52,7 @@ python3 -I -B research/price-plane-independent-validation/verify.py python3 -I -O -B research/price-plane-independent-validation/verify.py ``` -Expected full independent replay is about70 seconds per mode; each registered mode has a240-second timeout. Integrity-only does no mathematical replay and takes roughly one second. Semantic controls reject actual WORD mutation, unearned128H9 productive credits, wrong preparation/snapshots/frames/owned returns, reserve/completion/outer violations and unsupported numeric domains. Source authentication and funded finite evidence do not by themselves discharge the inherited theorem premises. +Expected full independent replay is about 70 seconds per mode; each registered mode has a 240-second timeout. Integrity-only does no mathematical replay and takes roughly one second. Semantic controls reject actual WORD mutation, unearned 128 H9 productive credits, wrong preparation/snapshots/frames/owned returns, reserve/completion/outer violations and unsupported numeric domains. Source authentication and funded finite evidence do not by themselves discharge the inherited theorem premises. ## Open next questions From 275dc377246f91ef30dc9e05241b0f637aa807fb Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 08:31:56 +1100 Subject: [PATCH 4/4] Spell retained compiler assumption exactly --- research/price-plane-independent-validation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/research/price-plane-independent-validation/README.md b/research/price-plane-independent-validation/README.md index 71ce961ea2..cf6fb6d20a 100644 --- a/research/price-plane-independent-validation/README.md +++ b/research/price-plane-independent-validation/README.md @@ -22,7 +22,7 @@ The actually funded PR5387 point in this frozen round uses tested saving `.00302 The constructive finite-template proof prescribes fresh expanded W/P/O/R/G and thresholds for the actual prepared, completed, split and compiled word at the new N. Each raw occurrence has 274 full LOCAL private banks, plus disjoint query, compiler, completion, split and internal scratch banks. The new preparation has coefficient row norm at most 9 and dyadic denominator 2; no unit-ball hypothesis is imposed on prepared inputs. Fresh scalar height is 29193. The proof pays for all changed instruction counts and uses `Z=W+O`, `E=64*(Z+N+P+G+1)^3`, `B=P+E`, `C0=32*N*B^2`, `C1=1`. Its leaf-inclusive logarithmic error count is `(G+N+2P+4)*d`; no approximate zero is silently treated as exact. Ordinary BIT and complex stock use their simultaneous product and a new eventual threshold. The small raw 181,098,496 allowance is not an expanded storage/precision cap. The astronomical word is not materialized. -The exact retained assumptions are `native_all_columns`, `owned_erasure`, `compiler `, `precision_tape`, `analytic_recovery`. Source phase lowering, native movement, ordinary BIT stock/conversion and analytic recovery are authenticated inherited foundations. They were not freshly re-executed here. There is no new candidate-specific assumption, unconditional theorem, Lean/kernel proof or independent human acceptance claim. Frozen reports preserve the status at their original execution time; later joined gates and the complete cold record resolve their then-outstanding package obligations without rewriting historical evidence. +The exact retained assumptions are `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. Source phase lowering, native movement, ordinary BIT stock/conversion and analytic recovery are authenticated inherited foundations. They were not freshly re-executed here. There is no new candidate-specific assumption, unconditional theorem, Lean/kernel proof or independent human acceptance claim. Frozen reports preserve the status at their original execution time; later joined gates and the complete cold record resolve their then-outstanding package obligations without rewriting historical evidence. ## Frozen actual cold evidence and fresh package replay