From 4e2fd1b6abed49c202a057fd5c73ead0a460f976 Mon Sep 17 00:00:00 2001 From: CubeJerry <80299683+CubeJerry@users.noreply.github.com> Date: Tue, 10 Nov 2026 01:47:18 +0800 Subject: [PATCH] E-free caller operator certificate and typed owned-QSELF lowering (no new kappa) --- .../DEPENDENCIES.json | 126 ++ .../ENVIRONMENT.json | 6 + .../PR-DESCRIPTION.md | 80 + research/p104-qself-owned-lowering/PROOF.md | 403 +++++ .../QSELF-PATCH.json | 1 + .../QUERY-BASES.json | 1570 +++++++++++++++++ research/p104-qself-owned-lowering/README.md | 142 ++ .../p104-qself-owned-lowering/RESULT.json | 273 +++ research/p104-qself-owned-lowering/REVIEW.md | 60 + .../p104-qself-owned-lowering/SOURCES.json | 24 + research/p104-qself-owned-lowering/TASK.json | 93 + .../p104-qself-owned-lowering/VERIFY.json | 123 ++ .../check_controls.py | 83 + .../data/caller_6936.json | 1 + .../data/caller_efree.json | 1 + .../data/root_A_6936.json | 1 + .../data/root_A_efree.json | 1 + .../data/word_6936.json.gz | Bin 0 -> 349022 bytes .../dual_certificate.py | 129 ++ research/p104-qself-owned-lowering/invoice.py | 211 +++ .../operator_ring.py | 140 ++ .../owned_lowering.py | 119 ++ .../reference/FINITE-PRECOMPILATION.md | 313 ++++ .../reference/SWAP-PROOF.md | 267 +++ .../reference/check_6937.py | 67 + .../reference/jclib_6936.py | 331 ++++ .../reference/physical_review_6936.py | 568 ++++++ .../p104-qself-owned-lowering/scan_audit.py | 105 ++ .../source_binding.py | 32 + .../vendor/machine.py | 406 +++++ .../vendor/source_ir.py | 522 ++++++ research/p104-qself-owned-lowering/verify.py | 80 + 32 files changed, 6278 insertions(+) create mode 100644 research/p104-qself-owned-lowering/DEPENDENCIES.json create mode 100644 research/p104-qself-owned-lowering/ENVIRONMENT.json create mode 100644 research/p104-qself-owned-lowering/PR-DESCRIPTION.md create mode 100644 research/p104-qself-owned-lowering/PROOF.md create mode 100644 research/p104-qself-owned-lowering/QSELF-PATCH.json create mode 100644 research/p104-qself-owned-lowering/QUERY-BASES.json create mode 100644 research/p104-qself-owned-lowering/README.md create mode 100644 research/p104-qself-owned-lowering/RESULT.json create mode 100644 research/p104-qself-owned-lowering/REVIEW.md create mode 100644 research/p104-qself-owned-lowering/SOURCES.json create mode 100644 research/p104-qself-owned-lowering/TASK.json create mode 100644 research/p104-qself-owned-lowering/VERIFY.json create mode 100644 research/p104-qself-owned-lowering/check_controls.py create mode 100644 research/p104-qself-owned-lowering/data/caller_6936.json create mode 100644 research/p104-qself-owned-lowering/data/caller_efree.json create mode 100644 research/p104-qself-owned-lowering/data/root_A_6936.json create mode 100644 research/p104-qself-owned-lowering/data/root_A_efree.json create mode 100644 research/p104-qself-owned-lowering/data/word_6936.json.gz create mode 100644 research/p104-qself-owned-lowering/dual_certificate.py create mode 100644 research/p104-qself-owned-lowering/invoice.py create mode 100644 research/p104-qself-owned-lowering/operator_ring.py create mode 100644 research/p104-qself-owned-lowering/owned_lowering.py create mode 100644 research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md create mode 100644 research/p104-qself-owned-lowering/reference/SWAP-PROOF.md create mode 100644 research/p104-qself-owned-lowering/reference/check_6937.py create mode 100644 research/p104-qself-owned-lowering/reference/jclib_6936.py create mode 100644 research/p104-qself-owned-lowering/reference/physical_review_6936.py create mode 100644 research/p104-qself-owned-lowering/scan_audit.py create mode 100644 research/p104-qself-owned-lowering/source_binding.py create mode 100644 research/p104-qself-owned-lowering/vendor/machine.py create mode 100644 research/p104-qself-owned-lowering/vendor/source_ir.py create mode 100644 research/p104-qself-owned-lowering/verify.py diff --git a/research/p104-qself-owned-lowering/DEPENDENCIES.json b/research/p104-qself-owned-lowering/DEPENDENCIES.json new file mode 100644 index 0000000000..38b1b575f1 --- /dev/null +++ b/research/p104-qself-owned-lowering/DEPENDENCIES.json @@ -0,0 +1,126 @@ +{ + "schema_version": 1, + "files": [ + { + "local_path": "data/caller_efree.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/data/caller_efree.json", + "git_blob": "5a71ca9f80ced1aeb8a68e97516cab52eb72a52a", + "bytes": 71267, + "sha256": "c5b6c5236462ae84e5431a791a2f8ce795774342f13e11c4af35689092a8af30", + "usage": "runtime" + }, + { + "local_path": "data/root_A_efree.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/data/root_A_efree.json", + "git_blob": "4a7fbe2fe247090bb1d7d5256f2478856d1c39ad", + "bytes": 16925, + "sha256": "64486cd1c5a879ffc0312195a39ce4a2ef288f81afb47232c244b9b6f46683d0", + "usage": "runtime" + }, + { + "local_path": "data/caller_6936.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/caller.json", + "git_blob": "08830cee27bf3b02f523e6ba7337d2cff6a3cae7", + "bytes": 76078, + "sha256": "5489eee96950881b0dd8fdecd6c02a3f663c60ba5bed0d5e5cbeed50fb9ae5fb", + "usage": "runtime" + }, + { + "local_path": "data/root_A_6936.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/root_A.json", + "git_blob": "1f8c2e3152860c56da14bc701692960af339105b", + "bytes": 18515, + "sha256": "b9400ca6087c8fd9d527c3203afa43caaddaa46cb73996cc05a0ac5cbb240e3c", + "usage": "runtime" + }, + { + "local_path": "data/word_6936.json.gz", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/word.json.gz", + "git_blob": "d93e67ca7628bf5531ae6e369da4dd7b7907b88f", + "bytes": 349022, + "sha256": "273e81f176f001684b1fa3eb857992bf58b54748004fcfe806b83adb48d2cc00", + "usage": "runtime" + }, + { + "local_path": "reference/FINITE-PRECOMPILATION.md", + "repository": "CrocSwap/integer-mult-bounds", + "commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_path": "research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "git_blob": "4badb40f0919c515823cb07e44c6470d4d6469ca", + "bytes": 15898, + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8", + "usage": "reference-only" + }, + { + "local_path": "reference/jclib_6936.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/jclib.py", + "git_blob": "48a55ab03a731315dd27d1dd7dd52be716de0ce8", + "bytes": 14872, + "sha256": "bdbd89da0125a41514ea10330bccd25de5dd626ac8b2d671c88dc2e4b8fb93c4", + "usage": "reference-only" + }, + { + "local_path": "reference/physical_review_6936.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/retained/physical-review/verify.py", + "git_blob": "f41390e0246cd6604a94ef5b418f48a817a4208c", + "bytes": 33361, + "sha256": "c303c2812d530849d174088f0330a4d7ddac2698d92b91848dbce7a512573fc2", + "usage": "reference-only" + }, + { + "local_path": "reference/check_6937.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/check.py", + "git_blob": "cebc2062a3939e5b2e415fe5aa6d3d8ce1d6cdac", + "bytes": 4796, + "sha256": "f25a9960396561e166264f8b695a3012b2d062b46744e39d073d57ecbc43f163", + "usage": "reference-only" + }, + { + "local_path": "vendor/machine.py", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "ab239cb6ee884e7a900dd9101c34448077fad0b0", + "original_path": "research/compiled-owned-bank-lifecycle/machine.py", + "git_blob": "acf475e4fccaff2fb64bd5b0b3f3fc0d246dc592", + "bytes": 14932, + "sha256": "ec597bce13275003ff30e4be481c936401826c1d4af642b55eec0c410774d1df", + "usage": "runtime" + }, + { + "local_path": "vendor/source_ir.py", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "ab239cb6ee884e7a900dd9101c34448077fad0b0", + "original_path": "research/compiled-owned-bank-lifecycle/source_ir.py", + "git_blob": "79c95fa79439f3c893de52991173bd3a5eae2729", + "bytes": 27393, + "sha256": "54dd93bc50bd10e974c70794df1c13da27f0e3d8cdb6cfe6791a63280096f1b1", + "usage": "runtime" + }, + { + "local_path": "reference/SWAP-PROOF.md", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "e2e707fd99125ef0005ad16435d90e5d3a82f31e", + "original_path": "research/current-swap-flat-tables/PROOF.md", + "git_blob": "4ff87d384214aea341b5812968a261aa1f164efb", + "bytes": 15098, + "sha256": "80f8d743754b2d2973a6ff40c3cbf62604bf431f19110effb0da67f98adce397", + "usage": "reference-only; published proof bound, not re-executed here" + } + ], + "scope": "Exact narrowly vendored sources. External head commits are declared here and bytes authenticated directly; they are not misrepresented as reachable canonical Git objects." +} diff --git a/research/p104-qself-owned-lowering/ENVIRONMENT.json b/research/p104-qself-owned-lowering/ENVIRONMENT.json new file mode 100644 index 0000000000..e8b466151e --- /dev/null +++ b/research/p104-qself-owned-lowering/ENVIRONMENT.json @@ -0,0 +1,6 @@ +{ + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "implementation": "CPython", + "platform": "Linux-6.18.57-x86_64-with-glibc2.39", + "dependencies": "Python standard library only" +} diff --git a/research/p104-qself-owned-lowering/PR-DESCRIPTION.md b/research/p104-qself-owned-lowering/PR-DESCRIPTION.md new file mode 100644 index 0000000000..e5e28428ae --- /dev/null +++ b/research/p104-qself-owned-lowering/PR-DESCRIPTION.md @@ -0,0 +1,80 @@ +## Why this matters + +DreamingOfClouds' E-free caller in CrocSwap/integer-mult-bounds#6937 removes +two empty-mask roles but introduces two QSELF instructions. Its shipped +checker does not replay the caller, and the owned/physical/cost connection +for that new instruction needs an explicit argument. + +This package supplies a reproducible formal operator certificate, a +source-bound relative typed owned-bank lowering, and the complete cost comparison with +CrocSwap/integer-mult-bounds#6936. **No new κ; no selected certificate change.** + +## Exact result + +- The actual 2,991-event, 76-input caller has the declared diagonal endpoint + over `Q(i)[q,D_1,...,D_18]/(q^4-1)`, with formal D variables and independent + input coefficients. A separate backward-covector engine uses integer + dyadics and faithful four-character evaluation with D still formal. +- All 192 instances of the two QSELF sites lower to INIT/COPY/query-in/ + PAID(1)/query-out/SWAP/CLEAR in the unchanged lifecycle IR. One reused + owned query bank suffices, with no productive credit. The canonical + owned-storage contract permits its contents and completed-child history. + This package does not install a SERVICE registry for its new `qself6937` + tokens or claim the frozen source-specific binders accept them. +- The query adapters implement inverse Q with exact absolute phase for every + positive column count. Shape, grid, signed-range and actual provider-cost + predicates remain explicit. +- Complete target and paid histograms each lose 192 rank-one entries; all + other ranks match. The moment polynomial and surplus 1520 are unchanged. + New totals: 23,050 productive fields and 117,846 paid calls. Including a + separate 24,576-unit new lifecycle charge and both conservative recharges, + the inherited conditional raw accounting is 811,461,936 < 10^9. + +## Source pins and verification + +Canonical base `7c49fe32c55de02c2c873655c804b16e4c3fef0a`; #6937 source head +`a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`; #6936 native/comparison head +`03626137d0bd57f09b0bf9597376183ce6fa9683`. Every used source file has a +repository/commit/path, byte count, Git blob and SHA256 pin. The packet +contains proofs, exact profiles, all 192 typed expansions and complete PR text. + +```sh +python3 -B scripts/research_package.py --package research/p104-qself-owned-lowering +``` + +Eight registered normal/optimized gates cover the formal identity, separate +covectors, source/phase/owned binding, exact invoice and 27 meaningful negative +controls. A separate 84-case metered scan audit executes unchanged lifecycle +INIT/COPY/CLEAR code and checks its derived constants, actual raw erasure, +head restoration and retained backing. The full Gaussian caller is not +claimed to have run physically. One proposed basis mutant is correctly +reported as equivalent, rather than counted as a rejected control. + +## Scope and remaining obligations + +The full operator theorem assumes commuting Q,D and Q^4=I; only the local +owned substitution holds for arbitrary completed A. All five selected +framework assumptions, plus the candidate's retained native/A6, odd-scalar +and BIT premises, remain. Exact token-to-provider/table dispatch and concrete +header export are unfinished. Physical provider closure, actual return +representability, compiled precision/stock substitution and rounded analytic +recovery are open. The historical scalar/pass tariff is kept distinct from +the new explicit physical scan bound. This does not adopt the candidate's +unreviewed κ or alter the accepted κ 0.003125804. + +## Novelty and credit + +The E-free root, caller, QSELF idea and reported original caller replay belong +to DreamingOfClouds, with Claude Opus assistance. The source README does not +specify whether its D variables remained formal; this package does not +claim that four q characters are insufficient or that the reported result +was wrong. It adds shipped unspecialized certificates and the explicit +owned/source/cost closure. + +Prepared for **@CubeJerry** with substantial OpenAI assistance. Retain Romman, +the native/productive/compiler lineage, @CubeJerry's +CrocSwap/integer-mult-bounds#6912 and CrocSwap/integer-mult-bounds#6914, +unpaidmoon's CrocSwap/integer-mult-bounds#6930, icekylinx's +CrocSwap/integer-mult-bounds#104, and the pinned published lifecycle and +scalar/SWAP packages. Separate AI review is not independent human or +proof-kernel acceptance. diff --git a/research/p104-qself-owned-lowering/PROOF.md b/research/p104-qself-owned-lowering/PROOF.md new file mode 100644 index 0000000000..a351238484 --- /dev/null +++ b/research/p104-qself-owned-lowering/PROOF.md @@ -0,0 +1,403 @@ +# An E-free caller identity and owned-bank lowering of QSELF + +Prepared for **@CubeJerry**, with substantial OpenAI assistance. Apache-2.0. +**No new κ. No unconditional multiplication theorem.** + +## 1. Exact sources, novelty and theorem boundary + +The canonical base is `7c49fe32c55de02c2c873655c804b16e4c3fef0a`. +The proposed source is DreamingOfClouds' [#6937](https://github.com/CrocSwap/integer-mult-bounds/pull/6937), +head `a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`, files +`research/p104-two-chain-findings/data/caller_efree.json` and +`data/root_A_efree.json`. Its unchanged local native word and comparison caller +come from [#6936](https://github.com/CrocSwap/integer-mult-bounds/pull/6936), +head `03626137d0bd57f09b0bf9597376183ce6fa9683`, under +`research/p104-main-wire-native/`. DEPENDENCIES.json authenticates each used +source byte string; the published package does not depend on a mutable branch. + +The E-free construction and the idea of trading an empty-mask role and a +query for one QSELF per chain belong to DreamingOfClouds. That source reports +an exact 76-by-76 caller replay at the four central characters. Its shipped +`check.py` only parses the caller and checks its serialized length; it does +not contain that replay. The README does not say whether the reported replay +kept the 18 D variables formal. This package makes no claim that four q +characters are insufficient, or that the earlier reported identity is false. +Indeed, four exact characters suffice when the D variables remain formal. + +The additions here are a reproducible formal operator certificate and a +separate backward-covector certificate; a source-specific implementation of +both QSELF sites in the existing owned lifecycle alphabet; its complete +target/paid, ordinary-cost and stock comparison; and an explicit all-column +phase/interface proof for the new requests. No root search or replacement +native word is performed. + +**Conditional theorem.** Let V be a complex vector space. Let Q,D_1,...,D_18 +be commuting linear operators on V, with Q^4=I. Interpret the exact 2,991 +source events with the coefficients below, applying each scalar to the whole +field. For all 76 arbitrary, independently variable input fields, the caller +returns exactly its declared diagonal Q^-1 times the selected D products. +Each of its two QSELF source events has a source-bound typed expansion, for +each of its 96 ports, using one completed rank-one request on one disjoint +owned bank, with the query-adapter, COPY, SWAP and physical-clearance contracts. +Given a faithful dispatch registry for its new SERVICE tokens, and under the +retained whole-job, ownership, common-format and cost contracts stated below, +this introduces no additional productive input and no additional paid call +beyond QSELF's declared one. Compared with the exact #6936 caller, both +complete rank-one counts decrease by 192 and all other rank counts agree. + +The full caller theorem is **not** for arbitrary noncommuting Q or D, or for +Q without Q^4=I. Only the local copied-bank substitution lemma in §4 works +for an arbitrary completed operator A. Native all-column correctness, +rounded precision, physical primitive rates, installation of the new token/provider +registry, the recursive compiler join and +analytic recovery remain inherited obligations. This is not physical +execution of the entire caller. + +## 2. Exact source semantics and formal certificate + +Work in the commutative ring + + R = Q(i)[q,D_1,...,D_18] / (q^4-1). + +Every field starts as its own independent input generator. The forward +checker stores each coefficient as two exact Fractions, with a key consisting +of the input generator, q exponent modulo four, and a square-free D mask. +Multiplication by a mask rejects if a factor is already present: it never +silently imposes D_j^2=D_j or drops a repeated factor. Each actual prefix is +checked to remain in this representation. A formal D monomial is not a +numerical probe and no D value is substituted. + +ADD and SCALE are the literal rational row operations. SWAP exchanges the +ordered fields. QUERY(dst,src,k) adds q^k src to dst; QSELF(x,k) multiplies x +by q^k. IDLE_ONE multiplies its field by the product of the listed D stages. +LAMBDA_s multiplies its field by + + ((1+s i) + (1-s i) q^2)/2. + +It acts on the total q operator; this scalar formula is not tensor-powered +one column at a time. At a joint stage j, the type-A four fields (u,v,x,y) +are updated by + + (u,v,x,y) <- D_j (u, v+q^-1 u, x-q y, y). + +The type-B pair (s,t), with the source's alpha=-1 and beta=1/2, is updated +simultaneously by + + (s,t) <- D_j (s+alpha q t, + beta q^-1 s + (1+alpha beta)t). + +These ordered semantics are independently read from the exact predecessor +`jclib.py`; both old rows are used for the dense B update. The source validator +checks all role ranges, disjoint types, exact host coefficients, distinct +operands, positive idle stage sets and the ordered 18 fresh joint contacts. + +Induction over these operations proves that each stored row is exactly its +formal input expansion. Rational arithmetic is exact; the four residue +classes of q form a basis over Q(i)[D_1,...,D_18]. The final row comparison +therefore proves all coefficient identities, rather than checking one +particular vector. The certificate has 76 final monomials and peak 2,713 +stored monomials at source-event boundaries, at most 90 in a field. + +There is a unique homomorphism from this ring to the commutative algebra +generated by any operators satisfying the theorem's hypotheses. Applying it +to every coefficient proves the operator identity on every vector in V. +No dimensional restriction on V is used. D_j need not be involutions or +numeric scalars, and their inverses are not used. + +The two type blocks do not algebraically mix: each tagged scalar event stays +within its own role range, and each J event is the direct sum of the displayed +A and B blocks. Therefore each block identity can be substituted separately +at every actual port, using that port's own Q_q. The 96 A copies and eight B +copies do not require different physical ports to have the same Q operator. +Completing the unchanged native word with its independent helpers before +resuming the caller is the retained contact contract used in this substitution. + +### A different critical check + +`dual_certificate.py` does not import the forward engine. It starts with +independent output covectors and scans the source backwards, multiplying by +the **transposes**, not inverses, of the literal gates. In particular, an +ADD into x contributes to the coefficient of its source, and the dense B +contact is transposed as a simultaneous block. Its exact coefficient type is +an integer pair divided by a power of two; normalization and arithmetic are +separate from the forward Fraction implementation. + +It retains all 18 D variables formally and performs this backward propagation +at q=1,i,-1,-i. Evaluation at these four distinct roots is injective on R: +for each D monomial, a polynomial of q degree at most three vanishing at all +four roots is zero. Thus these are four faithful coefficient checks of the +same universal identity, not finitely sampled operator inputs. This is a +second algorithmic check, not independent human or proof-kernel acceptance. + +## 3. Exact query orientation, absolute phase and ambient format + +The inherited physical audit represents a one-column central Gaussian C_q +by its Walsh-frequency multiplier i^(q dot omega), with binary dot product. +This specifies its absolute phase, not only its projective Clifford action. +It gives C_q^2=X_q, the address translation by q, and C_q^4=I. + +For each actual native port q, the source recipe supplies an orthonormal +nine-axis basis (q,b_1,...,b_8). Define the binary address map + + B(x) = (q dot x, b_1 dot x, ..., b_8 dot x). + +Then B(q)=e_0, B is orthogonal, and B^-1=B^T. Its permutation P_B satisfies + + P_B C_q P_B^-1 = C_e0, + P_B^-1 C_e0 P_B = C_q, + X_q P_B^-1 C_e0 P_B = C_q^-1. + +The last equality is exact because i^h (-1)^h = i^(-h) for h in {0,1}. +It requires the Q^2 translation on return. Omitting it implements Q, rather +than Q^-1. No phase that happens to be harmless at one tensor width is dropped. + +At every positive column count f, tensor these binary maps and C operators +column by column and leave the other 144 coordinate blocks fixed. The rank-one +request acts on the f selected e_0 coordinates; both nine-axis maps preserve +all remaining coordinates. Tensoring the exact displayed equality gives +Q_f^-1 with every absolute phase raised correctly across all f columns. +This is the all-f argument. The executable 49,152 one-column spectral checks +bind its finite bases and signs to the actual 96 new source ports; those +checks alone are not claimed to prove the tensor statement. + +The source's D_j acts only on fresh coordinate blocks +9+8(j-1),...,9+8j-1. These sets are pairwise disjoint and disjoint from the +nine central blocks. Consequently the intended physical Q and D operators +commute and Q^4=I, at every f, under the retained exact native contact contract. +All other local-word maps and helper endpoints remain the #6936 dependency. + +Both query boundaries return to the same complete ambient coordinate order. +The coded implementation additionally requires the same component boundaries, +grids and signed widths on the returned bank and its caller field. In the +unchanged Controller, INIT uses payload 0 as its shape guide. Thus that guide +must have the same complete numerical format too; rank equality alone is not +enough. A whole-job provider must return within this format's representable +range, or the physical execution has no success guarantee. This common-format +and precision obligation is explicit and remains inside precision_tape and +the recursive provider join. The present operator identity does not establish +rounded-state equality or claim that every finite signed input is an exactly +representable Gaussian output. + +## 4. One owned bank, exact history and source-preserving lowering + +The canonical source is +`research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md`, Git blob +`4badb40f0919c515823cb07e44c6470d4d6469ca` at the stated canonical base. +Section 1 permits: “Constantly many owned fields may be supplied with their +full cost and no productive output credit.” Section 6 expressly permits a +paid child on an owned field containing a copied correlated value; the parent +waits for complete child return before reading or erasing that bank. Each +live unit retains its own distinct banks. These are existing conditional +contracts, not a new restoration waiver or a proof of owned_erasure. + +Let x be the actual caller field and z a disjoint owned bank. The expansion is + + INIT z + COPY z <- x + SERVICE query-in(z) + PAID(z, rank=1) + SERVICE query-out(z) + SERVICE SWAP(x,z) + CLEAR z + +Every opcode is already accepted by the unchanged published lifecycle +`source_ir.Unit.check` and `machine.Controller`. The first five events are the +existing query-bank prefix. The return service uses the exact orientation in +§3; SWAP replaces the old query-add service. There are no Python payload +callbacks or newly assumed free field transfers in this statement. + +This proves **relative typed-IR and lifetime compatibility**, not an installed +physical service dispatcher. The exported tokens contain `qself6937`, and +the SWAP token also differs from the frozen current-caller source grammar. +`Unit.check` checks event structure and lifetimes; it does not validate a +SERVICE registry or numerical provider. This package installs no new registry +and does not claim that an earlier source-specific binder accepts those +tokens. The conditional semantic realization requires an exact mapping of +these tokens to the stated query providers and existing SWAP table, including +their actual headers, ordered fields and common-format predicates. Producing +and validating that dispatch/export is an explicit remaining obligation. + +**Local substitution lemma.** More generally, suppose the three middle +events implement any completed whole-field operator A, with the required +format and spectator preservation. Immediately after COPY, z=x; after complete +return z=Ax and the caller's x is its original value; after SWAP, the ordered +pair is (Ax,x); after CLEAR, it is (Ax,0). Every other public field is unchanged. +This proof does not require Q^4=I, commutation, invertibility or statistical +independence of current values. If the recursive controller parks the parent, +its x is preserved in protected ancestor storage and restored at return; +the same current physical tape need not be untouched while a child runs. + +CLEAR erases the old x **now stored in the owned z bank**. The canonical +contract conditions erasure on bank ownership and completed descendants, +not on the numerical content having originated independently. It does not +require restoring an arbitrary prior value of z. The returned child is +complete before the parent reads, swaps or erases z. Every descendant has a +different owned-bank identity. Borrowed public helpers are never used as z. + +A literal wrapper INIT z; QUERY(z,x,-1); SWAP(x,z); CLEAR z would have two +simultaneously live banks: z and QUERY's internal copied bank. The fused +expansion above uses the internal copied bank as the returned value and +omits the redundant outer zero target and ADD. Its exact semantics follows +from the local lemma; it is not a claim that the two implementations have +identical rounded trajectories. + +The exact source QSELF sites are event 457 on A role 0 and event 575 on A +role 19. Each is applied to the 96 A ports, for 192 expansions and 1,344 IR +events. Their source tokens retain site, port, literal operation and actual +ordered owner. Injective compiler remapping preserves the owned recipient +and the SWAP order. The generated patch is checked through the unchanged IR +class; a separate whole-local-source structural pass accepts 71,144 native +events as 83,790 typed events. Neither pass is a fullcaller tape replay. + +The actual raw source processes each port's complete expansion before the +next one, and every joint native invocation is complete before the next +outer event. One outer query bank is therefore reused across the 416 new +QUERY-or-QSELF instances. It overlaps no local owned lifetime. The local +word still has 51 labels, 54 lifetimes and peak 43; an unreused safe finite +inventory is 18*51+1=919 raw-unit private names, with maximum 43 live locally. +Suspended recursive unit instances retain distinct banks: this is not one +scratch tape per recursion depth. Old erased backing remains counted at its +high-water extent. + +## 5. Positive costs, complete invoices and numerical limitations + +The generic request has two nine-axis conversions, one Q^2 translation and +one rank-one child. It also pays INIT, numerical COPY as addition, both SWAP +outputs, physical raw erasure, all source access, heads, child continuation, +complete child return, and existing descriptor/row services. An initially +dirty bank is disposed of rather than assumed empty. The two work ports of +the published SWAP table are reusable existing primitive work, with current +backing 2V+3; z adds V. Adapter work is retained separately and may be reused +only after successful primitive retirement. + +Here is a physical cost statement independent of a numerical historical cap. +Let V be a complete field's physical coded length, D total initially occupied +bank/work bytes, and q_0 the fixed supplied work/context inventory. Given +actual query-provider costs A_in,A_out and the actual paid-boundary/child +cost B_paid, the new fragment is bounded by + + A_in + A_out + B_paid + 2048(V+1) + 16D + 64q_0. + +This deliberately loose remainder covers the unmodified initialize, +copy_as_add and retire scans and the published SWAP ceiling +1024(V/3+1)+8D+32q_0. Every term is positive. The boundary/child term is not +hidden in a scalar allowance or counted as zero. Provider work, all other +public fields, parked ancestors and descriptors remain in the complete caller +stock. The bound is conditional on their declared physical interfaces; it is +not a construction of those interfaces. + +Here are the scan constants behind that remainder, using the lifecycle's +physical read/write/unit-move metric and charging executed SWAP table rows as +in its published theorem. Set L=V/3. From its current origin, `origin` costs +3 actions; from offset h it costs 2h+3. A raw `retire` of d occupied bytes +therefore costs exactly 5d+7, including both head resets. `read_code` costs +7 actions per present codeword and 1 at the frontier; `write_code` costs 6. +Thus INIT on an initially d-byte dirty bank, guided by a V-byte complete +field, costs 5d+25V/3+17. COPY costs 14L+9b+4V+14, where b<=L is the number +of numerical-bit codewords; it is at most 35V/3+14. CLEAR after the successful +SWAP costs 5V+7. Their sum is at most 25V+5d+38. Adding the SWAP bound gives +at most (1100/3)V+1062+5d+8D_work+32q_0, plus a fixed seven-event dispatch. +It is below the displayed 2048(V+1)+16D+64q_0, for D=d+D_work. Query providers +are separately charged for their own work retirement and head reset; on +successful return through `Controller.primitive` their declared work ports +are blank. These constants count actual coded bytes and both output writes; +they do not equate this tape metric with the historical scalar/pass tariff. + +For comparison with #6936's **inherited scalar/routing accounting convention**, +`invoice.py` reconstructs the local scalar and route terms directly from the +unchanged word, all caller/idle/main/query terms directly from both callers, +and adds a separate 128 ordinary units for each new QSELF instance. This +extra 24,576-unit charge covers four lifecycle/scalar operations at the +retained 32-unit gate envelope, in addition to the thin lifecycle allowance +and the general caller envelope. Both full nine-axis conversions and the +translation are charged at 1,000 each. These retained scalar/pass rates are +not an independent verification of physical precision_tape tariffs. + +The exact results are: + +| Quantity | #6936 comparison caller | E-free caller with owned lowering | +| --- | ---: | ---: | +| Main arbitrary input fields | 4,144 | 3,952 | +| Fresh helper fields over 18 local calls | 19,098 | 19,098 | +| Complete productive count | 23,242 | 23,050 | +| Complete paid calls | 118,038 | 117,846 | +| Outer rank-one QUERY/QSELF calls | 608 | 416 | +| Source local rank-one/other paid calls | unchanged | unchanged | +| Reviewed raw ordinary upper | 832,255,648 | 796,934,944 | +| Extra LAMBDA reading | 12,560,000 | 11,792,000 | +| Per-call 1125 conversion reading | 2,734,992 | 2,734,992 | +| Both extra readings included | 847,550,640 | 811,461,936 | +| Margin below 10^9 in that convention | 152,449,360 | 188,538,064 | + +At each joint call the same 1,461 local public fields map to four A mains per +A port, two B mains per B port, and 1,061 distinct helpers. Those helpers have +fresh stage-specific identities. Neither their arbitrary inputs nor their +productive outputs are erased or replaced by the query bank. The B stream is +byte-for-byte the same sequence of operations after its offset shifts by two. +Every main target in the new caller has a nonempty D mask. + +For every rank r the exact complete profiles satisfy + + T_new(r) = T_old(r) - 192*[r=1], + P_new(r) = P_old(r) - 192*[r=1]. + +Consequently the complete moment polynomial is identical at **every** κ, +not merely at a sampled decimal root. The rank-mass surplus remains 1520; +the new paid rank mass is 317,324. The two removed empty-mask E roles no +longer receive 192 rank-one productive credits, and the corresponding paid +debit falls by the same amount. There is no new κ from this substitution and +no claim that the unreviewed #6936 bound is the accepted frontier. + +These changes must replace the raw-unit counts in any future compiled +precision/stock certificate. It is not enough to observe a smaller scalar +cap. COPY propagates its actual residual as addition; it does not overwrite +an ideal value for free. With adapters E,F and child C satisfying FCE=A, +the output error includes FC times input/copy/entry error, F times child +error, and exit error. SWAP exactly permutes stored words and its errors; +erasure of the other bank does not erase these terms. The full rounded +recursion and source-entry predicates are not established here. + +## 6. A precisely scoped obstruction without owned initialization + +Consider the formal commuting caller algebra above, allowing arbitrary +independent auxiliary fields which must all be restored. QUERY is an +elementary shear of determinant one. Constant scalings and permutations +have q-independent determinants. LAMBDA determinants depend only on q^2; +IDLE determinants depend only on D. The joint HOST/HOST2 determinant is a +power of D and is also unchanged under q -> -q. Thus any finite word in this +alphabet has determinant even in q. + +A single QSELF with every auxiliary field restored would have determinant +q^-1. Evaluating at q=1 and q=-1 (and any fixed nonzero D) contradicts the +evenness of the word's determinant. This excludes that universal single-job +restored-workspace realization in this formal alphabet. + +It does not exclude every concrete Clifford specialization: spectral +restrictions or cancellation in a concrete large determinant require their +own analysis. It also does not exclude the **pair** of QSELF sites; their +combined q determinant is q^-2=q^2, which is even. No bound on a paired +QUERY-only synthesis follows. Owned initialization and erasure invalidate +the restored-arbitrary-workspace hypothesis, exactly as the explicit copied +bank does. This obstruction explains that distinction; it is not a global +impossibility theorem or a substitute for the constructive result. + +## 7. Remaining obligations and credit + +The five selected framework assumptions remain native_all_columns, +owned_erasure, compiler, precision_tape and analytic_recovery. The #6936 +native/A6, odd-scalar exact-return and BIT dependencies also remain. No +selected certificate is changed. Actual all-column native word execution, +all caller field-format predicates, complete rounded-return contracts and +compiled recursive stock/precision substitution still require review. The +new token-to-provider/table registry and concrete header export are also +unfinished; accepting a seven-opcode IR fragment does not discharge them. + +The E-free root, caller, source claim and proposal are DreamingOfClouds' work +with Claude Opus assistance. Retain Romman and the productive native/compiler +lineage; @CubeJerry's [#6912](https://github.com/CrocSwap/integer-mult-bounds/pull/6912) +caller blocks, [#6914](https://github.com/CrocSwap/integer-mult-bounds/pull/6914) +owned-rise work and published lifecycle/scalar/SWAP implementations; +unpaidmoon's [#6930](https://github.com/CrocSwap/integer-mult-bounds/pull/6930) +width-two phase work; and icekylinx's [#104](https://github.com/CrocSwap/integer-mult-bounds/pull/104) +odd-grid contribution. This package was prepared for @CubeJerry with +substantial OpenAI assistance in source analysis, proofs, code and review. diff --git a/research/p104-qself-owned-lowering/QSELF-PATCH.json b/research/p104-qself-owned-lowering/QSELF-PATCH.json new file mode 100644 index 0000000000..24274123dd --- /dev/null +++ b/research/p104-qself-owned-lowering/QSELF-PATCH.json @@ -0,0 +1 @@ +[[457,0,[["INIT",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,0]],["qself6937",457,0,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,0,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,0,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,0],["outer-query-bank"]],["SWAP","qself6937",457,0,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],0]]],[457,1,[["INIT",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,1]],["qself6937",457,1,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,1,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,1,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,1],["outer-query-bank"]],["SWAP","qself6937",457,1,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],0]]],[457,2,[["INIT",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,2]],["qself6937",457,2,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,2,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,2,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,2],["outer-query-bank"]],["SWAP","qself6937",457,2,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],0]]],[457,3,[["INIT",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,3]],["qself6937",457,3,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,3,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,3,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,3],["outer-query-bank"]],["SWAP","qself6937",457,3,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],0]]],[457,4,[["INIT",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,4]],["qself6937",457,4,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,4,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,4,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,4],["outer-query-bank"]],["SWAP","qself6937",457,4,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],0]]],[457,5,[["INIT",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,5]],["qself6937",457,5,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,5,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,5,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,5],["outer-query-bank"]],["SWAP","qself6937",457,5,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],0]]],[457,6,[["INIT",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,6]],["qself6937",457,6,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,6,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,6,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,6],["outer-query-bank"]],["SWAP","qself6937",457,6,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],0]]],[457,7,[["INIT",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,7]],["qself6937",457,7,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,7,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,7,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,7],["outer-query-bank"]],["SWAP","qself6937",457,7,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],0]]],[457,8,[["INIT",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,8]],["qself6937",457,8,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,8,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,8,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,8],["outer-query-bank"]],["SWAP","qself6937",457,8,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],0]]],[457,9,[["INIT",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,9]],["qself6937",457,9,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,9,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,9,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,9],["outer-query-bank"]],["SWAP","qself6937",457,9,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],0]]],[457,10,[["INIT",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,10]],["qself6937",457,10,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,10,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,10,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,10],["outer-query-bank"]],["SWAP","qself6937",457,10,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],0]]],[457,11,[["INIT",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,11]],["qself6937",457,11,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,11,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,11,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,11],["outer-query-bank"]],["SWAP","qself6937",457,11,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],0]]],[457,12,[["INIT",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,12]],["qself6937",457,12,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,12,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,12,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,12],["outer-query-bank"]],["SWAP","qself6937",457,12,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],0]]],[457,13,[["INIT",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,13]],["qself6937",457,13,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,13,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,13,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,13],["outer-query-bank"]],["SWAP","qself6937",457,13,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],0]]],[457,14,[["INIT",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,14]],["qself6937",457,14,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,14,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,14,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,14],["outer-query-bank"]],["SWAP","qself6937",457,14,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],0]]],[457,16,[["INIT",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,16]],["qself6937",457,16,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,16,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,16,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,16],["outer-query-bank"]],["SWAP","qself6937",457,16,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],0]]],[457,18,[["INIT",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,18]],["qself6937",457,18,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,18,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,18,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,18],["outer-query-bank"]],["SWAP","qself6937",457,18,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],0]]],[457,19,[["INIT",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,19]],["qself6937",457,19,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,19,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,19,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,19],["outer-query-bank"]],["SWAP","qself6937",457,19,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],0]]],[457,20,[["INIT",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,20]],["qself6937",457,20,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,20,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,20,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,20],["outer-query-bank"]],["SWAP","qself6937",457,20,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],0]]],[457,21,[["INIT",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,21]],["qself6937",457,21,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,21,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,21,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,21],["outer-query-bank"]],["SWAP","qself6937",457,21,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],0]]],[457,22,[["INIT",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,22]],["qself6937",457,22,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,22,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,22,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,22],["outer-query-bank"]],["SWAP","qself6937",457,22,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],0]]],[457,23,[["INIT",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,23]],["qself6937",457,23,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,23,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,23,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,23],["outer-query-bank"]],["SWAP","qself6937",457,23,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],0]]],[457,24,[["INIT",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,24]],["qself6937",457,24,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,24,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,24,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,24],["outer-query-bank"]],["SWAP","qself6937",457,24,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],0]]],[457,25,[["INIT",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,25]],["qself6937",457,25,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,25,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,25,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,25],["outer-query-bank"]],["SWAP","qself6937",457,25,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],0]]],[457,26,[["INIT",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,26]],["qself6937",457,26,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,26,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,26,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,26],["outer-query-bank"]],["SWAP","qself6937",457,26,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],0]]],[457,28,[["INIT",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,28]],["qself6937",457,28,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,28,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,28,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,28],["outer-query-bank"]],["SWAP","qself6937",457,28,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],0]]],[457,29,[["INIT",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,29]],["qself6937",457,29,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,29,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,29,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,29],["outer-query-bank"]],["SWAP","qself6937",457,29,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],0]]],[457,30,[["INIT",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,30]],["qself6937",457,30,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,30,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,30,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,30],["outer-query-bank"]],["SWAP","qself6937",457,30,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],0]]],[457,31,[["INIT",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,31]],["qself6937",457,31,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,31,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,31,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,31],["outer-query-bank"]],["SWAP","qself6937",457,31,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],0]]],[457,32,[["INIT",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,32]],["qself6937",457,32,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,32,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,32,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,32],["outer-query-bank"]],["SWAP","qself6937",457,32,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],0]]],[457,33,[["INIT",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,33]],["qself6937",457,33,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,33,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,33,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,33],["outer-query-bank"]],["SWAP","qself6937",457,33,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],0]]],[457,36,[["INIT",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,36]],["qself6937",457,36,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,36,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,36,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,36],["outer-query-bank"]],["SWAP","qself6937",457,36,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],0]]],[457,37,[["INIT",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,37]],["qself6937",457,37,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,37,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,37,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,37],["outer-query-bank"]],["SWAP","qself6937",457,37,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],0]]],[457,38,[["INIT",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,38]],["qself6937",457,38,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,38,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,38,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,38],["outer-query-bank"]],["SWAP","qself6937",457,38,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],0]]],[457,39,[["INIT",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,39]],["qself6937",457,39,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,39,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,39,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,39],["outer-query-bank"]],["SWAP","qself6937",457,39,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],0]]],[457,40,[["INIT",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,40]],["qself6937",457,40,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,40,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,40,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,40],["outer-query-bank"]],["SWAP","qself6937",457,40,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],0]]],[457,41,[["INIT",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,41]],["qself6937",457,41,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,41,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,41,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,41],["outer-query-bank"]],["SWAP","qself6937",457,41,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],0]]],[457,43,[["INIT",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,43]],["qself6937",457,43,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,43,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,43,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,43],["outer-query-bank"]],["SWAP","qself6937",457,43,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],0]]],[457,44,[["INIT",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,44]],["qself6937",457,44,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,44,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,44,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,44],["outer-query-bank"]],["SWAP","qself6937",457,44,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],0]]],[457,45,[["INIT",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,45]],["qself6937",457,45,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,45,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,45,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,45],["outer-query-bank"]],["SWAP","qself6937",457,45,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],0]]],[457,46,[["INIT",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,46]],["qself6937",457,46,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,46,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,46,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,46],["outer-query-bank"]],["SWAP","qself6937",457,46,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],0]]],[457,48,[["INIT",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,48]],["qself6937",457,48,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,48,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,48,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,48],["outer-query-bank"]],["SWAP","qself6937",457,48,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],0]]],[457,49,[["INIT",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,49]],["qself6937",457,49,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,49,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,49,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,49],["outer-query-bank"]],["SWAP","qself6937",457,49,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],0]]],[457,50,[["INIT",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,50]],["qself6937",457,50,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,50,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,50,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,50],["outer-query-bank"]],["SWAP","qself6937",457,50,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],0]]],[457,51,[["INIT",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,51]],["qself6937",457,51,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,51,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,51,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,51],["outer-query-bank"]],["SWAP","qself6937",457,51,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],0]]],[457,52,[["INIT",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,52]],["qself6937",457,52,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,52,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,52,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,52],["outer-query-bank"]],["SWAP","qself6937",457,52,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],0]]],[457,53,[["INIT",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,53]],["qself6937",457,53,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,53,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,53,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,53],["outer-query-bank"]],["SWAP","qself6937",457,53,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],0]]],[457,54,[["INIT",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,54]],["qself6937",457,54,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,54,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,54,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,54],["outer-query-bank"]],["SWAP","qself6937",457,54,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],0]]],[457,56,[["INIT",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,56]],["qself6937",457,56,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,56,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,56,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,56],["outer-query-bank"]],["SWAP","qself6937",457,56,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],0]]],[457,57,[["INIT",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,57]],["qself6937",457,57,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,57,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,57,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,57],["outer-query-bank"]],["SWAP","qself6937",457,57,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],0]]],[457,58,[["INIT",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,58]],["qself6937",457,58,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,58,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,58,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,58],["outer-query-bank"]],["SWAP","qself6937",457,58,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],0]]],[457,59,[["INIT",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,59]],["qself6937",457,59,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,59,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,59,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,59],["outer-query-bank"]],["SWAP","qself6937",457,59,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],0]]],[457,60,[["INIT",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,60]],["qself6937",457,60,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,60,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,60,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,60],["outer-query-bank"]],["SWAP","qself6937",457,60,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],0]]],[457,61,[["INIT",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,61]],["qself6937",457,61,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,61,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,61,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,61],["outer-query-bank"]],["SWAP","qself6937",457,61,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],0]]],[457,62,[["INIT",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,62]],["qself6937",457,62,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,62,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,62,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,62],["outer-query-bank"]],["SWAP","qself6937",457,62,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],0]]],[457,63,[["INIT",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,63]],["qself6937",457,63,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,63,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,63,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,63],["outer-query-bank"]],["SWAP","qself6937",457,63,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],0]]],[457,64,[["INIT",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,64]],["qself6937",457,64,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,64,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,64,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,64],["outer-query-bank"]],["SWAP","qself6937",457,64,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],0]]],[457,65,[["INIT",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,65]],["qself6937",457,65,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,65,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,65,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,65],["outer-query-bank"]],["SWAP","qself6937",457,65,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],0]]],[457,66,[["INIT",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,66]],["qself6937",457,66,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,66,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,66,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,66],["outer-query-bank"]],["SWAP","qself6937",457,66,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],0]]],[457,67,[["INIT",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,67]],["qself6937",457,67,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,67,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,67,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,67],["outer-query-bank"]],["SWAP","qself6937",457,67,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],0]]],[457,68,[["INIT",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,68]],["qself6937",457,68,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,68,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,68,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,68],["outer-query-bank"]],["SWAP","qself6937",457,68,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],0]]],[457,69,[["INIT",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,69]],["qself6937",457,69,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,69,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,69,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,69],["outer-query-bank"]],["SWAP","qself6937",457,69,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],0]]],[457,70,[["INIT",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,70]],["qself6937",457,70,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,70,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,70,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,70],["outer-query-bank"]],["SWAP","qself6937",457,70,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],0]]],[457,71,[["INIT",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,71]],["qself6937",457,71,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,71,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,71,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,71],["outer-query-bank"]],["SWAP","qself6937",457,71,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],0]]],[457,72,[["INIT",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,72]],["qself6937",457,72,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,72,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,72,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,72],["outer-query-bank"]],["SWAP","qself6937",457,72,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],0]]],[457,73,[["INIT",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,73]],["qself6937",457,73,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,73,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,73,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,73],["outer-query-bank"]],["SWAP","qself6937",457,73,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],0]]],[457,74,[["INIT",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,74]],["qself6937",457,74,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,74,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,74,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,74],["outer-query-bank"]],["SWAP","qself6937",457,74,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],0]]],[457,75,[["INIT",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,75]],["qself6937",457,75,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,75,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,75,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,75],["outer-query-bank"]],["SWAP","qself6937",457,75,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],0]]],[457,76,[["INIT",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,76]],["qself6937",457,76,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,76,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,76,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,76],["outer-query-bank"]],["SWAP","qself6937",457,76,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],0]]],[457,77,[["INIT",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,77]],["qself6937",457,77,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,77,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,77,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,77],["outer-query-bank"]],["SWAP","qself6937",457,77,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],0]]],[457,78,[["INIT",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,78]],["qself6937",457,78,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,78,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,78,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,78],["outer-query-bank"]],["SWAP","qself6937",457,78,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],0]]],[457,79,[["INIT",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,79]],["qself6937",457,79,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,79,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,79,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,79],["outer-query-bank"]],["SWAP","qself6937",457,79,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],0]]],[457,80,[["INIT",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,80]],["qself6937",457,80,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,80,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,80,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,80],["outer-query-bank"]],["SWAP","qself6937",457,80,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],0]]],[457,81,[["INIT",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,81]],["qself6937",457,81,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,81,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,81,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,81],["outer-query-bank"]],["SWAP","qself6937",457,81,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],0]]],[457,82,[["INIT",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,82]],["qself6937",457,82,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,82,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,82,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,82],["outer-query-bank"]],["SWAP","qself6937",457,82,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],0]]],[457,83,[["INIT",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,83]],["qself6937",457,83,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,83,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,83,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,83],["outer-query-bank"]],["SWAP","qself6937",457,83,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],0]]],[457,84,[["INIT",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,84]],["qself6937",457,84,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,84,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,84,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,84],["outer-query-bank"]],["SWAP","qself6937",457,84,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],0]]],[457,85,[["INIT",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,85]],["qself6937",457,85,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,85,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,85,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,85],["outer-query-bank"]],["SWAP","qself6937",457,85,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],0]]],[457,86,[["INIT",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,86]],["qself6937",457,86,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,86,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,86,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,86],["outer-query-bank"]],["SWAP","qself6937",457,86,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],0]]],[457,87,[["INIT",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,87]],["qself6937",457,87,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,87,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,87,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,87],["outer-query-bank"]],["SWAP","qself6937",457,87,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],0]]],[457,88,[["INIT",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,88]],["qself6937",457,88,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,88,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,88,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,88],["outer-query-bank"]],["SWAP","qself6937",457,88,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],0]]],[457,89,[["INIT",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,89]],["qself6937",457,89,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,89,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,89,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,89],["outer-query-bank"]],["SWAP","qself6937",457,89,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],0]]],[457,90,[["INIT",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,90]],["qself6937",457,90,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,90,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,90,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,90],["outer-query-bank"]],["SWAP","qself6937",457,90,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],0]]],[457,91,[["INIT",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,91]],["qself6937",457,91,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,91,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,91,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,91],["outer-query-bank"]],["SWAP","qself6937",457,91,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],0]]],[457,92,[["INIT",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,92]],["qself6937",457,92,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,92,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,92,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,92],["outer-query-bank"]],["SWAP","qself6937",457,92,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],0]]],[457,93,[["INIT",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,93]],["qself6937",457,93,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,93,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,93,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,93],["outer-query-bank"]],["SWAP","qself6937",457,93,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],0]]],[457,94,[["INIT",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,94]],["qself6937",457,94,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,94,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,94,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,94],["outer-query-bank"]],["SWAP","qself6937",457,94,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],0]]],[457,95,[["INIT",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,95]],["qself6937",457,95,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,95,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,95,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,95],["outer-query-bank"]],["SWAP","qself6937",457,95,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],0]]],[457,96,[["INIT",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,96]],["qself6937",457,96,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,96,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,96,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,96],["outer-query-bank"]],["SWAP","qself6937",457,96,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],0]]],[457,97,[["INIT",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,97]],["qself6937",457,97,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,97,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,97,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,97],["outer-query-bank"]],["SWAP","qself6937",457,97,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],0]]],[457,98,[["INIT",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,98]],["qself6937",457,98,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,98,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,98,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,98],["outer-query-bank"]],["SWAP","qself6937",457,98,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],0]]],[457,99,[["INIT",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,99]],["qself6937",457,99,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,99,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,99,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,99],["outer-query-bank"]],["SWAP","qself6937",457,99,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],0]]],[457,100,[["INIT",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,100]],["qself6937",457,100,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,100,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,100,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,100],["outer-query-bank"]],["SWAP","qself6937",457,100,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],0]]],[457,101,[["INIT",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,101]],["qself6937",457,101,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,101,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,101,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,101],["outer-query-bank"]],["SWAP","qself6937",457,101,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],0]]],[457,102,[["INIT",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,102]],["qself6937",457,102,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,102,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,102,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,102],["outer-query-bank"]],["SWAP","qself6937",457,102,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],0]]],[457,103,[["INIT",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,103]],["qself6937",457,103,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,103,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,103,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,103],["outer-query-bank"]],["SWAP","qself6937",457,103,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],0]]],[575,0,[["INIT",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,0]],["qself6937",575,0,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,0,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,0,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,0],["outer-query-bank"]],["SWAP","qself6937",575,0,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],0]]],[575,1,[["INIT",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,1]],["qself6937",575,1,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,1,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,1,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,1],["outer-query-bank"]],["SWAP","qself6937",575,1,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],0]]],[575,2,[["INIT",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,2]],["qself6937",575,2,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,2,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,2,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,2],["outer-query-bank"]],["SWAP","qself6937",575,2,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],0]]],[575,3,[["INIT",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,3]],["qself6937",575,3,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,3,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,3,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,3],["outer-query-bank"]],["SWAP","qself6937",575,3,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],0]]],[575,4,[["INIT",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,4]],["qself6937",575,4,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,4,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,4,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,4],["outer-query-bank"]],["SWAP","qself6937",575,4,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],0]]],[575,5,[["INIT",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,5]],["qself6937",575,5,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,5,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,5,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,5],["outer-query-bank"]],["SWAP","qself6937",575,5,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],0]]],[575,6,[["INIT",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,6]],["qself6937",575,6,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,6,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,6,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,6],["outer-query-bank"]],["SWAP","qself6937",575,6,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],0]]],[575,7,[["INIT",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,7]],["qself6937",575,7,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,7,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,7,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,7],["outer-query-bank"]],["SWAP","qself6937",575,7,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],0]]],[575,8,[["INIT",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,8]],["qself6937",575,8,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,8,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,8,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,8],["outer-query-bank"]],["SWAP","qself6937",575,8,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],0]]],[575,9,[["INIT",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,9]],["qself6937",575,9,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,9,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,9,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,9],["outer-query-bank"]],["SWAP","qself6937",575,9,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],0]]],[575,10,[["INIT",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,10]],["qself6937",575,10,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,10,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,10,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,10],["outer-query-bank"]],["SWAP","qself6937",575,10,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],0]]],[575,11,[["INIT",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,11]],["qself6937",575,11,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,11,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,11,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,11],["outer-query-bank"]],["SWAP","qself6937",575,11,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],0]]],[575,12,[["INIT",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,12]],["qself6937",575,12,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,12,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,12,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,12],["outer-query-bank"]],["SWAP","qself6937",575,12,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],0]]],[575,13,[["INIT",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,13]],["qself6937",575,13,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,13,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,13,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,13],["outer-query-bank"]],["SWAP","qself6937",575,13,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],0]]],[575,14,[["INIT",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,14]],["qself6937",575,14,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,14,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,14,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,14],["outer-query-bank"]],["SWAP","qself6937",575,14,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],0]]],[575,16,[["INIT",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,16]],["qself6937",575,16,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,16,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,16,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,16],["outer-query-bank"]],["SWAP","qself6937",575,16,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],0]]],[575,18,[["INIT",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,18]],["qself6937",575,18,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,18,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,18,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,18],["outer-query-bank"]],["SWAP","qself6937",575,18,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],0]]],[575,19,[["INIT",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,19]],["qself6937",575,19,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,19,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,19,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,19],["outer-query-bank"]],["SWAP","qself6937",575,19,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],0]]],[575,20,[["INIT",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,20]],["qself6937",575,20,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,20,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,20,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,20],["outer-query-bank"]],["SWAP","qself6937",575,20,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],0]]],[575,21,[["INIT",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,21]],["qself6937",575,21,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,21,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,21,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,21],["outer-query-bank"]],["SWAP","qself6937",575,21,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],0]]],[575,22,[["INIT",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,22]],["qself6937",575,22,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,22,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,22,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,22],["outer-query-bank"]],["SWAP","qself6937",575,22,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],0]]],[575,23,[["INIT",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,23]],["qself6937",575,23,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,23,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,23,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,23],["outer-query-bank"]],["SWAP","qself6937",575,23,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],0]]],[575,24,[["INIT",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,24]],["qself6937",575,24,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,24,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,24,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,24],["outer-query-bank"]],["SWAP","qself6937",575,24,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],0]]],[575,25,[["INIT",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,25]],["qself6937",575,25,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,25,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,25,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,25],["outer-query-bank"]],["SWAP","qself6937",575,25,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],0]]],[575,26,[["INIT",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,26]],["qself6937",575,26,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,26,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,26,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,26],["outer-query-bank"]],["SWAP","qself6937",575,26,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],0]]],[575,28,[["INIT",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,28]],["qself6937",575,28,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,28,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,28,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,28],["outer-query-bank"]],["SWAP","qself6937",575,28,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],0]]],[575,29,[["INIT",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,29]],["qself6937",575,29,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,29,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,29,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,29],["outer-query-bank"]],["SWAP","qself6937",575,29,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],0]]],[575,30,[["INIT",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,30]],["qself6937",575,30,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,30,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,30,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,30],["outer-query-bank"]],["SWAP","qself6937",575,30,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],0]]],[575,31,[["INIT",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,31]],["qself6937",575,31,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,31,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,31,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,31],["outer-query-bank"]],["SWAP","qself6937",575,31,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],0]]],[575,32,[["INIT",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,32]],["qself6937",575,32,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,32,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,32,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,32],["outer-query-bank"]],["SWAP","qself6937",575,32,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],0]]],[575,33,[["INIT",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,33]],["qself6937",575,33,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,33,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,33,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,33],["outer-query-bank"]],["SWAP","qself6937",575,33,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],0]]],[575,36,[["INIT",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,36]],["qself6937",575,36,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,36,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,36,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,36],["outer-query-bank"]],["SWAP","qself6937",575,36,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],0]]],[575,37,[["INIT",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,37]],["qself6937",575,37,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,37,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,37,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,37],["outer-query-bank"]],["SWAP","qself6937",575,37,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],0]]],[575,38,[["INIT",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,38]],["qself6937",575,38,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,38,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,38,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,38],["outer-query-bank"]],["SWAP","qself6937",575,38,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],0]]],[575,39,[["INIT",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,39]],["qself6937",575,39,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,39,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,39,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,39],["outer-query-bank"]],["SWAP","qself6937",575,39,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],0]]],[575,40,[["INIT",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,40]],["qself6937",575,40,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,40,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,40,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,40],["outer-query-bank"]],["SWAP","qself6937",575,40,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],0]]],[575,41,[["INIT",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,41]],["qself6937",575,41,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,41,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,41,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,41],["outer-query-bank"]],["SWAP","qself6937",575,41,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],0]]],[575,43,[["INIT",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,43]],["qself6937",575,43,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,43,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,43,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,43],["outer-query-bank"]],["SWAP","qself6937",575,43,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],0]]],[575,44,[["INIT",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,44]],["qself6937",575,44,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,44,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,44,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,44],["outer-query-bank"]],["SWAP","qself6937",575,44,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],0]]],[575,45,[["INIT",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,45]],["qself6937",575,45,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,45,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,45,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,45],["outer-query-bank"]],["SWAP","qself6937",575,45,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],0]]],[575,46,[["INIT",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,46]],["qself6937",575,46,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,46,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,46,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,46],["outer-query-bank"]],["SWAP","qself6937",575,46,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],0]]],[575,48,[["INIT",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,48]],["qself6937",575,48,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,48,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,48,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,48],["outer-query-bank"]],["SWAP","qself6937",575,48,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],0]]],[575,49,[["INIT",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,49]],["qself6937",575,49,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,49,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,49,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,49],["outer-query-bank"]],["SWAP","qself6937",575,49,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],0]]],[575,50,[["INIT",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,50]],["qself6937",575,50,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,50,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,50,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,50],["outer-query-bank"]],["SWAP","qself6937",575,50,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],0]]],[575,51,[["INIT",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,51]],["qself6937",575,51,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,51,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,51,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,51],["outer-query-bank"]],["SWAP","qself6937",575,51,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],0]]],[575,52,[["INIT",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,52]],["qself6937",575,52,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,52,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,52,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,52],["outer-query-bank"]],["SWAP","qself6937",575,52,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],0]]],[575,53,[["INIT",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,53]],["qself6937",575,53,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,53,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,53,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,53],["outer-query-bank"]],["SWAP","qself6937",575,53,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],0]]],[575,54,[["INIT",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,54]],["qself6937",575,54,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,54,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,54,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,54],["outer-query-bank"]],["SWAP","qself6937",575,54,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],0]]],[575,56,[["INIT",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,56]],["qself6937",575,56,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,56,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,56,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,56],["outer-query-bank"]],["SWAP","qself6937",575,56,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],0]]],[575,57,[["INIT",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,57]],["qself6937",575,57,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,57,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,57,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,57],["outer-query-bank"]],["SWAP","qself6937",575,57,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],0]]],[575,58,[["INIT",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,58]],["qself6937",575,58,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,58,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,58,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,58],["outer-query-bank"]],["SWAP","qself6937",575,58,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],0]]],[575,59,[["INIT",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,59]],["qself6937",575,59,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,59,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,59,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,59],["outer-query-bank"]],["SWAP","qself6937",575,59,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],0]]],[575,60,[["INIT",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,60]],["qself6937",575,60,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,60,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,60,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,60],["outer-query-bank"]],["SWAP","qself6937",575,60,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],0]]],[575,61,[["INIT",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,61]],["qself6937",575,61,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,61,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,61,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,61],["outer-query-bank"]],["SWAP","qself6937",575,61,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],0]]],[575,62,[["INIT",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,62]],["qself6937",575,62,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,62,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,62,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,62],["outer-query-bank"]],["SWAP","qself6937",575,62,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],0]]],[575,63,[["INIT",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,63]],["qself6937",575,63,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,63,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,63,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,63],["outer-query-bank"]],["SWAP","qself6937",575,63,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],0]]],[575,64,[["INIT",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,64]],["qself6937",575,64,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,64,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,64,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,64],["outer-query-bank"]],["SWAP","qself6937",575,64,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],0]]],[575,65,[["INIT",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,65]],["qself6937",575,65,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,65,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,65,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,65],["outer-query-bank"]],["SWAP","qself6937",575,65,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],0]]],[575,66,[["INIT",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,66]],["qself6937",575,66,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,66,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,66,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,66],["outer-query-bank"]],["SWAP","qself6937",575,66,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],0]]],[575,67,[["INIT",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,67]],["qself6937",575,67,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,67,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,67,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,67],["outer-query-bank"]],["SWAP","qself6937",575,67,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],0]]],[575,68,[["INIT",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,68]],["qself6937",575,68,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,68,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,68,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,68],["outer-query-bank"]],["SWAP","qself6937",575,68,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],0]]],[575,69,[["INIT",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,69]],["qself6937",575,69,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,69,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,69,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,69],["outer-query-bank"]],["SWAP","qself6937",575,69,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],0]]],[575,70,[["INIT",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,70]],["qself6937",575,70,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,70,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,70,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,70],["outer-query-bank"]],["SWAP","qself6937",575,70,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],0]]],[575,71,[["INIT",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,71]],["qself6937",575,71,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,71,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,71,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,71],["outer-query-bank"]],["SWAP","qself6937",575,71,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],0]]],[575,72,[["INIT",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,72]],["qself6937",575,72,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,72,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,72,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,72],["outer-query-bank"]],["SWAP","qself6937",575,72,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],0]]],[575,73,[["INIT",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,73]],["qself6937",575,73,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,73,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,73,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,73],["outer-query-bank"]],["SWAP","qself6937",575,73,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],0]]],[575,74,[["INIT",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,74]],["qself6937",575,74,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,74,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,74,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,74],["outer-query-bank"]],["SWAP","qself6937",575,74,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],0]]],[575,75,[["INIT",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,75]],["qself6937",575,75,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,75,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,75,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,75],["outer-query-bank"]],["SWAP","qself6937",575,75,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],0]]],[575,76,[["INIT",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,76]],["qself6937",575,76,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,76,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,76,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,76],["outer-query-bank"]],["SWAP","qself6937",575,76,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],0]]],[575,77,[["INIT",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,77]],["qself6937",575,77,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,77,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,77,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,77],["outer-query-bank"]],["SWAP","qself6937",575,77,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],0]]],[575,78,[["INIT",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,78]],["qself6937",575,78,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,78,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,78,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,78],["outer-query-bank"]],["SWAP","qself6937",575,78,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],0]]],[575,79,[["INIT",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,79]],["qself6937",575,79,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,79,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,79,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,79],["outer-query-bank"]],["SWAP","qself6937",575,79,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],0]]],[575,80,[["INIT",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,80]],["qself6937",575,80,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,80,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,80,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,80],["outer-query-bank"]],["SWAP","qself6937",575,80,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],0]]],[575,81,[["INIT",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,81]],["qself6937",575,81,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,81,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,81,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,81],["outer-query-bank"]],["SWAP","qself6937",575,81,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],0]]],[575,82,[["INIT",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,82]],["qself6937",575,82,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,82,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,82,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,82],["outer-query-bank"]],["SWAP","qself6937",575,82,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],0]]],[575,83,[["INIT",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,83]],["qself6937",575,83,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,83,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,83,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,83],["outer-query-bank"]],["SWAP","qself6937",575,83,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],0]]],[575,84,[["INIT",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,84]],["qself6937",575,84,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,84,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,84,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,84],["outer-query-bank"]],["SWAP","qself6937",575,84,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],0]]],[575,85,[["INIT",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,85]],["qself6937",575,85,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,85,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,85,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,85],["outer-query-bank"]],["SWAP","qself6937",575,85,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],0]]],[575,86,[["INIT",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,86]],["qself6937",575,86,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,86,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,86,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,86],["outer-query-bank"]],["SWAP","qself6937",575,86,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],0]]],[575,87,[["INIT",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,87]],["qself6937",575,87,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,87,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,87,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,87],["outer-query-bank"]],["SWAP","qself6937",575,87,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],0]]],[575,88,[["INIT",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,88]],["qself6937",575,88,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,88,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,88,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,88],["outer-query-bank"]],["SWAP","qself6937",575,88,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],0]]],[575,89,[["INIT",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,89]],["qself6937",575,89,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,89,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,89,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,89],["outer-query-bank"]],["SWAP","qself6937",575,89,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],0]]],[575,90,[["INIT",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,90]],["qself6937",575,90,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,90,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,90,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,90],["outer-query-bank"]],["SWAP","qself6937",575,90,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],0]]],[575,91,[["INIT",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,91]],["qself6937",575,91,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,91,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,91,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,91],["outer-query-bank"]],["SWAP","qself6937",575,91,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],0]]],[575,92,[["INIT",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,92]],["qself6937",575,92,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,92,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,92,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,92],["outer-query-bank"]],["SWAP","qself6937",575,92,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],0]]],[575,93,[["INIT",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,93]],["qself6937",575,93,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,93,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,93,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,93],["outer-query-bank"]],["SWAP","qself6937",575,93,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],0]]],[575,94,[["INIT",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,94]],["qself6937",575,94,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,94,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,94,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,94],["outer-query-bank"]],["SWAP","qself6937",575,94,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],0]]],[575,95,[["INIT",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,95]],["qself6937",575,95,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,95,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,95,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,95],["outer-query-bank"]],["SWAP","qself6937",575,95,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],0]]],[575,96,[["INIT",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,96]],["qself6937",575,96,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,96,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,96,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,96],["outer-query-bank"]],["SWAP","qself6937",575,96,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],0]]],[575,97,[["INIT",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,97]],["qself6937",575,97,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,97,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,97,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,97],["outer-query-bank"]],["SWAP","qself6937",575,97,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],0]]],[575,98,[["INIT",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,98]],["qself6937",575,98,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,98,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,98,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,98],["outer-query-bank"]],["SWAP","qself6937",575,98,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],0]]],[575,99,[["INIT",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,99]],["qself6937",575,99,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,99,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,99,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,99],["outer-query-bank"]],["SWAP","qself6937",575,99,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],0]]],[575,100,[["INIT",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,100]],["qself6937",575,100,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,100,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,100,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,100],["outer-query-bank"]],["SWAP","qself6937",575,100,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],0]]],[575,101,[["INIT",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,101]],["qself6937",575,101,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,101,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,101,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,101],["outer-query-bank"]],["SWAP","qself6937",575,101,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],0]]],[575,102,[["INIT",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,102]],["qself6937",575,102,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,102,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,102,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,102],["outer-query-bank"]],["SWAP","qself6937",575,102,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],0]]],[575,103,[["INIT",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,103]],["qself6937",575,103,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,103,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,103,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,103],["outer-query-bank"]],["SWAP","qself6937",575,103,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],0]]]] diff --git a/research/p104-qself-owned-lowering/QUERY-BASES.json b/research/p104-qself-owned-lowering/QUERY-BASES.json new file mode 100644 index 0000000000..b614252b31 --- /dev/null +++ b/research/p104-qself-owned-lowering/QUERY-BASES.json @@ -0,0 +1,1570 @@ +{ + "source_repository": "DreamingOfClouds/integer-mult-bounds", + "source_commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "source_path": "research/p104-main-wire-native/retained/runtime/DATA-PHASES.json", + "source_git_blob": "d9a4f84211182ca200c081ea061d724c8a2cfb70", + "source_sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "note": "Derived exact extraction; all basis equations and actual word-port bindings are independently checked, so correctness does not depend on trusting this provenance.", + "records": [ + { + "port": 0, + "q": 11, + "basis": [ + 11, + 13, + 14, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 1, + "q": 19, + "basis": [ + 19, + 21, + 22, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 2, + "q": 35, + "basis": [ + 35, + 37, + 38, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 3, + "q": 131, + "basis": [ + 131, + 133, + 134, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 4, + "q": 259, + "basis": [ + 259, + 261, + 262, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 5, + "q": 13, + "basis": [ + 13, + 14, + 11, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 6, + "q": 21, + "basis": [ + 21, + 22, + 19, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 7, + "q": 37, + "basis": [ + 37, + 38, + 35, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 8, + "q": 69, + "basis": [ + 69, + 70, + 67, + 8, + 16, + 32, + 7, + 128, + 256 + ] + }, + { + "port": 9, + "q": 133, + "basis": [ + 133, + 134, + 131, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 10, + "q": 261, + "basis": [ + 261, + 262, + 259, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 11, + "q": 41, + "basis": [ + 41, + 42, + 4, + 35, + 16, + 11, + 64, + 128, + 256 + ] + }, + { + "port": 12, + "q": 73, + "basis": [ + 73, + 74, + 4, + 67, + 16, + 32, + 11, + 128, + 256 + ] + }, + { + "port": 13, + "q": 265, + "basis": [ + 265, + 266, + 4, + 259, + 16, + 32, + 64, + 128, + 11 + ] + }, + { + "port": 14, + "q": 49, + "basis": [ + 49, + 50, + 4, + 8, + 35, + 19, + 64, + 128, + 256 + ] + }, + { + "port": 15, + "q": 81, + "basis": [ + 81, + 82, + 4, + 8, + 67, + 32, + 19, + 128, + 256 + ] + }, + { + "port": 16, + "q": 145, + "basis": [ + 145, + 146, + 4, + 8, + 131, + 32, + 64, + 19, + 256 + ] + }, + { + "port": 17, + "q": 273, + "basis": [ + 273, + 274, + 4, + 8, + 259, + 32, + 64, + 128, + 19 + ] + }, + { + "port": 18, + "q": 161, + "basis": [ + 161, + 162, + 4, + 8, + 16, + 131, + 64, + 35, + 256 + ] + }, + { + "port": 19, + "q": 193, + "basis": [ + 193, + 194, + 4, + 8, + 16, + 32, + 131, + 67, + 256 + ] + }, + { + "port": 20, + "q": 321, + "basis": [ + 321, + 322, + 4, + 8, + 16, + 32, + 259, + 128, + 67 + ] + }, + { + "port": 21, + "q": 385, + "basis": [ + 385, + 386, + 4, + 8, + 16, + 32, + 64, + 259, + 131 + ] + }, + { + "port": 22, + "q": 14, + "basis": [ + 14, + 13, + 11, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 23, + "q": 22, + "basis": [ + 22, + 21, + 19, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 24, + "q": 38, + "basis": [ + 38, + 37, + 35, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 25, + "q": 70, + "basis": [ + 70, + 69, + 67, + 8, + 16, + 32, + 7, + 128, + 256 + ] + }, + { + "port": 26, + "q": 134, + "basis": [ + 134, + 133, + 131, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 27, + "q": 262, + "basis": [ + 262, + 261, + 259, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 28, + "q": 26, + "basis": [ + 26, + 25, + 4, + 19, + 11, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 29, + "q": 74, + "basis": [ + 74, + 73, + 4, + 67, + 16, + 32, + 11, + 128, + 256 + ] + }, + { + "port": 30, + "q": 138, + "basis": [ + 138, + 137, + 4, + 131, + 16, + 32, + 64, + 11, + 256 + ] + }, + { + "port": 31, + "q": 50, + "basis": [ + 50, + 49, + 4, + 8, + 35, + 19, + 64, + 128, + 256 + ] + }, + { + "port": 32, + "q": 146, + "basis": [ + 146, + 145, + 4, + 8, + 131, + 32, + 64, + 19, + 256 + ] + }, + { + "port": 33, + "q": 274, + "basis": [ + 274, + 273, + 4, + 8, + 259, + 32, + 64, + 128, + 19 + ] + }, + { + "port": 34, + "q": 98, + "basis": [ + 98, + 97, + 4, + 8, + 16, + 67, + 35, + 128, + 256 + ] + }, + { + "port": 35, + "q": 290, + "basis": [ + 290, + 289, + 4, + 8, + 16, + 259, + 64, + 128, + 35 + ] + }, + { + "port": 36, + "q": 194, + "basis": [ + 194, + 193, + 4, + 8, + 16, + 32, + 131, + 67, + 256 + ] + }, + { + "port": 37, + "q": 322, + "basis": [ + 322, + 321, + 4, + 8, + 16, + 32, + 259, + 128, + 67 + ] + }, + { + "port": 38, + "q": 386, + "basis": [ + 386, + 385, + 4, + 8, + 16, + 32, + 64, + 259, + 131 + ] + }, + { + "port": 39, + "q": 28, + "basis": [ + 28, + 2, + 25, + 21, + 13, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 40, + "q": 44, + "basis": [ + 44, + 2, + 41, + 37, + 16, + 13, + 64, + 128, + 256 + ] + }, + { + "port": 41, + "q": 140, + "basis": [ + 140, + 2, + 137, + 133, + 16, + 32, + 64, + 13, + 256 + ] + }, + { + "port": 42, + "q": 268, + "basis": [ + 268, + 2, + 265, + 261, + 16, + 32, + 64, + 128, + 13 + ] + }, + { + "port": 43, + "q": 84, + "basis": [ + 84, + 2, + 81, + 8, + 69, + 32, + 21, + 128, + 256 + ] + }, + { + "port": 44, + "q": 148, + "basis": [ + 148, + 2, + 145, + 8, + 133, + 32, + 64, + 21, + 256 + ] + }, + { + "port": 45, + "q": 276, + "basis": [ + 276, + 2, + 273, + 8, + 261, + 32, + 64, + 128, + 21 + ] + }, + { + "port": 46, + "q": 100, + "basis": [ + 100, + 2, + 97, + 8, + 16, + 69, + 37, + 128, + 256 + ] + }, + { + "port": 47, + "q": 164, + "basis": [ + 164, + 2, + 161, + 8, + 16, + 133, + 64, + 37, + 256 + ] + }, + { + "port": 48, + "q": 292, + "basis": [ + 292, + 2, + 289, + 8, + 16, + 261, + 64, + 128, + 37 + ] + }, + { + "port": 49, + "q": 196, + "basis": [ + 196, + 2, + 193, + 8, + 16, + 32, + 133, + 69, + 256 + ] + }, + { + "port": 50, + "q": 324, + "basis": [ + 324, + 2, + 321, + 8, + 16, + 32, + 261, + 128, + 69 + ] + }, + { + "port": 51, + "q": 388, + "basis": [ + 388, + 2, + 385, + 8, + 16, + 32, + 64, + 261, + 133 + ] + }, + { + "port": 52, + "q": 56, + "basis": [ + 56, + 2, + 4, + 49, + 41, + 25, + 64, + 128, + 256 + ] + }, + { + "port": 53, + "q": 88, + "basis": [ + 88, + 2, + 4, + 81, + 73, + 32, + 25, + 128, + 256 + ] + }, + { + "port": 54, + "q": 152, + "basis": [ + 152, + 2, + 4, + 145, + 137, + 32, + 64, + 25, + 256 + ] + }, + { + "port": 55, + "q": 280, + "basis": [ + 280, + 2, + 4, + 273, + 265, + 32, + 64, + 128, + 25 + ] + }, + { + "port": 56, + "q": 168, + "basis": [ + 168, + 2, + 4, + 161, + 16, + 137, + 64, + 41, + 256 + ] + }, + { + "port": 57, + "q": 296, + "basis": [ + 296, + 2, + 4, + 289, + 16, + 265, + 64, + 128, + 41 + ] + }, + { + "port": 58, + "q": 200, + "basis": [ + 200, + 2, + 4, + 193, + 16, + 32, + 137, + 73, + 256 + ] + }, + { + "port": 59, + "q": 328, + "basis": [ + 328, + 2, + 4, + 321, + 16, + 32, + 265, + 128, + 73 + ] + }, + { + "port": 60, + "q": 392, + "basis": [ + 392, + 2, + 4, + 385, + 16, + 32, + 64, + 265, + 137 + ] + }, + { + "port": 61, + "q": 112, + "basis": [ + 112, + 2, + 4, + 8, + 97, + 81, + 49, + 128, + 256 + ] + }, + { + "port": 62, + "q": 176, + "basis": [ + 176, + 2, + 4, + 8, + 161, + 145, + 64, + 49, + 256 + ] + }, + { + "port": 63, + "q": 304, + "basis": [ + 304, + 2, + 4, + 8, + 289, + 273, + 64, + 128, + 49 + ] + }, + { + "port": 64, + "q": 208, + "basis": [ + 208, + 2, + 4, + 8, + 193, + 32, + 145, + 81, + 256 + ] + }, + { + "port": 65, + "q": 336, + "basis": [ + 336, + 2, + 4, + 8, + 321, + 32, + 273, + 128, + 81 + ] + }, + { + "port": 66, + "q": 400, + "basis": [ + 400, + 2, + 4, + 8, + 385, + 32, + 64, + 273, + 145 + ] + }, + { + "port": 67, + "q": 224, + "basis": [ + 224, + 2, + 4, + 8, + 16, + 193, + 161, + 97, + 256 + ] + }, + { + "port": 68, + "q": 352, + "basis": [ + 352, + 2, + 4, + 8, + 16, + 321, + 289, + 128, + 97 + ] + }, + { + "port": 69, + "q": 416, + "basis": [ + 416, + 2, + 4, + 8, + 16, + 385, + 64, + 289, + 161 + ] + }, + { + "port": 70, + "q": 508, + "basis": [ + 508, + 2, + 505, + 501, + 493, + 477, + 445, + 381, + 253 + ] + }, + { + "port": 71, + "q": 506, + "basis": [ + 506, + 505, + 4, + 499, + 491, + 475, + 443, + 379, + 251 + ] + }, + { + "port": 72, + "q": 502, + "basis": [ + 502, + 501, + 499, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 73, + "q": 494, + "basis": [ + 494, + 493, + 491, + 487, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 74, + "q": 478, + "basis": [ + 478, + 477, + 475, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 75, + "q": 446, + "basis": [ + 446, + 445, + 443, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 76, + "q": 382, + "basis": [ + 382, + 381, + 379, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 77, + "q": 254, + "basis": [ + 254, + 253, + 251, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 78, + "q": 505, + "basis": [ + 505, + 506, + 4, + 499, + 491, + 475, + 443, + 379, + 251 + ] + }, + { + "port": 79, + "q": 501, + "basis": [ + 501, + 502, + 499, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 80, + "q": 493, + "basis": [ + 493, + 494, + 491, + 487, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 81, + "q": 477, + "basis": [ + 477, + 478, + 475, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 82, + "q": 445, + "basis": [ + 445, + 446, + 443, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 83, + "q": 381, + "basis": [ + 381, + 382, + 379, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 84, + "q": 253, + "basis": [ + 253, + 254, + 251, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 85, + "q": 499, + "basis": [ + 499, + 501, + 502, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 86, + "q": 475, + "basis": [ + 475, + 477, + 478, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 87, + "q": 443, + "basis": [ + 443, + 445, + 446, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 88, + "q": 379, + "basis": [ + 379, + 381, + 382, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 89, + "q": 251, + "basis": [ + 251, + 253, + 254, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 90, + "q": 487, + "basis": [ + 487, + 493, + 491, + 494, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 91, + "q": 471, + "basis": [ + 471, + 477, + 475, + 478, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 92, + "q": 439, + "basis": [ + 439, + 445, + 443, + 446, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 93, + "q": 375, + "basis": [ + 375, + 381, + 379, + 382, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 94, + "q": 247, + "basis": [ + 247, + 253, + 251, + 254, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 95, + "q": 463, + "basis": [ + 463, + 477, + 475, + 471, + 478, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 96, + "q": 431, + "basis": [ + 431, + 445, + 443, + 439, + 446, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 97, + "q": 367, + "basis": [ + 367, + 381, + 379, + 375, + 382, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 98, + "q": 239, + "basis": [ + 239, + 253, + 251, + 247, + 254, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 99, + "q": 415, + "basis": [ + 415, + 445, + 443, + 439, + 431, + 446, + 64, + 319, + 191 + ] + }, + { + "port": 100, + "q": 351, + "basis": [ + 351, + 381, + 379, + 375, + 367, + 382, + 319, + 128, + 127 + ] + }, + { + "port": 101, + "q": 223, + "basis": [ + 223, + 253, + 251, + 247, + 239, + 254, + 191, + 127, + 256 + ] + }, + { + "port": 102, + "q": 319, + "basis": [ + 319, + 381, + 379, + 375, + 367, + 351, + 382, + 128, + 127 + ] + }, + { + "port": 103, + "q": 191, + "basis": [ + 191, + 253, + 251, + 247, + 239, + 223, + 254, + 127, + 256 + ] + } + ] +} diff --git a/research/p104-qself-owned-lowering/README.md b/research/p104-qself-owned-lowering/README.md new file mode 100644 index 0000000000..7a83565940 --- /dev/null +++ b/research/p104-qself-owned-lowering/README.md @@ -0,0 +1,142 @@ +# E-free caller certificate and owned QSELF lowering + +**No new κ. Conditional caller/compiler-interface progress.** Prepared for +**@CubeJerry**, with substantial OpenAI assistance. Apache-2.0. + +DreamingOfClouds' [#6937](https://github.com/CrocSwap/integer-mult-bounds/pull/6937) +supplies an E-free two-chain root and caller, but its new QSELF instruction +is outside the retained public QUERY alphabet. This package gives that exact +caller a reproducible operator certificate, constructs typed expansions of +both QSELF sites in the existing owned-bank lifecycle, and checks the source and cost change +against [#6936](https://github.com/CrocSwap/integer-mult-bounds/pull/6936). + +## Results + +- The exact 2,991-event, 76-field caller is diagonal over + `Q(i)[q,D_1,...,D_18]/(q^4-1)`, with all D variables formal and all input + fields independent. The forward certificate peaks at 2,713 monomials. + A separate reverse-covector engine uses integer dyadics and all four exact + q characters, still retaining every D variable formally. +- Event 457 on A role 0 and event 575 on A role 19 each have 96 instances. + Each expands to INIT, COPY, query-in, PAID(1), query-out, SWAP, CLEAR through + unchanged lifecycle IR classes. One outer query bank is reused; it has no + productive credit. The canonical ownership contract explicitly permits + the correlated copied value and erasure after the completed child returns. + This is a relative typed-IR expansion: this package does not install a + service registry for the new `qself6937` tokens. The old source-specific + binders are not implicitly extended by accepting these IR opcodes. +- Two nine-axis maps and the Q² return translation implement Q^-1 with its + exact absolute phase for every positive tensor-column count. Complete + field shape, grid, signed range and all physical providers remain declared + interface obligations. The prototype never uses a Python Gaussian callback + as evidence of tape execution. +- The complete profiles lose 192 targets and 192 paid calls, all at rank one. + Thus the moment polynomial is unchanged for every κ; surplus remains 1520. + The new complete counts are 23,050 productive fields and 117,846 paid calls. + Under the inherited scalar/routing conventions, including an explicit + extra 24,576-unit lifecycle charge, the conservative double-recharged raw + bill is 811,461,936, below 10⁹ by 188,538,064. +- The standalone copied-bank/SWAP scan remainder has a separately derived + physical bound. The unchanged INIT, COPY and CLEAR routines are metered on + 84 cases with widths 1 through 129, mixed component widths and dirty backing. + Twenty-seven meaningful algebra/source/phase/ownership/invoice controls + reject. A proposed forward-for-inverse basis mutation is correctly classified + as equivalent because all 96 stored bases happen to be involutions. + +See [PROOF.md](PROOF.md) for the quantified theorem, exact operation semantics, +all-column identity, physical scan calculation, stock, error propagation and +the limited formal determinant obstruction. [RESULT.json](RESULT.json) stores +the complete replay receipts; [QSELF-PATCH.json](QSELF-PATCH.json) stores all +192 source-bound IR expansions. That patch is a template artifact, not a +claim that the full physical caller has been executed. + +## Exact dependencies and prior work + +Canonical base: `7c49fe32c55de02c2c873655c804b16e4c3fef0a`; the selected +conditional κ remains **0.003125804**. The proposed caller/root are pinned to +DreamingOfClouds' #6937 head `a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`. +The comparison caller and unchanged native word are pinned to #6936 head +`03626137d0bd57f09b0bf9597376183ce6fa9683`. + +The E-free construction and the original reported caller replay are credited +to DreamingOfClouds, with Claude Opus assistance. The source README reports +four central characters but does not specify whether D stayed formal. Its +shipped checker only parses the caller; no claim is made that the separately +reported calculation was wrong or mathematically incomplete. Our concrete +addition is a reproducible unspecialized certificate and owned/source/cost +closure, not a claim of priority over unpublished details. + +The original lifecycle modules are vendored byte-for-byte from @CubeJerry's +published commit `ab239cb6ee884e7a900dd9101c34448077fad0b0`. The SWAP scan +theorem is pinned to published commit `e2e707fd99125ef0005ad16435d90e5d3a82f31e`. +External source-head objects need not be reachable in canonical Git: +[DEPENDENCIES.json](DEPENDENCIES.json) gives repository, commit, path, Git blob, +SHA256 and byte count, which the verifier checks directly. Reference-only code +is authenticated but not imported. The 104 small basis records are extracted +from a source-pinned phase file and independently checked against actual word +ports and orthogonality; that large reference file is not copied into the package. + +## Reproduction + +Python 3.12 standard library; no network, external executable, install or Git +history is needed for the four package checks: + +```sh +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite formal +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite closure +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite invoice +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite controls +``` + +Expected markers are `PASS_QSELF_OWNED_FORMAL`, `PASS_QSELF_OWNED_CLOSURE`, +`PASS_QSELF_OWNED_INVOICE`, and `PASS_QSELF_OWNED_CONTROLS`. VERIFY.json registers +all four in normal and optimized Python; the checks do not use removable +assert statements. In a canonical checkout, validate and run all registered +gates with: + +```sh +python3 -B scripts/research_package.py --package research/p104-qself-owned-lowering +``` + +`--regenerate` is an explicit developer command which rewrites RESULT.json and +QSELF-PATCH.json; ordinary verification writes neither file. The source inputs +are finite fixed templates, not samples over an unexplored search domain. + +## Limitations + +This is a conditional algebraic and typed-template composition theorem. The +full caller requires commuting operators and Q⁴=I. The local bank substitution +alone works for arbitrary completed A. All five selected framework assumptions +remain: native_all_columns, owned_erasure, compiler, precision_tape and +analytic_recovery. #6936's native/A6, odd-scalar exact-return and BIT premises +remain too. No complete rounded multiplier, physical fullcaller run or selected +supplier admission is asserted. The full numerical new bill uses inherited +scalar/pass rates, which are explicitly distinct from the metered physical +scan bound. An exact representation does not guarantee each Gaussian return +has the required finite signed width or grid. +The exact token-to-provider/table registry and concrete header export remain +unfinished; the typed patch is not a literal executable physical dispatcher. + +## Open next questions + +1. Install and verify an exact registry for the new query and SWAP tokens, + with source provenance, actual headers and the existing provider contracts. + IR opcode acceptance alone is insufficient for this step. +2. Bind every whole-job return to the common coded shape, grid and signed range + used by this source caller, including Controller INIT's payload-0 guide. + This is needed before claiming all-success physical execution. +3. Insert the changed finite raw-unit counts into an admitted compiled + precision/stock and error certificate. Use separate banks for suspended + unit instances and retain erased high-water backing. +4. Review the complete candidate's retained native, odd-scalar, BIT and + analytic premises. The unchanged moment polynomial is not selected-frontier + admission. A paired QUERY-only construction without owned initialization + is also not ruled out by the single-QSELF determinant lemma. + +Retain the native/productive/compiler lineage, Romman, @CubeJerry's +[#6912](https://github.com/CrocSwap/integer-mult-bounds/pull/6912) caller blocks +and [#6914](https://github.com/CrocSwap/integer-mult-bounds/pull/6914) owned-rise +work, unpaidmoon's [#6930](https://github.com/CrocSwap/integer-mult-bounds/pull/6930) +phase work, and icekylinx's [#104](https://github.com/CrocSwap/integer-mult-bounds/pull/104). +This package used substantial OpenAI assistance for analysis, proofs, code and +separate AI review; that is not independent human or proof-kernel acceptance. diff --git a/research/p104-qself-owned-lowering/RESULT.json b/research/p104-qself-owned-lowering/RESULT.json new file mode 100644 index 0000000000..fa7962ca59 --- /dev/null +++ b/research/p104-qself-owned-lowering/RESULT.json @@ -0,0 +1,273 @@ +{ + "closure": { + "adapter_binding": { + "all_positive_columns": "Proved by exact tensor identity in PROOF.md, not inferred from these finite checks.", + "exact_one_column_phase_equations": 49152, + "new_ports": 96, + "nine_axis_maps_per_QSELF": 2, + "provider_status": "Actual tape execution, common precision, signed range and numerical return remain inherited contracts.", + "translations_per_QSELF": 1 + }, + "physical_scan_costs": { + "Gaussian_or_fullcaller_execution": false, + "checked_functions": [ + "initialize", + "copy_as_add", + "retire" + ], + "dirty_copy_control": true, + "normal_head_and_raw_erasure_controls": true, + "physical_cell_actions": 377784, + "physical_scan_cases": 84 + }, + "source_expansion": { + "IR_events": 1344, + "SERVICE_registry_installed": false, + "dispatch_scope": "Relative typed-IR expansion only. New qself6937 tokens need an exact provider/table registry and header/format binding; old source-specific binders are not reused implicitly.", + "event_counts": { + "CLEAR": 192, + "COPY": 192, + "INIT": 192, + "PAID": 192, + "SERVICE": 576 + }, + "instances": 192, + "local_owned_lifetimes": 54, + "local_peak_owned": 43, + "local_source_events": 71144, + "local_typed_events": 83790, + "new_productive_credit": 0, + "patch_sha256": "c27e7ec3e900acdcb975064aca6ceab42b2fee7a179adb7d92b767b289d44304", + "physical_fullcaller_executed": false, + "private_query_banks_per_live_unit": 1, + "sites": [ + 457, + 575 + ], + "source_roles": [ + 0, + 19 + ] + } + }, + "controls": { + "controls": { + "ADD substituted for complete swap": true, + "COPY before initialization": true, + "Q instead of inverse Q": true, + "Q instead of inverse Q / independent covectors": true, + "arbitrary-input contamination": true, + "arbitrary-input contamination / independent covectors": true, + "clear before child return": true, + "deleted first QSELF": true, + "deleted first QSELF / independent covectors": true, + "deleted second QSELF": true, + "duplicate idle stage in one mask": true, + "helper/main allocation alias": true, + "missing Q-squared return translation": true, + "missing new paid debit": true, + "missing physical CLEAR": true, + "nonorthogonal adapter": true, + "omitted inverse ambient basis": true, + "owned public alias": true, + "repeated D across separate events": true, + "repeated D across separate events / independent covectors": true, + "type-B port substituted": true, + "unbound source site": true, + "undercounted paid rank": true, + "wrong q period 2": true, + "wrong q period 8": true, + "wrong source owner": true, + "wrong total-Q LAMBDA phase": true + }, + "equivalent_not_negative": "All 96 stored nine-axis bases are involutions; forward-for-inverse is correctly accepted.", + "rejected": 27 + }, + "formal": { + "forward": { + "D_variables": 18, + "endpoint_sha256": "a1170bbdfdeab23e8d54af136a1b4a7515e9b0e893eac6656a1af47d0b9605b5", + "endpoint_terms": 76, + "events": 2991, + "independent_inputs": 76, + "peak_row_terms": 90, + "peak_terms": 2713, + "q_relation": "q^4=1" + }, + "independent_backward_covectors": [ + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 198, + "q_character_power_of_i": 0 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 198, + "q_character_power_of_i": 1 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 439, + "q_character_power_of_i": 2 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 439, + "q_character_power_of_i": 3 + } + ], + "universal_scope": "Commuting Q,D_1,...,D_18 with Q^4=I; exact independent input coefficients. No finite D substitutions." + }, + "invoice": { + "local_source_counts": { + "allowance": 870150, + "allowance_per_call": 10731150, + "helpers": { + "1": 12, + "2": 17, + "3": 44, + "4": 215, + "5": 68, + "6": 41, + "7": 14, + "8": 62, + "9": 588 + }, + "lifetimes": 54, + "owned_labels": 51, + "owned_rise_mass": 56, + "owned_rises": 23, + "paid": { + "1": 4109, + "2": 878, + "3": 781, + "4": 218, + "5": 304, + "6": 15, + "7": 12, + "8": 6 + }, + "peak_owned": 43, + "public": 1461, + "reviewed_per_call": 11635872, + "reviewed_scalar": 1774872, + "routes": 9861000 + }, + "new_caller_cost": { + "caller_envelope": 132427264, + "idle_maps": 205536000, + "lambda_recharge": 11792000, + "main_maps": 248144000, + "main_normalizers": 102752, + "qself_extra_lifecycle": 24576, + "query_maps": 1248000, + "raw_rest": 587489248, + "thin_lifecycle": 6656 + }, + "new_double_recharged_raw": 811461936, + "new_outer_query_lifetimes": 416, + "new_paid": { + "1": 74378, + "16": 416, + "2": 15804, + "24": 416, + "3": 14058, + "32": 416, + "4": 3924, + "40": 416, + "48": 416, + "5": 5472, + "56": 416, + "6": 270, + "64": 416, + "7": 216, + "8": 812 + }, + "new_paid_rank_mass": 317324, + "new_qself_lifetimes": 192, + "new_reviewed_raw": 796934944, + "new_targets": { + "1": 216, + "145": 208, + "17": 416, + "2": 306, + "25": 416, + "3": 792, + "33": 416, + "4": 3870, + "41": 416, + "49": 416, + "5": 1224, + "57": 416, + "6": 738, + "65": 416, + "7": 252, + "73": 416, + "8": 1116, + "9": 11000 + }, + "old_caller_cost": { + "caller_envelope": 166612480, + "idle_maps": 205536000, + "lambda_recharge": 12560000, + "main_maps": 248720000, + "main_normalizers": 107744, + "qself_extra_lifecycle": 0, + "query_maps": 1824000, + "raw_rest": 622809952, + "thin_lifecycle": 9728 + }, + "old_outer_query_lifetimes": 608, + "old_paid": { + "1": 74570, + "16": 416, + "2": 15804, + "24": 416, + "3": 14058, + "32": 416, + "4": 3924, + "40": 416, + "48": 416, + "5": 5472, + "56": 416, + "6": 270, + "64": 416, + "7": 216, + "8": 812 + }, + "old_reviewed_raw": 832255648, + "old_targets": { + "1": 408, + "145": 208, + "17": 416, + "2": 306, + "25": 416, + "3": 792, + "33": 416, + "4": 3870, + "41": 416, + "49": 416, + "5": 1224, + "57": 416, + "6": 738, + "65": 416, + "7": 252, + "73": 416, + "8": 1116, + "9": 11000 + }, + "ordinary_margin": 188538064, + "owned_query_bank_count": 1, + "paid_count": 117846, + "per_call_scale_recharge": 2734992, + "rank_mass_surplus": 1520, + "selected_kappa_change": false, + "status": "Conditional source invoice; no native, rounded, physical fullcaller or supplier admission follows from counting.", + "target_count": 23050 + }, + "source_files_authenticated": 12 +} diff --git a/research/p104-qself-owned-lowering/REVIEW.md b/research/p104-qself-owned-lowering/REVIEW.md new file mode 100644 index 0000000000..2c04f39c16 --- /dev/null +++ b/research/p104-qself-owned-lowering/REVIEW.md @@ -0,0 +1,60 @@ +# Review and evidence boundaries + +Prepared for @CubeJerry, with substantial OpenAI assistance. No independent +human or proof-kernel acceptance is asserted. + +## Two certificate methods + +The forward engine keeps q as a formal residue class and all 18 D variables +as formal monomials, with exact Gaussian rational input coefficients. +The backward engine uses output covectors, transposed gate propagation, +separate integer-dyadic arithmetic, and four exact q characters while still +keeping every D formal. Injectivity of those four characters supplies the +universal q identity. It does not import the forward implementation. + +The 27 meaningful failure controls include missing/changed QSELF, unrelated +input contamination, repeated D factors, q periods two and eight, total-Q +LAMBDA phase, omitted return translation, omitted inverse basis, ownership +and lifetime faults, understated paid rank and a helper/main alias. Several +critical algebra controls also fail in the separate backward engine. + +A proposed forward-for-inverse basis mutation was initially expected to fail. +It did not: all 96 actual stored bases are involutions. That substitution is +equivalent and is recorded as an accepted equivalence, not counted among the +27 rejected negative controls. Omitting the inverse map altogether is the +meaningful failing control. This is an audit of control validity, not an +implementation defect or evidence of a mathematical obstruction. + +## Lead cross-review + +The lead research agent separately read PROOF.md and the actual source +operation definitions. Its mathematical review checked the generic copied +bank substitution, four-character injectivity, deliberately limited +determinant statement, explicit common-format/rounded-return limitations and +the physical scan derivation. No issue remained within those stated premises. + +The lead also wrote a separate raw-source tally without importing invoice.py. +It confirmed 23,050 targets, 117,846 paid calls, rank-mass surplus 1520 and +paid rank mass 317,324; the exact all-rank difference is -192 in both rank-one +counts and zero at every other rank. It independently counted the 1,061 +helpers, 400 local mains and 71,144 source events, and verified QSELF source +sites 457 and 575. + +A separate lead check used all 96 actual native ports to verify 49,152 exact +one-column phase equations, with 24,576 discriminators for an omitted Q² +translation. Tensor exponent addition was checked at f=1,...,5. The all-f +conclusion uses the written per-column tensor identity; it is not inferred +from those five finite cases. + +The lead identified a dispatch distinction before freezing: new QSELF tokens +are not automatically admitted by earlier source-specific service binders. +The theorem, README, PR description and machine-readable receipt now state +that the package supplies a relative typed-IR substitution, with no installed +new SERVICE registry. That finite token/header/provider binding remains open. + +These checks share the same authenticated source objects and are separate +AI/code-assisted work. They are not a second physical implementation or a +complete independent review of the candidate supplier. The 84 metered +lifecycle scan cases execute only INIT, COPY and CLEAR; the source-bound IR +expansions and complete native structural pass do not execute the full +Gaussian caller. These distinctions remain part of the result. diff --git a/research/p104-qself-owned-lowering/SOURCES.json b/research/p104-qself-owned-lowering/SOURCES.json new file mode 100644 index 0000000000..5768a5cca4 --- /dev/null +++ b/research/p104-qself-owned-lowering/SOURCES.json @@ -0,0 +1,24 @@ +{ + "schema_version": 1, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + }, + { + "path": "research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "usage": "provenance", + "git_blob": "4badb40f0919c515823cb07e44c6470d4d6469ca", + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8" + } + ] +} diff --git a/research/p104-qself-owned-lowering/TASK.json b/research/p104-qself-owned-lowering/TASK.json new file mode 100644 index 0000000000..a8fa2277e1 --- /dev/null +++ b/research/p104-qself-owned-lowering/TASK.json @@ -0,0 +1,93 @@ +{ + "schema_version": 1, + "task_id": "uniform-transfer-audit", + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_card": { + "id": "uniform-transfer-audit", + "question": "Can one of the selected record's five inherited assumptions be proved at its actual caller?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "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_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "Choose one assumption ID (native_all_columns, owned_erasure, compiler, precision_tape, analytic_recovery), one quantified implication and exact dependency closure. Check current handoffs, including #5625 row reentry and #5707 root-prefix lowering, without treating their partial scope as the whole theorem. Prove or falsify that implication with a caller-bound argument; stop at the chosen obligation. Finite tests or root digits do not discharge an all-size statement.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "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" + }, + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "refined", + "scope_change_reason": "Lead-assigned wave-3 scope at fresh #6937: the E-free root already exists; verify its formal caller and close its two QSELF operations through the existing owned lifecycle, without recreating the root or entering unrelated native work.", + "actual_scope": "Exact unspecialized caller identity, separate backward covectors, relative typed-IR one-bank QSELF lowering, source phase/format contracts, and complete target/paid and positive cost/stock comparison with #6936. No new SERVICE registry or physical dispatcher is installed.", + "bottleneck_link": "Makes the E-free candidate independent of empty-mask main productive credits and reduces new-QSELF admission to existing explicit owned/native/format/compiler contracts. No selected fundamental assumption is wholly discharged.", + "stop_rule": "Complete this exact two-site source class and its certificate/cost join; exclude other roots, native redesign, paired gadget search and new kappa claims.", + "evidence": "PROOF.md, RESULT.json, QSELF-PATCH.json; exact formal arithmetic, independent reverse covectors, 27 failure controls and 84 unchanged lifecycle scan cases.", + "author": "@CubeJerry", + "ai_assistance": "Substantial OpenAI assistance in source analysis, mathematics, implementation and verification. Separate AI review is not independent human or proof-kernel acceptance.", + "outcome": "completed", + "open_questions": [ + { + "question": "Install an exact token-to-provider/table registry and concrete header export for qself6937 services.", + "why_it_matters": "Unit.check validates event/lifetime structure, not executable service dispatch or numerical contracts.", + "first_step": "Bind actual source site/port/field tokens to the existing SWAP table and admitted query adapter/leaf providers with every header and format predicate.", + "blocked_by": "Explicit finite binder and provider-join work remains." + }, + { + "question": "Bind every actual returned field to the common coded shape, grid and signed range, including INIT guide payload0.", + "why_it_matters": "The physical success theorem needs these source predicates, not merely matching ranks.", + "first_step": "Join exact native/recursive query returns to the coded provider endpoint and complete error contract.", + "blocked_by": "Native and precision_tape provider obligations." + }, + { + "question": "Substitute the new finite raw-unit inventory into complete compiled precision and stock bounds.", + "why_it_matters": "Smaller moment counts do not automatically supply recursive lifecycle or rounded error guarantees.", + "first_step": "Carry the explicit one-bank-per-live-unit lifetime, retained backing and complete new scalar/paid counts through the existing compiler.", + "blocked_by": "Compiler, common-format, numeric and analytic interfaces remain conditional." + } + ] +} diff --git a/research/p104-qself-owned-lowering/VERIFY.json b/research/p104-qself-owned-lowering/VERIFY.json new file mode 100644 index 0000000000..5c278956b2 --- /dev/null +++ b/research/p104-qself-owned-lowering/VERIFY.json @@ -0,0 +1,123 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/p104-qself-owned-lowering/data/caller_efree.json", + "research/p104-qself-owned-lowering/data/root_A_efree.json", + "research/p104-qself-owned-lowering/data/caller_6936.json", + "research/p104-qself-owned-lowering/data/root_A_6936.json", + "research/p104-qself-owned-lowering/data/word_6936.json.gz", + "research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md", + "research/p104-qself-owned-lowering/reference/jclib_6936.py", + "research/p104-qself-owned-lowering/reference/physical_review_6936.py", + "research/p104-qself-owned-lowering/reference/check_6937.py", + "research/p104-qself-owned-lowering/vendor/machine.py", + "research/p104-qself-owned-lowering/vendor/source_ir.py", + "research/p104-qself-owned-lowering/reference/SWAP-PROOF.md", + "research/p104-qself-owned-lowering/QUERY-BASES.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "formal" + ], + "timeout_seconds": 120, + "checks": "Normal formal exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "closure" + ], + "timeout_seconds": 120, + "checks": "Normal closure exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "invoice" + ], + "timeout_seconds": 120, + "checks": "Normal invoice exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "controls" + ], + "timeout_seconds": 120, + "checks": "Normal controls exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "formal" + ], + "timeout_seconds": 120, + "checks": "Optimized formal exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "closure" + ], + "timeout_seconds": 120, + "checks": "Optimized closure exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "invoice" + ], + "timeout_seconds": 120, + "checks": "Optimized invoice exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "controls" + ], + "timeout_seconds": 120, + "checks": "Optimized controls exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + } + ] +} diff --git a/research/p104-qself-owned-lowering/check_controls.py b/research/p104-qself-owned-lowering/check_controls.py new file mode 100644 index 0000000000..5824cee7a4 --- /dev/null +++ b/research/p104-qself-owned-lowering/check_controls.py @@ -0,0 +1,83 @@ +"""Meaningful source, algebra, ownership, phase and billing failure controls.""" +from pathlib import Path +from copy import deepcopy +import json +import sys + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from source_binding import inputs +import operator_ring as P +import dual_certificate as D +import owned_lowering as O +import invoice as I + + +def rejection(action): + try: + action() + except ValueError: + return True + raise ValueError('negative control was not rejected') + + +def verify(): + caller, old, word, bases = inputs() + result = {} + def mutation(name, edit, dual=False): + bad = deepcopy(caller); edit(bad) + result[name] = rejection(lambda: P.replay(bad)) + if dual: + result[name+' / independent covectors'] = rejection(lambda: D.certificate(bad)) + mutation('deleted first QSELF', lambda c: c['events'].pop(457), True) + mutation('deleted second QSELF', lambda c: c['events'].pop(575)) + mutation('Q instead of inverse Q', lambda c: c['events'][457].__setitem__(3, 1), True) + mutation('wrong source owner', lambda c: c['events'][575].__setitem__(2, 20)) + mutation('arbitrary-input contamination', lambda c: c['events'].append(['A', 'ADD', 0, 1, '1']), True) + selected = next(i+1 for i, b in enumerate(caller['types']['A']['diagonal'][0][2:]) if b) + mutation('repeated D across separate events', lambda c: c['events'].append(['A', 'IDLE_ONE', 0, [selected]]), True) + idle = next(i for i, e in enumerate(caller['events']) if e[0] == 'A' and e[1] == 'IDLE_ONE') + mutation('duplicate idle stage in one mask', lambda c: c['events'][idle][3].append(c['events'][idle][3][0])) + lam = next(i for i, e in enumerate(caller['events']) if e[0] == 'A' and e[1] == 'LAMBDA') + mutation('wrong total-Q LAMBDA phase', lambda c: c['events'][lam].__setitem__(3, -c['events'][lam][3])) + for modulus in (2, 8): + result['wrong q period '+str(modulus)] = rejection(lambda modulus=modulus: P.replay(caller, modulus=modulus)) + result['missing Q-squared return translation'] = rejection(lambda: O.adapter_records(caller, word, bases, omit_translation=True)) + result['omitted inverse ambient basis'] = rejection(lambda: O.adapter_records(caller, word, bases, omit_inverse=True)) + bad_basis = deepcopy(bases); bad_basis['records'][0]['basis'][1] = bad_basis['records'][0]['basis'][0] + result['nonorthogonal adapter'] = rejection(lambda: O.adapter_records(caller, word, bad_basis)) + port = caller['types']['A']['ports'][0] + unit = O.expansion(caller, 457, port) + def altered(events, owned=None): + return O.IR.Unit(unit.name, unit.roles, unit.owned if owned is None else owned, tuple(events)) + result['owned public alias'] = rejection(lambda: O.expansion(caller, 457, port, bank=unit.roles[0][0])) + result['missing physical CLEAR'] = rejection(lambda: O.check_expansion(altered(unit.events[:-1]), caller, 457, port)) + result['COPY before initialization'] = rejection(lambda: O.check_expansion(altered((unit.events[1], unit.events[0])+unit.events[2:]), caller, 457, port)) + result['clear before child return'] = rejection(lambda: O.check_expansion(altered(unit.events[:3]+(unit.events[-1],)+unit.events[3:-1]), caller, 457, port)) + bad = list(unit.events); e = bad[3]; bad[3] = O.IR.Event(e.op, e.fields, e.token, 2) + result['undercounted paid rank'] = rejection(lambda: O.check_expansion(altered(bad), caller, 457, port)) + bad = list(unit.events); e = bad[5]; bad[5] = O.IR.Event(e.op, e.fields, ('query-add',)+e.token[1:]) + result['ADD substituted for complete swap'] = rejection(lambda: O.check_expansion(altered(bad), caller, 457, port)) + result['unbound source site'] = rejection(lambda: O.expansion(caller, 458, port)) + result['type-B port substituted'] = rejection(lambda: O.expansion(caller, 457, caller['types']['B']['ports'][0])) + bad = deepcopy(caller); bad['events'].pop(457) + result['missing new paid debit'] = rejection(lambda: I.verify(old, bad, word)) + bad_word = deepcopy(word); bad_word['hosted']['X2'][0] = bad_word['hosted']['Y2'][0] + result['helper/main allocation alias'] = rejection(lambda: I.verify(old, caller, bad_word)) + # The stored bases happen to be involutions. Reusing B for B^-1 is + # equivalent here and must not be reported as a rejected negative control. + equivalent = True + for row in bases['records']: + if row['port'] not in caller['types']['A']['ports']: + continue + basis = row['basis'] + def B(x): + return sum(((a & x).bit_count() % 2) << i for i, a in enumerate(basis)) + equivalent &= all(B(B(x)) == x for x in range(512)) + P.need(equivalent, 'equivalent forward/inverse substitution is correctly classified') + return {'rejected': len(result), 'controls': result, + 'equivalent_not_negative': 'All 96 stored nine-axis bases are involutions; forward-for-inverse is correctly accepted.'} + + +if __name__ == '__main__': + print(json.dumps(verify(), sort_keys=True)) + print('PASS_QSELF_OWNED_CONTROLS') diff --git a/research/p104-qself-owned-lowering/data/caller_6936.json b/research/p104-qself-owned-lowering/data/caller_6936.json new file mode 100644 index 0000000000..08830cee27 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/caller_6936.json @@ -0,0 +1 @@ +{"schema":"mixed-root-caller/1","stages":18,"ambient_rank":153,"roles":78,"types":{"A":{"form":"two-chain-HOST2","roles":40,"offset":0,"ports":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,36,37,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"alpha2":"-1","beta2":"0","diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]},"B":{"form":"hosted-HOST","roles":38,"offset":40,"ports":[15,17,27,34,35,42,47,55],"diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]],"pairs":[[0,1,"-1","1/2","-1/2"],[2,3,"-1","1/2","-1/2"],[4,5,"-1","1/2","-1/2"],[6,7,"-1","1/2","-1/2"],[8,9,"-1","1/2","-1/2"],[10,11,"-1","1/2","-1/2"],[12,13,"-1","1/2","-1/2"],[14,15,"-1","1/2","-1/2"],[16,17,"-1","1/2","-1/2"],[22,23,"-1","1/2","-1/2"],[24,25,"-1","1/2","-1/2"],[26,27,"-1","1/2","-1/2"],[28,29,"-1","1/2","-1/2"],[30,31,"-1","1/2","-1/2"],[32,33,"-1","1/2","-1/2"],[34,35,"-1","1/2","-1/2"],[36,37,"-1","1/2","-1/2"],[38,39,"-1","1/2","-1/2"]]}},"events":[["A","ADD",0,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","SWAP",20,21],["A","SCALE",21,"-1"],["A","LAMBDA",20,1],["B","ADD",42,43,"-2"],["B","ADD",41,43,"1"],["B","ADD",40,43,"2"],["B","ADD",41,42,"1"],["B","ADD",40,42,"1"],["B","ADD",40,41,"-2"],["B","SCALE",41,"256"],["B","ADD",43,41,"-1/128"],["B","ADD",42,41,"1/128"],["B","SCALE",40,"128"],["B","ADD",43,40,"-1/128"],["B","ADD",42,40,"1/64"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["J",1,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",1,2,"1"],["A","ADD",0,2,"-1"],["A","SCALE",1,"-1"],["A","SWAP",1,2],["A","ADD",2,0,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",21,22,"1"],["A","ADD",20,22,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,22],["A","SCALE",20,"-1"],["A","ADD",22,20,"1"],["A","SWAP",20,21],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",42,[1]],["B","IDLE_ONE",43,[1]],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",41,45,"-256"],["B","ADD",40,45,"-128"],["B","ADD",43,44,"1"],["B","ADD",42,44,"-2"],["B","ADD",41,44,"-256"],["B","ADD",41,43,"256"],["B","ADD",40,43,"-128"],["B","ADD",40,42,"-128"],["B","ADD",43,42,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",45,41,"-1/128"],["B","ADD",44,41,"1/128"],["B","ADD",43,41,"1/128"],["B","ADD",42,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",45,40,"1/128"],["B","ADD",43,40,"-1/128"],["B","ADD",42,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",2,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[2,3,4,5,6,7,8,9]],["A","ADD",1,3,"1"],["A","ADD",0,3,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,3],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",22,[2,3,4,5,6,7,8,9]],["A","ADD",21,23,"1"],["A","ADD",20,23,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,23],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",42,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",43,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",44,[2]],["B","IDLE_ONE",45,[2]],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",41,47,"-256"],["B","ADD",40,47,"-128"],["B","ADD",45,46,"1"],["B","ADD",44,46,"-2"],["B","ADD",41,46,"-256"],["B","ADD",41,45,"256"],["B","ADD",40,45,"-128"],["B","ADD",40,44,"-128"],["B","ADD",45,44,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",47,41,"-1/128"],["B","ADD",46,41,"1/128"],["B","ADD",45,41,"1/128"],["B","ADD",44,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",47,40,"1/128"],["B","ADD",45,40,"-1/128"],["B","ADD",44,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",3,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",3,[3,4,5,6,7,8,9]],["A","ADD",1,4,"1"],["A","ADD",0,4,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,4],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",23,[3,4,5,6,7,8,9]],["A","ADD",21,24,"1"],["A","ADD",20,24,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,24],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",44,[3,4,5,6,7,8,9]],["B","IDLE_ONE",45,[3,4,5,6,7,8,9]],["B","IDLE_ONE",46,[3]],["B","IDLE_ONE",47,[3]],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",41,49,"-256"],["B","ADD",40,49,"-128"],["B","ADD",47,48,"1"],["B","ADD",46,48,"-2"],["B","ADD",41,48,"-256"],["B","ADD",41,47,"256"],["B","ADD",40,47,"-128"],["B","ADD",40,46,"-128"],["B","ADD",47,46,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",49,41,"-1/128"],["B","ADD",48,41,"1/128"],["B","ADD",47,41,"1/128"],["B","ADD",46,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",49,40,"1/128"],["B","ADD",47,40,"-1/128"],["B","ADD",46,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",4,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",4,[4,5,6,7,8,9]],["A","ADD",1,5,"1"],["A","ADD",0,5,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,5],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",24,[4,5,6,7,8,9]],["A","ADD",21,25,"1"],["A","ADD",20,25,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,25],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",46,[4,5,6,7,8,9]],["B","IDLE_ONE",47,[4,5,6,7,8,9]],["B","IDLE_ONE",48,[4]],["B","IDLE_ONE",49,[4]],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",41,51,"-256"],["B","ADD",40,51,"-128"],["B","ADD",49,50,"1"],["B","ADD",48,50,"-2"],["B","ADD",41,50,"-256"],["B","ADD",41,49,"256"],["B","ADD",40,49,"-128"],["B","ADD",40,48,"-128"],["B","ADD",49,48,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",51,41,"-1/128"],["B","ADD",50,41,"1/128"],["B","ADD",49,41,"1/128"],["B","ADD",48,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",51,40,"1/128"],["B","ADD",49,40,"-1/128"],["B","ADD",48,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",5,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",5,[5,6,7,8,9]],["A","ADD",1,6,"1"],["A","ADD",0,6,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,6],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",25,[5,6,7,8,9]],["A","ADD",21,26,"1"],["A","ADD",20,26,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,26],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",48,[5,6,7,8,9]],["B","IDLE_ONE",49,[5,6,7,8,9]],["B","IDLE_ONE",50,[5]],["B","IDLE_ONE",51,[5]],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",41,53,"-256"],["B","ADD",40,53,"-128"],["B","ADD",51,52,"1"],["B","ADD",50,52,"-2"],["B","ADD",41,52,"-256"],["B","ADD",41,51,"256"],["B","ADD",40,51,"-128"],["B","ADD",40,50,"-128"],["B","ADD",51,50,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",53,41,"-1/128"],["B","ADD",52,41,"1/128"],["B","ADD",51,41,"1/128"],["B","ADD",50,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",53,40,"1/128"],["B","ADD",51,40,"-1/128"],["B","ADD",50,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",6,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",6,[6,7,8,9]],["A","ADD",1,7,"1"],["A","ADD",0,7,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,7],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",26,[6,7,8,9]],["A","ADD",21,27,"1"],["A","ADD",20,27,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,27],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",50,[6,7,8,9]],["B","IDLE_ONE",51,[6,7,8,9]],["B","IDLE_ONE",52,[6]],["B","IDLE_ONE",53,[6]],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",41,55,"-256"],["B","ADD",40,55,"-128"],["B","ADD",53,54,"1"],["B","ADD",52,54,"-2"],["B","ADD",41,54,"-256"],["B","ADD",41,53,"256"],["B","ADD",40,53,"-128"],["B","ADD",40,52,"-128"],["B","ADD",53,52,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",55,41,"-1/128"],["B","ADD",54,41,"1/128"],["B","ADD",53,41,"1/128"],["B","ADD",52,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",55,40,"1/128"],["B","ADD",53,40,"-1/128"],["B","ADD",52,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",7,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",7,[7,8,9]],["A","ADD",1,8,"1"],["A","ADD",0,8,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,8],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",27,[7,8,9]],["A","ADD",21,28,"1"],["A","ADD",20,28,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,28],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",52,[7,8,9]],["B","IDLE_ONE",53,[7,8,9]],["B","IDLE_ONE",54,[7]],["B","IDLE_ONE",55,[7]],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",41,57,"-256"],["B","ADD",40,57,"-128"],["B","ADD",55,56,"1"],["B","ADD",54,56,"-2"],["B","ADD",41,56,"-256"],["B","ADD",41,55,"256"],["B","ADD",40,55,"-128"],["B","ADD",40,54,"-128"],["B","ADD",55,54,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",57,41,"-1/128"],["B","ADD",56,41,"1/128"],["B","ADD",55,41,"1/128"],["B","ADD",54,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",57,40,"1/128"],["B","ADD",55,40,"-1/128"],["B","ADD",54,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",8,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",8,[8,9]],["A","ADD",1,9,"1"],["A","ADD",0,9,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,9],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",28,[8,9]],["A","ADD",21,29,"1"],["A","ADD",20,29,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,29],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",54,[8,9]],["B","IDLE_ONE",55,[8,9]],["B","IDLE_ONE",56,[8]],["B","IDLE_ONE",57,[8]],["B","ADD",58,59,"-2"],["B","ADD",56,59,"-2"],["B","ADD",41,59,"-256"],["B","ADD",40,59,"-128"],["B","ADD",57,58,"1"],["B","ADD",56,58,"-2"],["B","ADD",41,58,"-256"],["B","ADD",41,57,"256"],["B","ADD",40,57,"-128"],["B","ADD",40,56,"-128"],["B","ADD",57,56,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",59,41,"-1/128"],["B","ADD",58,41,"1/128"],["B","ADD",57,41,"1/128"],["B","ADD",56,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",59,40,"1/128"],["B","ADD",57,40,"-1/128"],["B","ADD",56,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",9,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",9,[9]],["A","SWAP",8,9],["A","SWAP",7,9],["A","SWAP",6,9],["A","SWAP",5,9],["A","SWAP",4,9],["A","SWAP",3,9],["A","SWAP",2,9],["A","ADD",0,1,"1"],["A","SCALE",1,"-1"],["A","SWAP",1,9],["A","ADD",9,0,"1"],["A","ADD",8,0,"2"],["A","ADD",7,0,"2"],["A","ADD",6,0,"2"],["A","ADD",5,0,"2"],["A","ADD",4,0,"2"],["A","ADD",3,0,"2"],["A","ADD",2,0,"2"],["A","ADD",1,0,"2"],["A","ADD",19,1,"-1"],["A","ADD",18,1,"-1"],["A","ADD",17,1,"-1"],["A","ADD",16,1,"-1"],["A","ADD",15,1,"-1"],["A","ADD",14,1,"-1"],["A","ADD",13,1,"-1"],["A","ADD",12,1,"-1"],["A","ADD",11,1,"-1"],["A","ADD",10,1,"-1"],["A","ADD",9,1,"-1"],["A","ADD",8,1,"-1"],["A","ADD",7,1,"-1"],["A","ADD",6,1,"-1"],["A","ADD",5,1,"-1"],["A","ADD",4,1,"-1"],["A","ADD",3,1,"-1"],["A","ADD",2,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","ADD",19,0,"1"],["A","ADD",18,0,"1"],["A","ADD",17,0,"1"],["A","ADD",16,0,"1"],["A","ADD",15,0,"1"],["A","ADD",14,0,"1"],["A","ADD",13,0,"1"],["A","ADD",12,0,"1"],["A","ADD",11,0,"1"],["A","ADD",10,0,"1"],["A","ADD",9,0,"1"],["A","ADD",8,0,"1"],["A","ADD",7,0,"1"],["A","ADD",6,0,"1"],["A","ADD",5,0,"1"],["A","ADD",4,0,"1"],["A","ADD",3,0,"1"],["A","ADD",2,0,"1"],["A","SWAP",0,1],["A","ADD",1,19,"-1"],["A","ADD",1,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",1,10,"-1"],["A","ADD",1,9,"1"],["A","ADD",1,8,"-1"],["A","ADD",1,7,"1"],["A","ADD",1,6,"-1"],["A","ADD",1,5,"1"],["A","ADD",1,4,"-1"],["A","ADD",1,3,"1"],["A","ADD",1,2,"-1"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",18,0,"-2"],["A","ADD",17,0,"-2"],["A","ADD",16,0,"-2"],["A","ADD",15,0,"-2"],["A","ADD",14,0,"-2"],["A","ADD",13,0,"-2"],["A","ADD",12,0,"-2"],["A","ADD",11,0,"-2"],["A","ADD",10,0,"-2"],["A","ADD",1,0,"-2"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,19,"-1"],["A","ADD",0,19,"-1"],["A","ADD",1,18,"-1"],["A","ADD",0,18,"-1"],["A","ADD",19,18,"2"],["A","SWAP",18,19],["A","ADD",1,17,"1"],["A","ADD",0,17,"1"],["A","ADD",18,17,"-2"],["A","SWAP",17,18],["A","ADD",1,16,"-1"],["A","ADD",0,16,"-1"],["A","ADD",17,16,"2"],["A","SWAP",16,17],["A","ADD",1,15,"1"],["A","ADD",0,15,"1"],["A","ADD",16,15,"-2"],["A","SWAP",15,16],["A","ADD",1,14,"-1"],["A","ADD",0,14,"-1"],["A","ADD",15,14,"2"],["A","SWAP",14,15],["A","ADD",1,13,"1"],["A","ADD",0,13,"1"],["A","ADD",14,13,"-2"],["A","SWAP",13,14],["A","ADD",1,12,"-1"],["A","ADD",0,12,"-1"],["A","ADD",13,12,"2"],["A","SWAP",12,13],["A","ADD",1,11,"1"],["A","ADD",0,11,"1"],["A","ADD",12,11,"-2"],["A","SWAP",11,12],["A","ADD",1,10,"-1"],["A","ADD",0,10,"-1"],["A","ADD",11,10,"2"],["A","SWAP",10,11],["A","ADD",1,9,"1"],["A","ADD",0,9,"1"],["A","ADD",10,9,"-2"],["A","SWAP",9,10],["A","ADD",1,8,"-1"],["A","ADD",0,8,"-1"],["A","ADD",9,8,"2"],["A","SWAP",8,9],["A","ADD",1,7,"1"],["A","ADD",0,7,"1"],["A","ADD",8,7,"-2"],["A","SWAP",7,8],["A","ADD",1,6,"-1"],["A","ADD",0,6,"-1"],["A","ADD",7,6,"2"],["A","SWAP",6,7],["A","ADD",1,5,"1"],["A","ADD",0,5,"1"],["A","ADD",6,5,"-2"],["A","SWAP",5,6],["A","ADD",1,4,"-1"],["A","ADD",0,4,"-1"],["A","ADD",5,4,"2"],["A","SWAP",4,5],["A","ADD",1,3,"1"],["A","ADD",0,3,"1"],["A","ADD",4,3,"-2"],["A","SWAP",3,4],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","ADD",3,2,"2"],["A","SWAP",2,3],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",2,1,"-2"],["A","SWAP",1,2],["A","ADD",1,0,"1"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,19,"-2"],["A","ADD",0,19,"-2"],["A","ADD",1,18,"2"],["A","ADD",0,18,"2"],["A","ADD",1,17,"-2"],["A","ADD",0,17,"-2"],["A","SWAP",17,19],["A","ADD",1,16,"2"],["A","ADD",0,16,"2"],["A","SWAP",16,18],["A","ADD",1,15,"-2"],["A","ADD",0,15,"-2"],["A","SWAP",15,19],["A","ADD",1,14,"2"],["A","ADD",0,14,"2"],["A","SWAP",14,18],["A","ADD",1,13,"-2"],["A","ADD",0,13,"-2"],["A","SWAP",13,19],["A","ADD",1,12,"2"],["A","ADD",0,12,"2"],["A","SWAP",12,18],["A","ADD",1,11,"-1"],["A","SCALE",11,"-1"],["A","SWAP",11,19],["A","ADD",1,10,"2"],["A","ADD",0,10,"2"],["A","SWAP",10,18],["A","ADD",1,9,"-2"],["A","ADD",0,9,"-2"],["A","SWAP",9,17],["A","ADD",1,8,"2"],["A","ADD",0,8,"2"],["A","SWAP",8,16],["A","ADD",1,7,"-2"],["A","ADD",0,7,"-2"],["A","SWAP",7,15],["A","ADD",1,6,"2"],["A","ADD",0,6,"2"],["A","SWAP",6,14],["A","ADD",1,5,"-2"],["A","ADD",0,5,"-2"],["A","SWAP",5,13],["A","ADD",1,4,"2"],["A","ADD",0,4,"2"],["A","SWAP",4,12],["A","ADD",1,3,"-2"],["A","ADD",0,3,"-2"],["A","SWAP",3,11],["A","ADD",1,2,"2"],["A","ADD",0,2,"2"],["A","SWAP",2,10],["A","ADD",0,1,"-1"],["A","SWAP",1,19],["A","ADD",19,0,"-1"],["A","ADD",1,0,"2"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",29,[9]],["A","SWAP",28,29],["A","SWAP",27,29],["A","SWAP",26,29],["A","SWAP",25,29],["A","SWAP",24,29],["A","SWAP",23,29],["A","SWAP",22,29],["A","ADD",20,21,"1"],["A","SCALE",21,"-1"],["A","SWAP",21,29],["A","ADD",29,20,"1"],["A","ADD",28,20,"2"],["A","ADD",27,20,"2"],["A","ADD",26,20,"2"],["A","ADD",25,20,"2"],["A","ADD",24,20,"2"],["A","ADD",23,20,"2"],["A","ADD",22,20,"2"],["A","ADD",21,20,"2"],["A","ADD",39,21,"-1"],["A","ADD",38,21,"-1"],["A","ADD",37,21,"-1"],["A","ADD",36,21,"-1"],["A","ADD",35,21,"-1"],["A","ADD",34,21,"-1"],["A","ADD",33,21,"-1"],["A","ADD",32,21,"-1"],["A","ADD",31,21,"-1"],["A","ADD",30,21,"-1"],["A","ADD",29,21,"-1"],["A","ADD",28,21,"-1"],["A","ADD",27,21,"-1"],["A","ADD",26,21,"-1"],["A","ADD",25,21,"-1"],["A","ADD",24,21,"-1"],["A","ADD",23,21,"-1"],["A","ADD",22,21,"-1"],["A","SWAP",20,21],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",20,21,"-1"],["A","ADD",39,20,"1"],["A","ADD",38,20,"1"],["A","ADD",37,20,"1"],["A","ADD",36,20,"1"],["A","ADD",35,20,"1"],["A","ADD",34,20,"1"],["A","ADD",33,20,"1"],["A","ADD",32,20,"1"],["A","ADD",31,20,"1"],["A","ADD",30,20,"1"],["A","ADD",29,20,"1"],["A","ADD",28,20,"1"],["A","ADD",27,20,"1"],["A","ADD",26,20,"1"],["A","ADD",25,20,"1"],["A","ADD",24,20,"1"],["A","ADD",23,20,"1"],["A","ADD",22,20,"1"],["A","SWAP",20,21],["A","ADD",21,39,"-1"],["A","ADD",21,38,"-1"],["A","ADD",21,37,"1"],["A","ADD",21,36,"-1"],["A","ADD",21,35,"1"],["A","ADD",21,34,"-1"],["A","ADD",21,33,"1"],["A","ADD",21,32,"-1"],["A","ADD",21,31,"1"],["A","ADD",21,30,"-1"],["A","ADD",21,29,"1"],["A","ADD",21,28,"-1"],["A","ADD",21,27,"1"],["A","ADD",21,26,"-1"],["A","ADD",21,25,"1"],["A","ADD",21,24,"-1"],["A","ADD",21,23,"1"],["A","ADD",21,22,"-1"],["A","SCALE",21,"-1"],["A","SCALE",20,"-1"],["A","ADD",38,20,"-2"],["A","ADD",37,20,"-2"],["A","ADD",36,20,"-2"],["A","ADD",35,20,"-2"],["A","ADD",34,20,"-2"],["A","ADD",33,20,"-2"],["A","ADD",32,20,"-2"],["A","ADD",31,20,"-2"],["A","ADD",30,20,"-2"],["A","ADD",21,20,"-2"],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",21,39,"-1"],["A","ADD",20,39,"-1"],["A","ADD",21,38,"-1"],["A","ADD",20,38,"-1"],["A","ADD",39,38,"2"],["A","SWAP",38,39],["A","ADD",21,37,"1"],["A","ADD",20,37,"1"],["A","ADD",38,37,"-2"],["A","SWAP",37,38],["A","ADD",21,36,"-1"],["A","ADD",20,36,"-1"],["A","ADD",37,36,"2"],["A","SWAP",36,37],["A","ADD",21,35,"1"],["A","ADD",20,35,"1"],["A","ADD",36,35,"-2"],["A","SWAP",35,36],["A","ADD",21,34,"-1"],["A","ADD",20,34,"-1"],["A","ADD",35,34,"2"],["A","SWAP",34,35],["A","ADD",21,33,"1"],["A","ADD",20,33,"1"],["A","ADD",34,33,"-2"],["A","SWAP",33,34],["A","ADD",21,32,"-1"],["A","ADD",20,32,"-1"],["A","ADD",33,32,"2"],["A","SWAP",32,33],["A","ADD",21,31,"1"],["A","ADD",20,31,"1"],["A","ADD",32,31,"-2"],["A","SWAP",31,32],["A","ADD",21,30,"-1"],["A","ADD",20,30,"-1"],["A","ADD",31,30,"2"],["A","SWAP",30,31],["A","ADD",21,29,"1"],["A","ADD",20,29,"1"],["A","ADD",30,29,"-2"],["A","SWAP",29,30],["A","ADD",21,28,"-1"],["A","ADD",20,28,"-1"],["A","ADD",29,28,"2"],["A","SWAP",28,29],["A","ADD",21,27,"1"],["A","ADD",20,27,"1"],["A","ADD",28,27,"-2"],["A","SWAP",27,28],["A","ADD",21,26,"-1"],["A","ADD",20,26,"-1"],["A","ADD",27,26,"2"],["A","SWAP",26,27],["A","ADD",21,25,"1"],["A","ADD",20,25,"1"],["A","ADD",26,25,"-2"],["A","SWAP",25,26],["A","ADD",21,24,"-1"],["A","ADD",20,24,"-1"],["A","ADD",25,24,"2"],["A","SWAP",24,25],["A","ADD",21,23,"1"],["A","ADD",20,23,"1"],["A","ADD",24,23,"-2"],["A","SWAP",23,24],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","ADD",23,22,"2"],["A","SWAP",22,23],["A","ADD",20,21,"-1"],["A","SCALE",21,"-1"],["A","ADD",22,21,"-2"],["A","SWAP",21,22],["A","ADD",21,20,"1"],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",21,39,"-2"],["A","ADD",20,39,"-2"],["A","ADD",21,38,"2"],["A","ADD",20,38,"2"],["A","ADD",21,37,"-2"],["A","ADD",20,37,"-2"],["A","SWAP",37,39],["A","ADD",21,36,"2"],["A","ADD",20,36,"2"],["A","SWAP",36,38],["A","ADD",21,35,"-2"],["A","ADD",20,35,"-2"],["A","SWAP",35,39],["A","ADD",21,34,"2"],["A","ADD",20,34,"2"],["A","SWAP",34,38],["A","ADD",21,33,"-2"],["A","ADD",20,33,"-2"],["A","SWAP",33,39],["A","ADD",21,32,"2"],["A","ADD",20,32,"2"],["A","SWAP",32,38],["A","ADD",21,31,"-1"],["A","SCALE",31,"-1"],["A","SWAP",31,39],["A","ADD",21,30,"2"],["A","ADD",20,30,"2"],["A","SWAP",30,38],["A","ADD",21,29,"-2"],["A","ADD",20,29,"-2"],["A","SWAP",29,37],["A","ADD",21,28,"2"],["A","ADD",20,28,"2"],["A","SWAP",28,36],["A","ADD",21,27,"-2"],["A","ADD",20,27,"-2"],["A","SWAP",27,35],["A","ADD",21,26,"2"],["A","ADD",20,26,"2"],["A","SWAP",26,34],["A","ADD",21,25,"-2"],["A","ADD",20,25,"-2"],["A","SWAP",25,33],["A","ADD",21,24,"2"],["A","ADD",20,24,"2"],["A","SWAP",24,32],["A","ADD",21,23,"-2"],["A","ADD",20,23,"-2"],["A","SWAP",23,31],["A","ADD",21,22,"2"],["A","ADD",20,22,"2"],["A","SWAP",22,30],["A","ADD",20,21,"-1"],["A","SWAP",21,39],["A","SCALE",20,"-1"],["A","ADD",39,20,"1"],["A","ADD",21,20,"-2"],["A","SWAP",20,21],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",56,[9]],["B","IDLE_ONE",57,[9]],["B","IDLE_ONE",58,[9]],["B","IDLE_ONE",59,[9]],["B","ADD",58,77,"1"],["B","ADD",57,77,"1"],["B","ADD",55,77,"1"],["B","ADD",53,77,"1"],["B","ADD",51,77,"1"],["B","ADD",49,77,"1"],["B","ADD",47,77,"1"],["B","ADD",45,77,"1"],["B","ADD",43,77,"1"],["B","ADD",41,77,"-128"],["B","ADD",40,77,"64"],["B","ADD",58,75,"-1"],["B","ADD",57,75,"-1"],["B","ADD",55,75,"-1"],["B","ADD",53,75,"-1"],["B","ADD",51,75,"-1"],["B","ADD",49,75,"-1"],["B","ADD",47,75,"-1"],["B","ADD",45,75,"-1"],["B","ADD",43,75,"-1"],["B","ADD",41,75,"128"],["B","ADD",40,75,"-64"],["B","ADD",58,74,"2"],["B","ADD",57,74,"2"],["B","ADD",55,74,"2"],["B","ADD",53,74,"2"],["B","ADD",51,74,"2"],["B","ADD",49,74,"2"],["B","ADD",47,74,"2"],["B","ADD",45,74,"2"],["B","ADD",43,74,"2"],["B","ADD",41,74,"-256"],["B","ADD",40,74,"128"],["B","ADD",58,73,"-1"],["B","ADD",57,73,"-1"],["B","ADD",55,73,"-1"],["B","ADD",53,73,"-1"],["B","ADD",51,73,"-1"],["B","ADD",49,73,"-1"],["B","ADD",47,73,"-1"],["B","ADD",45,73,"-1"],["B","ADD",43,73,"-1"],["B","ADD",41,73,"128"],["B","ADD",40,73,"-64"],["B","ADD",58,71,"1"],["B","ADD",57,71,"1"],["B","ADD",55,71,"1"],["B","ADD",53,71,"1"],["B","ADD",51,71,"1"],["B","ADD",49,71,"1"],["B","ADD",47,71,"1"],["B","ADD",45,71,"1"],["B","ADD",43,71,"1"],["B","ADD",41,71,"-128"],["B","ADD",40,71,"64"],["B","ADD",58,70,"-2"],["B","ADD",57,70,"-2"],["B","ADD",55,70,"-2"],["B","ADD",53,70,"-2"],["B","ADD",51,70,"-2"],["B","ADD",49,70,"-2"],["B","ADD",47,70,"-2"],["B","ADD",45,70,"-2"],["B","ADD",43,70,"-2"],["B","ADD",41,70,"256"],["B","ADD",40,70,"-128"],["B","ADD",58,69,"1"],["B","ADD",57,69,"1"],["B","ADD",55,69,"1"],["B","ADD",53,69,"1"],["B","ADD",51,69,"1"],["B","ADD",49,69,"1"],["B","ADD",47,69,"1"],["B","ADD",45,69,"1"],["B","ADD",43,69,"1"],["B","ADD",41,69,"-128"],["B","ADD",40,69,"64"],["B","ADD",58,67,"-1"],["B","ADD",57,67,"-1"],["B","ADD",55,67,"-1"],["B","ADD",53,67,"-1"],["B","ADD",51,67,"-1"],["B","ADD",49,67,"-1"],["B","ADD",47,67,"-1"],["B","ADD",45,67,"-1"],["B","ADD",43,67,"-1"],["B","ADD",41,67,"128"],["B","ADD",40,67,"-64"],["B","ADD",58,66,"2"],["B","ADD",57,66,"2"],["B","ADD",55,66,"2"],["B","ADD",53,66,"2"],["B","ADD",51,66,"2"],["B","ADD",49,66,"2"],["B","ADD",47,66,"2"],["B","ADD",45,66,"2"],["B","ADD",43,66,"2"],["B","ADD",41,66,"-256"],["B","ADD",40,66,"128"],["B","ADD",58,65,"-1"],["B","ADD",57,65,"-1"],["B","ADD",55,65,"-1"],["B","ADD",53,65,"-1"],["B","ADD",51,65,"-1"],["B","ADD",49,65,"-1"],["B","ADD",47,65,"-1"],["B","ADD",45,65,"-1"],["B","ADD",43,65,"-1"],["B","ADD",41,65,"128"],["B","ADD",40,65,"-64"],["B","ADD",58,63,"1"],["B","ADD",57,63,"1"],["B","ADD",55,63,"1"],["B","ADD",53,63,"1"],["B","ADD",51,63,"1"],["B","ADD",49,63,"1"],["B","ADD",47,63,"1"],["B","ADD",45,63,"1"],["B","ADD",43,63,"1"],["B","ADD",41,63,"-128"],["B","ADD",40,63,"64"],["B","ADD",58,62,"-2"],["B","ADD",57,62,"-2"],["B","ADD",55,62,"-2"],["B","ADD",53,62,"-2"],["B","ADD",51,62,"-2"],["B","ADD",49,62,"-2"],["B","ADD",47,62,"-2"],["B","ADD",45,62,"-2"],["B","ADD",43,62,"-2"],["B","ADD",41,62,"256"],["B","ADD",40,62,"-128"],["B","ADD",58,61,"1"],["B","ADD",57,61,"1"],["B","ADD",55,61,"1"],["B","ADD",53,61,"1"],["B","ADD",51,61,"1"],["B","ADD",49,61,"1"],["B","ADD",47,61,"1"],["B","ADD",45,61,"1"],["B","ADD",43,61,"1"],["B","ADD",41,61,"-128"],["B","ADD",40,61,"64"],["B","ADD",41,59,"256"],["B","ADD",40,59,"-128"],["B","ADD",57,58,"-3/2"],["B","ADD",55,58,"-1"],["B","ADD",53,58,"-1"],["B","ADD",51,58,"-1"],["B","ADD",49,58,"-1"],["B","ADD",47,58,"-1"],["B","ADD",45,58,"-1"],["B","ADD",43,58,"-1"],["B","ADD",41,58,"128"],["B","ADD",40,58,"-64"],["B","SCALE",58,"1/2"],["B","ADD",55,57,"-1"],["B","ADD",53,57,"-1"],["B","ADD",51,57,"-1"],["B","ADD",49,57,"-1"],["B","ADD",47,57,"-1"],["B","ADD",45,57,"-1"],["B","ADD",43,57,"-1"],["B","ADD",41,57,"128"],["B","ADD",40,57,"64"],["B","SCALE",57,"-1"],["B","ADD",59,57,"1"],["B","SWAP",57,58],["B","ADD",55,56,"1/2"],["B","ADD",53,56,"1/2"],["B","ADD",51,56,"1/2"],["B","ADD",49,56,"1/2"],["B","ADD",47,56,"1/2"],["B","ADD",45,56,"1/2"],["B","ADD",43,56,"1/2"],["B","ADD",41,56,"-64"],["B","ADD",40,56,"-32"],["B","ADD",59,56,"1/2"],["B","ADD",58,56,"1/2"],["B","ADD",57,56,"1/2"],["B","ADD",53,54,"-1/2"],["B","ADD",51,54,"-1/2"],["B","ADD",49,54,"-1/2"],["B","ADD",47,54,"-1/2"],["B","ADD",45,54,"-1/2"],["B","ADD",43,54,"-1/2"],["B","ADD",41,54,"64"],["B","ADD",40,54,"32"],["B","ADD",59,54,"-1/2"],["B","ADD",58,54,"-1/2"],["B","ADD",57,54,"-1/2"],["B","ADD",55,54,"-1/2"],["B","ADD",51,53,"-1"],["B","ADD",49,53,"-2"],["B","ADD",47,53,"-1"],["B","ADD",45,53,"-1"],["B","ADD",43,53,"-1"],["B","ADD",41,53,"128"],["B","ADD",40,53,"64"],["B","ADD",59,53,"-1"],["B","ADD",58,53,"-1"],["B","ADD",57,53,"-1"],["B","ADD",55,53,"-1"],["B","ADD",49,52,"1/2"],["B","ADD",53,52,"-1/2"],["B","ADD",49,51,"-1"],["B","ADD",47,51,"-1"],["B","ADD",45,51,"-1"],["B","ADD",43,51,"-1"],["B","ADD",41,51,"128"],["B","ADD",40,51,"64"],["B","SCALE",51,"-1"],["B","ADD",59,51,"1"],["B","ADD",58,51,"1"],["B","ADD",57,51,"1"],["B","ADD",55,51,"1"],["B","SWAP",51,53],["B","ADD",49,50,"-1/2"],["B","ADD",51,50,"1/2"],["B","ADD",47,49,"-1"],["B","ADD",45,49,"-1"],["B","ADD",43,49,"-1"],["B","ADD",41,49,"128"],["B","ADD",40,49,"64"],["B","SCALE",49,"-1"],["B","ADD",59,49,"1"],["B","ADD",58,49,"1"],["B","ADD",57,49,"1"],["B","ADD",55,49,"1"],["B","ADD",53,49,"1"],["B","SWAP",49,51],["B","ADD",47,48,"1/2"],["B","ADD",45,48,"1/2"],["B","ADD",43,48,"1/2"],["B","ADD",41,48,"-64"],["B","ADD",40,48,"-32"],["B","ADD",59,48,"1/2"],["B","ADD",58,48,"1/2"],["B","ADD",57,48,"1/2"],["B","ADD",55,48,"1/2"],["B","ADD",53,48,"1/2"],["B","ADD",51,48,"1/2"],["B","ADD",49,48,"1/2"],["B","ADD",45,46,"-1/2"],["B","ADD",43,46,"-1/2"],["B","ADD",41,46,"64"],["B","ADD",40,46,"32"],["B","ADD",59,46,"-1/2"],["B","ADD",58,46,"-1/2"],["B","ADD",57,46,"-1/2"],["B","ADD",55,46,"-1/2"],["B","ADD",53,46,"-1/2"],["B","ADD",51,46,"-1/2"],["B","ADD",49,46,"-1/2"],["B","ADD",47,46,"-1/2"],["B","ADD",43,45,"-1"],["B","ADD",41,45,"128"],["B","ADD",40,45,"64"],["B","SCALE",45,"2"],["B","ADD",59,45,"-1/2"],["B","ADD",58,45,"-1/2"],["B","ADD",57,45,"-1/2"],["B","ADD",55,45,"-1/2"],["B","ADD",53,45,"-1/2"],["B","ADD",51,45,"-1/2"],["B","ADD",49,45,"-1/2"],["B","ADD",47,45,"-1/2"],["B","ADD",45,44,"-1"],["B","ADD",41,43,"128"],["B","ADD",40,43,"64"],["B","SCALE",43,"-1"],["B","ADD",59,43,"1"],["B","ADD",58,43,"1"],["B","ADD",57,43,"1"],["B","ADD",55,43,"1"],["B","ADD",53,43,"1"],["B","ADD",51,43,"1"],["B","ADD",49,43,"1"],["B","ADD",47,43,"1"],["B","SWAP",43,45],["B","ADD",43,42,"1"],["B","ADD",40,41,"-1/2"],["B","SCALE",41,"1/128"],["B","ADD",59,41,"1"],["B","ADD",58,41,"1"],["B","ADD",57,41,"1"],["B","ADD",55,41,"1"],["B","ADD",53,41,"1"],["B","ADD",51,41,"1"],["B","ADD",49,41,"1"],["B","ADD",47,41,"1"],["B","ADD",45,41,"1"],["B","SWAP",41,43],["B","SCALE",40,"1/128"],["B","ADD",59,40,"2"],["B","ADD",58,40,"2"],["B","ADD",57,40,"1"],["B","ADD",55,40,"1"],["B","ADD",53,40,"1"],["B","ADD",51,40,"1"],["B","ADD",49,40,"1"],["B","ADD",47,40,"1"],["B","ADD",45,40,"1"],["B","ADD",43,40,"1"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",41,77,"-1"],["B","ADD",41,75,"1"],["B","ADD",41,74,"-2"],["B","ADD",41,73,"1"],["B","ADD",41,71,"-1"],["B","ADD",41,70,"2"],["B","ADD",41,69,"-1"],["B","ADD",41,67,"1"],["B","ADD",41,66,"-2"],["B","ADD",41,65,"1"],["B","ADD",41,63,"-1"],["B","ADD",41,62,"2"],["B","ADD",41,61,"-1"],["B","ADD",41,58,"-1"],["B","ADD",41,57,"2"],["B","ADD",41,56,"-1"],["B","ADD",41,54,"1"],["B","ADD",41,53,"-2"],["B","ADD",41,52,"1"],["B","ADD",41,50,"-1"],["B","ADD",41,49,"2"],["B","ADD",41,48,"-1"],["B","ADD",41,46,"1"],["B","ADD",41,45,"-2"],["B","ADD",41,44,"1"],["B","ADD",41,42,"-1"],["B","ADD",40,41,"-1"],["B","ADD",59,41,"-1"],["B","ADD",58,41,"-2"],["B","ADD",57,41,"-1"],["B","ADD",56,41,"-2"],["B","ADD",55,41,"-1"],["B","ADD",54,41,"-2"],["B","ADD",53,41,"-1"],["B","ADD",52,41,"-2"],["B","ADD",51,41,"-1"],["B","ADD",50,41,"-2"],["B","ADD",49,41,"-1"],["B","ADD",48,41,"-2"],["B","ADD",47,41,"-1"],["B","ADD",46,41,"-2"],["B","ADD",45,41,"-1"],["B","ADD",44,41,"-2"],["B","ADD",43,41,"-1"],["B","ADD",42,41,"-2"],["B","SCALE",40,"1/2"],["B","ADD",76,40,"-1"],["B","ADD",74,40,"-1"],["B","ADD",72,40,"-1"],["B","ADD",70,40,"-1"],["B","ADD",68,40,"-1"],["B","ADD",66,40,"-1"],["B","ADD",64,40,"-1"],["B","ADD",62,40,"-1"],["B","ADD",60,40,"-1"],["B","ADD",59,40,"-1"],["B","ADD",58,40,"-2"],["B","ADD",57,40,"-1"],["B","ADD",56,40,"-2"],["B","ADD",55,40,"-1"],["B","ADD",54,40,"-2"],["B","ADD",53,40,"-1"],["B","ADD",52,40,"-2"],["B","ADD",51,40,"-1"],["B","ADD",50,40,"-2"],["B","ADD",49,40,"-1"],["B","ADD",48,40,"-2"],["B","ADD",47,40,"-1"],["B","ADD",46,40,"-2"],["B","ADD",45,40,"-1"],["B","ADD",44,40,"-2"],["B","ADD",43,40,"-1"],["B","ADD",42,40,"-2"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","SCALE",40,"2"],["B","ADD",77,40,"-1"],["B","ADD",76,40,"-1/2"],["B","ADD",75,40,"-1"],["B","ADD",74,40,"-1/2"],["B","ADD",73,40,"-1"],["B","ADD",72,40,"-1/2"],["B","ADD",71,40,"-1"],["B","ADD",70,40,"-1/2"],["B","ADD",69,40,"-1"],["B","ADD",68,40,"-1/2"],["B","ADD",67,40,"-1"],["B","ADD",66,40,"-1/2"],["B","ADD",65,40,"-1"],["B","ADD",64,40,"-1/2"],["B","ADD",63,40,"-1"],["B","ADD",62,40,"-1/2"],["B","ADD",61,40,"-1"],["B","ADD",60,40,"-1/2"],["B","ADD",59,40,"-1/2"],["B","ADD",57,40,"-1/2"],["B","ADD",55,40,"-1/2"],["B","ADD",53,40,"-1/2"],["B","ADD",51,40,"-1/2"],["B","ADD",49,40,"-1/2"],["B","ADD",47,40,"-1/2"],["B","ADD",45,40,"-1/2"],["B","ADD",43,40,"-1/2"],["B","ADD",41,40,"1/2"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",76,77,"-1/2"],["B","ADD",75,77,"-1"],["B","ADD",74,77,"-1"],["B","ADD",73,77,"-1"],["B","ADD",72,77,"-1"],["B","ADD",71,77,"-1"],["B","ADD",70,77,"-1"],["B","ADD",69,77,"-1"],["B","ADD",68,77,"-1"],["B","ADD",67,77,"-1"],["B","ADD",66,77,"-1"],["B","ADD",65,77,"-1"],["B","ADD",64,77,"-1"],["B","ADD",63,77,"-1"],["B","ADD",62,77,"-1"],["B","ADD",61,77,"-1"],["B","ADD",60,77,"-1"],["B","ADD",58,77,"1"],["B","ADD",56,77,"1"],["B","ADD",54,77,"1"],["B","ADD",52,77,"1"],["B","ADD",50,77,"1"],["B","ADD",48,77,"1"],["B","ADD",46,77,"1"],["B","ADD",44,77,"1"],["B","ADD",42,77,"1"],["B","ADD",40,77,"1"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"2"],["B","ADD",74,76,"2"],["B","ADD",73,76,"2"],["B","ADD",72,76,"2"],["B","ADD",71,76,"2"],["B","ADD",70,76,"2"],["B","ADD",69,76,"2"],["B","ADD",68,76,"2"],["B","ADD",67,76,"2"],["B","ADD",66,76,"2"],["B","ADD",65,76,"2"],["B","ADD",64,76,"2"],["B","ADD",63,76,"2"],["B","ADD",62,76,"2"],["B","ADD",61,76,"2"],["B","ADD",60,76,"2"],["B","ADD",58,76,"-2"],["B","ADD",56,76,"-2"],["B","ADD",54,76,"-2"],["B","ADD",52,76,"-2"],["B","ADD",50,76,"-2"],["B","ADD",48,76,"-2"],["B","ADD",46,76,"-2"],["B","ADD",44,76,"-2"],["B","ADD",42,76,"-2"],["B","ADD",40,76,"-2"],["B","SCALE",76,"2"],["B","ADD",77,76,"3/2"],["B","SWAP",76,77],["B","ADD",73,74,"-1/2"],["B","ADD",72,74,"-1"],["B","ADD",71,74,"-1"],["B","ADD",70,74,"-1"],["B","ADD",69,74,"-1"],["B","ADD",68,74,"-1"],["B","ADD",67,74,"-1"],["B","ADD",66,74,"-1"],["B","ADD",65,74,"-1"],["B","ADD",64,74,"-1"],["B","ADD",63,74,"-1"],["B","ADD",62,74,"-1"],["B","ADD",61,74,"-1"],["B","ADD",60,74,"-1"],["B","ADD",58,74,"1"],["B","ADD",56,74,"1"],["B","ADD",54,74,"1"],["B","ADD",52,74,"1"],["B","ADD",50,74,"1"],["B","ADD",48,74,"1"],["B","ADD",46,74,"1"],["B","ADD",44,74,"1"],["B","ADD",42,74,"1"],["B","ADD",40,74,"1"],["B","SCALE",74,"-1/2"],["B","ADD",77,74,"2"],["B","ADD",76,74,"2"],["B","ADD",75,74,"2"],["B","ADD",72,73,"2"],["B","ADD",71,73,"2"],["B","ADD",70,73,"2"],["B","ADD",69,73,"2"],["B","ADD",68,73,"2"],["B","ADD",67,73,"2"],["B","ADD",66,73,"2"],["B","ADD",65,73,"2"],["B","ADD",64,73,"2"],["B","ADD",63,73,"2"],["B","ADD",62,73,"2"],["B","ADD",61,73,"2"],["B","ADD",60,73,"2"],["B","ADD",58,73,"-2"],["B","ADD",56,73,"-2"],["B","ADD",54,73,"-2"],["B","ADD",52,73,"-2"],["B","ADD",50,73,"-2"],["B","ADD",48,73,"-2"],["B","ADD",46,73,"-2"],["B","ADD",44,73,"-2"],["B","ADD",42,73,"-2"],["B","ADD",40,73,"-2"],["B","SCALE",73,"2"],["B","ADD",77,73,"1"],["B","ADD",76,73,"1"],["B","ADD",75,73,"1"],["B","ADD",74,73,"3/2"],["B","SWAP",73,74],["B","ADD",71,72,"-1"],["B","ADD",70,72,"-1/2"],["B","ADD",69,72,"-1"],["B","ADD",68,72,"-1"],["B","ADD",67,72,"-1"],["B","ADD",66,72,"-1"],["B","ADD",65,72,"-1"],["B","ADD",64,72,"-1"],["B","ADD",63,72,"-1"],["B","ADD",62,72,"-1"],["B","ADD",61,72,"-1"],["B","ADD",60,72,"-1"],["B","ADD",58,72,"1"],["B","ADD",56,72,"1"],["B","ADD",54,72,"1"],["B","ADD",52,72,"1"],["B","ADD",50,72,"1"],["B","ADD",48,72,"1"],["B","ADD",46,72,"1"],["B","ADD",44,72,"1"],["B","ADD",42,72,"1"],["B","ADD",40,72,"1"],["B","SCALE",72,"-1/2"],["B","ADD",77,72,"2"],["B","ADD",76,72,"2"],["B","ADD",75,72,"2"],["B","ADD",74,72,"2"],["B","ADD",73,72,"2"],["B","ADD",70,71,"1/2"],["B","ADD",69,71,"-1"],["B","ADD",68,71,"-1"],["B","ADD",67,71,"-1"],["B","ADD",66,71,"-1"],["B","ADD",65,71,"-1"],["B","ADD",64,71,"-1"],["B","ADD",63,71,"-1"],["B","ADD",62,71,"-1"],["B","ADD",61,71,"-1"],["B","ADD",60,71,"-1"],["B","ADD",58,71,"1"],["B","ADD",56,71,"1"],["B","ADD",54,71,"1"],["B","ADD",52,71,"1"],["B","ADD",50,71,"1"],["B","ADD",48,71,"1"],["B","ADD",46,71,"1"],["B","ADD",44,71,"1"],["B","ADD",42,71,"1"],["B","ADD",40,71,"1"],["B","SCALE",71,"-1"],["B","ADD",77,71,"1"],["B","ADD",76,71,"1"],["B","ADD",75,71,"1"],["B","ADD",74,71,"1"],["B","ADD",73,71,"1"],["B","ADD",72,71,"3/2"],["B","SWAP",71,72],["B","ADD",69,70,"2"],["B","ADD",68,70,"2"],["B","ADD",67,70,"2"],["B","ADD",66,70,"2"],["B","ADD",65,70,"2"],["B","ADD",64,70,"2"],["B","ADD",63,70,"2"],["B","ADD",62,70,"2"],["B","ADD",61,70,"2"],["B","ADD",60,70,"2"],["B","ADD",58,70,"-2"],["B","ADD",56,70,"-2"],["B","ADD",54,70,"-2"],["B","ADD",52,70,"-2"],["B","ADD",50,70,"-2"],["B","ADD",48,70,"-2"],["B","ADD",46,70,"-2"],["B","ADD",44,70,"-2"],["B","ADD",42,70,"-2"],["B","ADD",40,70,"-2"],["B","SCALE",70,"2"],["B","ADD",77,70,"1"],["B","ADD",76,70,"1"],["B","ADD",75,70,"1"],["B","ADD",74,70,"1"],["B","ADD",73,70,"1"],["B","ADD",72,70,"1"],["B","ADD",71,70,"3/2"],["B","SWAP",70,71],["B","ADD",68,69,"-1/2"],["B","ADD",67,69,"-1"],["B","ADD",66,69,"-1"],["B","ADD",65,69,"-1"],["B","ADD",64,69,"-1"],["B","ADD",63,69,"-1"],["B","ADD",62,69,"-1"],["B","ADD",61,69,"-1"],["B","ADD",60,69,"-1"],["B","ADD",58,69,"1"],["B","ADD",56,69,"1"],["B","ADD",54,69,"1"],["B","ADD",52,69,"1"],["B","ADD",50,69,"1"],["B","ADD",48,69,"1"],["B","ADD",46,69,"1"],["B","ADD",44,69,"1"],["B","ADD",42,69,"1"],["B","ADD",40,69,"1"],["B","SCALE",69,"-1/2"],["B","ADD",77,69,"2"],["B","ADD",76,69,"2"],["B","ADD",75,69,"2"],["B","ADD",74,69,"2"],["B","ADD",73,69,"2"],["B","ADD",72,69,"2"],["B","ADD",71,69,"2"],["B","ADD",70,69,"2"],["B","ADD",67,68,"2"],["B","ADD",66,68,"2"],["B","ADD",65,68,"2"],["B","ADD",64,68,"2"],["B","ADD",63,68,"2"],["B","ADD",62,68,"2"],["B","ADD",61,68,"2"],["B","ADD",60,68,"2"],["B","ADD",58,68,"-2"],["B","ADD",56,68,"-2"],["B","ADD",54,68,"-2"],["B","ADD",52,68,"-2"],["B","ADD",50,68,"-2"],["B","ADD",48,68,"-2"],["B","ADD",46,68,"-2"],["B","ADD",44,68,"-2"],["B","ADD",42,68,"-2"],["B","ADD",40,68,"-2"],["B","SCALE",68,"2"],["B","ADD",77,68,"1"],["B","ADD",76,68,"1"],["B","ADD",75,68,"1"],["B","ADD",74,68,"1"],["B","ADD",73,68,"1"],["B","ADD",72,68,"1"],["B","ADD",71,68,"1"],["B","ADD",70,68,"1"],["B","ADD",69,68,"3/2"],["B","SWAP",68,69],["B","ADD",65,66,"-1/2"],["B","ADD",64,66,"-1"],["B","ADD",63,66,"-1"],["B","ADD",62,66,"-1"],["B","ADD",61,66,"-1"],["B","ADD",60,66,"-1"],["B","ADD",58,66,"1"],["B","ADD",56,66,"1"],["B","ADD",54,66,"1"],["B","ADD",52,66,"1"],["B","ADD",50,66,"1"],["B","ADD",48,66,"1"],["B","ADD",46,66,"1"],["B","ADD",44,66,"1"],["B","ADD",42,66,"1"],["B","ADD",40,66,"1"],["B","SCALE",66,"-1/2"],["B","ADD",77,66,"2"],["B","ADD",76,66,"2"],["B","ADD",75,66,"2"],["B","ADD",74,66,"2"],["B","ADD",73,66,"2"],["B","ADD",72,66,"2"],["B","ADD",71,66,"2"],["B","ADD",70,66,"2"],["B","ADD",69,66,"2"],["B","ADD",68,66,"2"],["B","ADD",67,66,"2"],["B","ADD",64,65,"2"],["B","ADD",63,65,"2"],["B","ADD",62,65,"2"],["B","ADD",61,65,"2"],["B","ADD",60,65,"2"],["B","ADD",58,65,"-2"],["B","ADD",56,65,"-2"],["B","ADD",54,65,"-2"],["B","ADD",52,65,"-2"],["B","ADD",50,65,"-2"],["B","ADD",48,65,"-2"],["B","ADD",46,65,"-2"],["B","ADD",44,65,"-2"],["B","ADD",42,65,"-2"],["B","ADD",40,65,"-2"],["B","SCALE",65,"2"],["B","ADD",77,65,"1"],["B","ADD",76,65,"1"],["B","ADD",75,65,"1"],["B","ADD",74,65,"1"],["B","ADD",73,65,"1"],["B","ADD",72,65,"1"],["B","ADD",71,65,"1"],["B","ADD",70,65,"1"],["B","ADD",69,65,"1"],["B","ADD",68,65,"1"],["B","ADD",67,65,"1"],["B","ADD",66,65,"3/2"],["B","SWAP",65,66],["B","ADD",63,64,"-1"],["B","ADD",62,64,"-1/2"],["B","ADD",61,64,"-1"],["B","ADD",60,64,"-1"],["B","ADD",58,64,"1"],["B","ADD",56,64,"1"],["B","ADD",54,64,"1"],["B","ADD",52,64,"1"],["B","ADD",50,64,"1"],["B","ADD",48,64,"1"],["B","ADD",46,64,"1"],["B","ADD",44,64,"1"],["B","ADD",42,64,"1"],["B","ADD",40,64,"1"],["B","SCALE",64,"-1/2"],["B","ADD",77,64,"2"],["B","ADD",76,64,"2"],["B","ADD",75,64,"2"],["B","ADD",74,64,"2"],["B","ADD",73,64,"2"],["B","ADD",72,64,"2"],["B","ADD",71,64,"2"],["B","ADD",70,64,"2"],["B","ADD",69,64,"2"],["B","ADD",68,64,"2"],["B","ADD",67,64,"2"],["B","ADD",66,64,"2"],["B","ADD",65,64,"2"],["B","ADD",62,63,"1/2"],["B","ADD",61,63,"-1"],["B","ADD",60,63,"-1"],["B","ADD",58,63,"1"],["B","ADD",56,63,"1"],["B","ADD",54,63,"1"],["B","ADD",52,63,"1"],["B","ADD",50,63,"1"],["B","ADD",48,63,"1"],["B","ADD",46,63,"1"],["B","ADD",44,63,"1"],["B","ADD",42,63,"1"],["B","ADD",40,63,"1"],["B","SCALE",63,"-1"],["B","ADD",77,63,"1"],["B","ADD",76,63,"1"],["B","ADD",75,63,"1"],["B","ADD",74,63,"1"],["B","ADD",73,63,"1"],["B","ADD",72,63,"1"],["B","ADD",71,63,"1"],["B","ADD",70,63,"1"],["B","ADD",69,63,"1"],["B","ADD",68,63,"1"],["B","ADD",67,63,"1"],["B","ADD",66,63,"1"],["B","ADD",65,63,"1"],["B","ADD",64,63,"3/2"],["B","SWAP",63,64],["B","ADD",61,62,"2"],["B","ADD",60,62,"2"],["B","ADD",58,62,"-2"],["B","ADD",56,62,"-2"],["B","ADD",54,62,"-2"],["B","ADD",52,62,"-2"],["B","ADD",50,62,"-2"],["B","ADD",48,62,"-2"],["B","ADD",46,62,"-2"],["B","ADD",44,62,"-2"],["B","ADD",42,62,"-2"],["B","ADD",40,62,"-2"],["B","SCALE",62,"2"],["B","ADD",77,62,"1"],["B","ADD",76,62,"1"],["B","ADD",75,62,"1"],["B","ADD",74,62,"1"],["B","ADD",73,62,"1"],["B","ADD",72,62,"1"],["B","ADD",71,62,"1"],["B","ADD",70,62,"1"],["B","ADD",69,62,"1"],["B","ADD",68,62,"1"],["B","ADD",67,62,"1"],["B","ADD",66,62,"1"],["B","ADD",65,62,"1"],["B","ADD",64,62,"1"],["B","ADD",63,62,"3/2"],["B","SWAP",62,63],["B","ADD",60,61,"-1/2"],["B","ADD",58,61,"1"],["B","ADD",56,61,"1"],["B","ADD",54,61,"1"],["B","ADD",52,61,"1"],["B","ADD",50,61,"1"],["B","ADD",48,61,"1"],["B","ADD",46,61,"1"],["B","ADD",44,61,"1"],["B","ADD",42,61,"1"],["B","ADD",40,61,"1"],["B","SCALE",61,"-1/2"],["B","ADD",77,61,"2"],["B","ADD",76,61,"2"],["B","ADD",75,61,"2"],["B","ADD",74,61,"2"],["B","ADD",73,61,"2"],["B","ADD",72,61,"2"],["B","ADD",71,61,"2"],["B","ADD",70,61,"2"],["B","ADD",69,61,"2"],["B","ADD",68,61,"2"],["B","ADD",67,61,"2"],["B","ADD",66,61,"2"],["B","ADD",65,61,"2"],["B","ADD",64,61,"2"],["B","ADD",63,61,"2"],["B","ADD",62,61,"2"],["B","ADD",58,60,"-2"],["B","ADD",56,60,"-2"],["B","ADD",54,60,"-2"],["B","ADD",52,60,"-2"],["B","ADD",50,60,"-2"],["B","ADD",48,60,"-2"],["B","ADD",46,60,"-2"],["B","ADD",44,60,"-2"],["B","ADD",42,60,"-2"],["B","ADD",40,60,"-2"],["B","SCALE",60,"2"],["B","ADD",77,60,"1"],["B","ADD",76,60,"1"],["B","ADD",75,60,"1"],["B","ADD",74,60,"1"],["B","ADD",73,60,"1"],["B","ADD",72,60,"1"],["B","ADD",71,60,"1"],["B","ADD",70,60,"1"],["B","ADD",69,60,"1"],["B","ADD",68,60,"1"],["B","ADD",67,60,"1"],["B","ADD",66,60,"1"],["B","ADD",65,60,"1"],["B","ADD",64,60,"1"],["B","ADD",63,60,"1"],["B","ADD",62,60,"1"],["B","ADD",61,60,"3/2"],["B","SWAP",60,61],["B","ADD",58,59,"-2"],["B","ADD",56,59,"-2"],["B","ADD",54,59,"-2"],["B","ADD",52,59,"-2"],["B","ADD",50,59,"-2"],["B","ADD",48,59,"-2"],["B","ADD",46,59,"-2"],["B","ADD",44,59,"-2"],["B","ADD",42,59,"-2"],["B","ADD",40,59,"-2"],["B","ADD",77,59,"2"],["B","ADD",76,59,"2"],["B","ADD",75,59,"2"],["B","ADD",74,59,"2"],["B","ADD",73,59,"2"],["B","ADD",72,59,"2"],["B","ADD",71,59,"2"],["B","ADD",70,59,"2"],["B","ADD",69,59,"2"],["B","ADD",68,59,"2"],["B","ADD",67,59,"2"],["B","ADD",66,59,"2"],["B","ADD",65,59,"2"],["B","ADD",64,59,"2"],["B","ADD",63,59,"2"],["B","ADD",62,59,"2"],["B","ADD",61,59,"2"],["B","ADD",60,59,"2"],["B","ADD",56,58,"-2"],["B","ADD",54,58,"-2"],["B","ADD",52,58,"-2"],["B","ADD",50,58,"-2"],["B","ADD",48,58,"-2"],["B","ADD",46,58,"-2"],["B","ADD",44,58,"-2"],["B","ADD",42,58,"-2"],["B","ADD",40,58,"-2"],["B","SCALE",58,"-1"],["B","ADD",77,58,"-2"],["B","ADD",76,58,"-2"],["B","ADD",75,58,"-2"],["B","ADD",74,58,"-2"],["B","ADD",73,58,"-2"],["B","ADD",72,58,"-2"],["B","ADD",71,58,"-2"],["B","ADD",70,58,"-2"],["B","ADD",69,58,"-2"],["B","ADD",68,58,"-2"],["B","ADD",67,58,"-2"],["B","ADD",66,58,"-2"],["B","ADD",65,58,"-2"],["B","ADD",64,58,"-2"],["B","ADD",63,58,"-2"],["B","ADD",62,58,"-2"],["B","ADD",61,58,"-2"],["B","ADD",60,58,"-2"],["B","ADD",56,57,"2"],["B","ADD",54,57,"2"],["B","ADD",52,57,"2"],["B","ADD",50,57,"2"],["B","ADD",48,57,"2"],["B","ADD",46,57,"2"],["B","ADD",44,57,"2"],["B","ADD",42,57,"2"],["B","ADD",40,57,"2"],["B","ADD",77,57,"-2"],["B","ADD",76,57,"-2"],["B","ADD",75,57,"-2"],["B","ADD",74,57,"-2"],["B","ADD",73,57,"-2"],["B","ADD",72,57,"-2"],["B","ADD",71,57,"-2"],["B","ADD",70,57,"-2"],["B","ADD",69,57,"-2"],["B","ADD",68,57,"-2"],["B","ADD",67,57,"-2"],["B","ADD",66,57,"-2"],["B","ADD",65,57,"-2"],["B","ADD",64,57,"-2"],["B","ADD",63,57,"-2"],["B","ADD",62,57,"-2"],["B","ADD",61,57,"-2"],["B","ADD",60,57,"-2"],["B","ADD",58,57,"2"],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",50,55,"-2"],["B","ADD",48,55,"-2"],["B","ADD",46,55,"-2"],["B","ADD",44,55,"-2"],["B","ADD",42,55,"-2"],["B","ADD",40,55,"-2"],["B","ADD",77,55,"2"],["B","ADD",76,55,"2"],["B","ADD",75,55,"2"],["B","ADD",74,55,"2"],["B","ADD",73,55,"2"],["B","ADD",72,55,"2"],["B","ADD",71,55,"2"],["B","ADD",70,55,"2"],["B","ADD",69,55,"2"],["B","ADD",68,55,"2"],["B","ADD",67,55,"2"],["B","ADD",66,55,"2"],["B","ADD",65,55,"2"],["B","ADD",64,55,"2"],["B","ADD",63,55,"2"],["B","ADD",62,55,"2"],["B","ADD",61,55,"2"],["B","ADD",60,55,"2"],["B","ADD",58,55,"-2"],["B","ADD",56,55,"-2"],["B","ADD",52,54,"-2"],["B","ADD",50,54,"-2"],["B","ADD",48,54,"-2"],["B","ADD",46,54,"-2"],["B","ADD",44,54,"-2"],["B","ADD",42,54,"-2"],["B","ADD",40,54,"-2"],["B","SCALE",54,"-1"],["B","ADD",77,54,"-2"],["B","ADD",76,54,"-2"],["B","ADD",75,54,"-2"],["B","ADD",74,54,"-2"],["B","ADD",73,54,"-2"],["B","ADD",72,54,"-2"],["B","ADD",71,54,"-2"],["B","ADD",70,54,"-2"],["B","ADD",69,54,"-2"],["B","ADD",68,54,"-2"],["B","ADD",67,54,"-2"],["B","ADD",66,54,"-2"],["B","ADD",65,54,"-2"],["B","ADD",64,54,"-2"],["B","ADD",63,54,"-2"],["B","ADD",62,54,"-2"],["B","ADD",61,54,"-2"],["B","ADD",60,54,"-2"],["B","ADD",58,54,"2"],["B","ADD",56,54,"2"],["B","ADD",52,53,"2"],["B","ADD",50,53,"2"],["B","ADD",48,53,"2"],["B","ADD",46,53,"2"],["B","ADD",44,53,"2"],["B","ADD",42,53,"2"],["B","ADD",40,53,"2"],["B","ADD",77,53,"-2"],["B","ADD",76,53,"-2"],["B","ADD",75,53,"-2"],["B","ADD",74,53,"-2"],["B","ADD",73,53,"-2"],["B","ADD",72,53,"-2"],["B","ADD",71,53,"-2"],["B","ADD",70,53,"-2"],["B","ADD",69,53,"-2"],["B","ADD",68,53,"-2"],["B","ADD",67,53,"-2"],["B","ADD",66,53,"-2"],["B","ADD",65,53,"-2"],["B","ADD",64,53,"-2"],["B","ADD",63,53,"-2"],["B","ADD",62,53,"-2"],["B","ADD",61,53,"-2"],["B","ADD",60,53,"-2"],["B","ADD",58,53,"2"],["B","ADD",56,53,"2"],["B","ADD",54,53,"2"],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",46,51,"-2"],["B","ADD",44,51,"-2"],["B","ADD",42,51,"-2"],["B","ADD",40,51,"-2"],["B","ADD",77,51,"2"],["B","ADD",76,51,"2"],["B","ADD",75,51,"2"],["B","ADD",74,51,"2"],["B","ADD",73,51,"2"],["B","ADD",72,51,"2"],["B","ADD",71,51,"2"],["B","ADD",70,51,"2"],["B","ADD",69,51,"2"],["B","ADD",68,51,"2"],["B","ADD",67,51,"2"],["B","ADD",66,51,"2"],["B","ADD",65,51,"2"],["B","ADD",64,51,"2"],["B","ADD",63,51,"2"],["B","ADD",62,51,"2"],["B","ADD",61,51,"2"],["B","ADD",60,51,"2"],["B","ADD",58,51,"-2"],["B","ADD",56,51,"-2"],["B","ADD",54,51,"-2"],["B","ADD",52,51,"-2"],["B","ADD",48,50,"-2"],["B","ADD",46,50,"-2"],["B","ADD",44,50,"-2"],["B","ADD",42,50,"-2"],["B","ADD",40,50,"-2"],["B","SCALE",50,"-1"],["B","ADD",77,50,"-2"],["B","ADD",76,50,"-2"],["B","ADD",75,50,"-2"],["B","ADD",74,50,"-2"],["B","ADD",73,50,"-2"],["B","ADD",72,50,"-2"],["B","ADD",71,50,"-2"],["B","ADD",70,50,"-2"],["B","ADD",69,50,"-2"],["B","ADD",68,50,"-2"],["B","ADD",67,50,"-2"],["B","ADD",66,50,"-2"],["B","ADD",65,50,"-2"],["B","ADD",64,50,"-2"],["B","ADD",63,50,"-2"],["B","ADD",62,50,"-2"],["B","ADD",61,50,"-2"],["B","ADD",60,50,"-2"],["B","ADD",58,50,"2"],["B","ADD",56,50,"2"],["B","ADD",54,50,"2"],["B","ADD",52,50,"2"],["B","ADD",48,49,"2"],["B","ADD",46,49,"2"],["B","ADD",44,49,"2"],["B","ADD",42,49,"2"],["B","ADD",40,49,"2"],["B","ADD",77,49,"-2"],["B","ADD",76,49,"-2"],["B","ADD",75,49,"-2"],["B","ADD",74,49,"-2"],["B","ADD",73,49,"-2"],["B","ADD",72,49,"-2"],["B","ADD",71,49,"-2"],["B","ADD",70,49,"-2"],["B","ADD",69,49,"-2"],["B","ADD",68,49,"-2"],["B","ADD",67,49,"-2"],["B","ADD",66,49,"-2"],["B","ADD",65,49,"-2"],["B","ADD",64,49,"-2"],["B","ADD",63,49,"-2"],["B","ADD",62,49,"-2"],["B","ADD",61,49,"-2"],["B","ADD",60,49,"-2"],["B","ADD",58,49,"2"],["B","ADD",56,49,"2"],["B","ADD",54,49,"2"],["B","ADD",52,49,"2"],["B","ADD",50,49,"2"],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",42,47,"-2"],["B","ADD",40,47,"-2"],["B","ADD",77,47,"2"],["B","ADD",76,47,"2"],["B","ADD",75,47,"2"],["B","ADD",74,47,"2"],["B","ADD",73,47,"2"],["B","ADD",72,47,"2"],["B","ADD",71,47,"2"],["B","ADD",70,47,"2"],["B","ADD",69,47,"2"],["B","ADD",68,47,"2"],["B","ADD",67,47,"2"],["B","ADD",66,47,"2"],["B","ADD",65,47,"2"],["B","ADD",64,47,"2"],["B","ADD",63,47,"2"],["B","ADD",62,47,"2"],["B","ADD",61,47,"2"],["B","ADD",60,47,"2"],["B","ADD",58,47,"-2"],["B","ADD",56,47,"-2"],["B","ADD",54,47,"-2"],["B","ADD",52,47,"-2"],["B","ADD",50,47,"-2"],["B","ADD",48,47,"-2"],["B","ADD",44,46,"-2"],["B","ADD",42,46,"-2"],["B","ADD",40,46,"-2"],["B","SCALE",46,"-1"],["B","ADD",77,46,"-2"],["B","ADD",76,46,"-2"],["B","ADD",75,46,"-2"],["B","ADD",74,46,"-2"],["B","ADD",73,46,"-2"],["B","ADD",72,46,"-2"],["B","ADD",71,46,"-2"],["B","ADD",70,46,"-2"],["B","ADD",69,46,"-2"],["B","ADD",68,46,"-2"],["B","ADD",67,46,"-2"],["B","ADD",66,46,"-2"],["B","ADD",65,46,"-2"],["B","ADD",64,46,"-2"],["B","ADD",63,46,"-2"],["B","ADD",62,46,"-2"],["B","ADD",61,46,"-2"],["B","ADD",60,46,"-2"],["B","ADD",58,46,"2"],["B","ADD",56,46,"2"],["B","ADD",54,46,"2"],["B","ADD",52,46,"2"],["B","ADD",50,46,"2"],["B","ADD",48,46,"2"],["B","ADD",44,45,"2"],["B","ADD",42,45,"2"],["B","ADD",40,45,"2"],["B","ADD",77,45,"-2"],["B","ADD",76,45,"-2"],["B","ADD",75,45,"-2"],["B","ADD",74,45,"-2"],["B","ADD",73,45,"-2"],["B","ADD",72,45,"-2"],["B","ADD",71,45,"-2"],["B","ADD",70,45,"-2"],["B","ADD",69,45,"-2"],["B","ADD",68,45,"-2"],["B","ADD",67,45,"-2"],["B","ADD",66,45,"-2"],["B","ADD",65,45,"-2"],["B","ADD",64,45,"-2"],["B","ADD",63,45,"-2"],["B","ADD",62,45,"-2"],["B","ADD",61,45,"-2"],["B","ADD",60,45,"-2"],["B","ADD",58,45,"2"],["B","ADD",56,45,"2"],["B","ADD",54,45,"2"],["B","ADD",52,45,"2"],["B","ADD",50,45,"2"],["B","ADD",48,45,"2"],["B","ADD",46,45,"2"],["B","ADD",42,43,"-2"],["B","ADD",40,43,"-2"],["B","ADD",77,43,"2"],["B","ADD",76,43,"2"],["B","ADD",75,43,"2"],["B","ADD",74,43,"2"],["B","ADD",73,43,"2"],["B","ADD",72,43,"2"],["B","ADD",71,43,"2"],["B","ADD",70,43,"2"],["B","ADD",69,43,"2"],["B","ADD",68,43,"2"],["B","ADD",67,43,"2"],["B","ADD",66,43,"2"],["B","ADD",65,43,"2"],["B","ADD",64,43,"2"],["B","ADD",63,43,"2"],["B","ADD",62,43,"2"],["B","ADD",61,43,"2"],["B","ADD",60,43,"2"],["B","ADD",58,43,"-2"],["B","ADD",56,43,"-2"],["B","ADD",54,43,"-2"],["B","ADD",52,43,"-2"],["B","ADD",50,43,"-2"],["B","ADD",48,43,"-2"],["B","ADD",46,43,"-2"],["B","ADD",44,43,"-2"],["B","ADD",40,42,"-2"],["B","SCALE",42,"-1"],["B","ADD",77,42,"-2"],["B","ADD",76,42,"-2"],["B","ADD",75,42,"-2"],["B","ADD",74,42,"-2"],["B","ADD",73,42,"-2"],["B","ADD",72,42,"-2"],["B","ADD",71,42,"-2"],["B","ADD",70,42,"-2"],["B","ADD",69,42,"-2"],["B","ADD",68,42,"-2"],["B","ADD",67,42,"-2"],["B","ADD",66,42,"-2"],["B","ADD",65,42,"-2"],["B","ADD",64,42,"-2"],["B","ADD",63,42,"-2"],["B","ADD",62,42,"-2"],["B","ADD",61,42,"-2"],["B","ADD",60,42,"-2"],["B","ADD",58,42,"2"],["B","ADD",56,42,"2"],["B","ADD",54,42,"2"],["B","ADD",52,42,"2"],["B","ADD",50,42,"2"],["B","ADD",48,42,"2"],["B","ADD",46,42,"2"],["B","ADD",44,42,"2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"-2"],["B","ADD",76,41,"-2"],["B","ADD",75,41,"-2"],["B","ADD",74,41,"-2"],["B","ADD",73,41,"-2"],["B","ADD",72,41,"-2"],["B","ADD",71,41,"-2"],["B","ADD",70,41,"-2"],["B","ADD",69,41,"-2"],["B","ADD",68,41,"-2"],["B","ADD",67,41,"-2"],["B","ADD",66,41,"-2"],["B","ADD",65,41,"-2"],["B","ADD",64,41,"-2"],["B","ADD",63,41,"-2"],["B","ADD",62,41,"-2"],["B","ADD",61,41,"-2"],["B","ADD",60,41,"-2"],["B","SCALE",40,"1/2"],["B","ADD",77,40,"2"],["B","ADD",76,40,"2"],["B","ADD",75,40,"2"],["B","ADD",74,40,"2"],["B","ADD",73,40,"2"],["B","ADD",72,40,"2"],["B","ADD",71,40,"2"],["B","ADD",70,40,"2"],["B","ADD",69,40,"2"],["B","ADD",68,40,"2"],["B","ADD",67,40,"2"],["B","ADD",66,40,"2"],["B","ADD",65,40,"2"],["B","ADD",64,40,"2"],["B","ADD",63,40,"2"],["B","ADD",62,40,"2"],["B","ADD",61,40,"2"],["B","ADD",60,40,"2"],["B","ADD",58,40,"-2"],["B","ADD",56,40,"-2"],["B","ADD",54,40,"-2"],["B","ADD",52,40,"-2"],["B","ADD",50,40,"-2"],["B","ADD",48,40,"-2"],["B","ADD",46,40,"-2"],["B","ADD",44,40,"-2"],["B","ADD",42,40,"-2"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",41,77,"1"],["B","ADD",74,76,"-1"],["B","ADD",72,76,"-1"],["B","ADD",70,76,"-1"],["B","ADD",68,76,"-1"],["B","ADD",66,76,"-1"],["B","ADD",64,76,"-1"],["B","ADD",60,76,"-1/2"],["B","ADD",41,76,"1"],["B","SWAP",75,77],["B","ADD",41,74,"1"],["B","SWAP",74,76],["B","ADD",41,73,"-1"],["B","ADD",41,72,"1"],["B","ADD",41,70,"-1"],["B","ADD",41,69,"1"],["B","ADD",41,68,"-1"],["B","SWAP",67,71],["B","ADD",41,66,"1"],["B","SWAP",66,70],["B","ADD",41,65,"-1"],["B","SWAP",65,73],["B","ADD",41,64,"1"],["B","SWAP",64,72],["B","SWAP",63,77],["B","ADD",41,62,"-1"],["B","SWAP",62,76],["B","ADD",60,61,"-1"],["B","ADD",40,61,"1"],["B","SCALE",61,"-2"],["B","ADD",77,61,"1"],["B","ADD",76,61,"1"],["B","SWAP",61,75],["B","SCALE",60,"-2"],["B","ADD",74,60,"-1"],["B","ADD",72,60,"1"],["B","ADD",70,60,"1"],["B","ADD",68,60,"1"],["B","ADD",66,60,"1"],["B","ADD",64,60,"1"],["B","ADD",62,60,"1"],["B","ADD",41,59,"-1"],["B","ADD",41,58,"1"],["B","ADD",41,57,"-1"],["B","ADD",41,55,"1"],["B","ADD",41,54,"-1"],["B","ADD",41,53,"1"],["B","ADD",41,51,"-1"],["B","ADD",41,50,"1"],["B","ADD",41,49,"-1"],["B","ADD",41,47,"1"],["B","ADD",41,46,"-1"],["B","ADD",41,45,"1"],["B","ADD",41,43,"-1"],["B","ADD",41,42,"1"],["B","ADD",40,41,"1"],["B","SCALE",41,"-128"],["B","ADD",74,41,"1/64"],["B","ADD",72,41,"-1/64"],["B","ADD",70,41,"-1/64"],["B","ADD",68,41,"-1/64"],["B","ADD",66,41,"-1/64"],["B","ADD",64,41,"-1/64"],["B","ADD",62,41,"-1/64"],["B","ADD",60,41,"-1/64"],["B","SCALE",40,"128"],["B","ADD",77,40,"1/32"],["B","ADD",76,40,"1/64"],["B","ADD",75,40,"1/32"],["B","ADD",74,40,"-1/64"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["J",10,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[10]],["A","IDLE_ONE",3,[10,11]],["A","IDLE_ONE",4,[10,11,12]],["A","IDLE_ONE",5,[10,11,12,13]],["A","IDLE_ONE",6,[10,11,12,13,14]],["A","IDLE_ONE",7,[10,11,12,13,14,15]],["A","IDLE_ONE",8,[10,11,12,13,14,15,16]],["A","IDLE_ONE",9,[10,11,12,13,14,15,16,17]],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",22,[10]],["A","IDLE_ONE",23,[10,11]],["A","IDLE_ONE",24,[10,11,12]],["A","IDLE_ONE",25,[10,11,12,13]],["A","IDLE_ONE",26,[10,11,12,13,14]],["A","IDLE_ONE",27,[10,11,12,13,14,15]],["A","IDLE_ONE",28,[10,11,12,13,14,15,16]],["A","IDLE_ONE",29,[10,11,12,13,14,15,16,17]],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",60,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",61,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",62,[10,11,12,13,14,15,16]],["B","IDLE_ONE",63,[10,11,12,13,14,15,16]],["B","IDLE_ONE",64,[10,11,12,13,14,15]],["B","IDLE_ONE",65,[10,11,12,13,14,15]],["B","IDLE_ONE",66,[10,11,12,13,14]],["B","IDLE_ONE",67,[10,11,12,13,14]],["B","IDLE_ONE",68,[10,11,12,13]],["B","IDLE_ONE",69,[10,11,12,13]],["B","IDLE_ONE",70,[10,11,12]],["B","IDLE_ONE",71,[10,11,12]],["B","IDLE_ONE",72,[10,11]],["B","IDLE_ONE",73,[10,11]],["B","IDLE_ONE",74,[10]],["B","IDLE_ONE",75,[10]],["B","IDLE_ONE",76,[10]],["B","IDLE_ONE",77,[10]],["B","ADD",76,77,"-1/2"],["B","ADD",75,77,"-1"],["B","ADD",74,77,"1/2"],["B","ADD",41,77,"-64"],["B","SCALE",77,"1/4"],["B","ADD",74,76,"-2"],["B","SCALE",76,"2"],["B","ADD",77,76,"1/2"],["B","ADD",74,75,"3/2"],["B","ADD",41,75,"64"],["B","ADD",40,75,"64"],["B","SCALE",75,"2"],["B","ADD",77,75,"-5/8"],["B","ADD",76,75,"-3/2"],["B","SWAP",75,77],["B","ADD",40,74,"-64"],["B","ADD",76,74,"2"],["B","ADD",75,74,"3/2"],["B","SWAP",74,75],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",61,41,"1/64"],["B","ADD",60,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",61,40,"-1/64"],["B","ADD",60,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",11,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[11]],["B","IDLE_ONE",77,[11]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",63,41,"1/64"],["B","ADD",62,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",63,40,"-1/64"],["B","ADD",62,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",12,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[12]],["B","IDLE_ONE",77,[12]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",65,41,"1/64"],["B","ADD",64,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",65,40,"-1/64"],["B","ADD",64,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",13,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[13]],["B","IDLE_ONE",77,[13]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",67,41,"1/64"],["B","ADD",66,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",67,40,"-1/64"],["B","ADD",66,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",14,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[14]],["B","IDLE_ONE",77,[14]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",69,41,"1/64"],["B","ADD",68,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",69,40,"-1/64"],["B","ADD",68,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",15,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[15]],["B","IDLE_ONE",77,[15]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",71,41,"1/64"],["B","ADD",70,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",71,40,"-1/64"],["B","ADD",70,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",16,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[16]],["B","IDLE_ONE",77,[16]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",73,41,"1/64"],["B","ADD",72,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",73,40,"-1/64"],["B","ADD",72,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",17,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[17]],["B","IDLE_ONE",77,[17]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/4"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SCALE",76,"1/2"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"1"],["B","ADD",76,75,"-1/2"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1/2"],["B","ADD",75,74,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/64"],["B","ADD",76,41,"-1/128"],["B","ADD",75,41,"1/64"],["B","ADD",74,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/64"],["B","ADD",75,40,"-1/64"],["B","ADD",74,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",18,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","SWAP",2,18],["A","ADD",0,1,"-2"],["A","SWAP",1,18],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",1,-1],["A","LAMBDA",2,-1],["A","LAMBDA",3,-1],["A","LAMBDA",4,-1],["A","LAMBDA",5,-1],["A","LAMBDA",6,-1],["A","LAMBDA",7,-1],["A","LAMBDA",8,-1],["A","LAMBDA",9,-1],["A","LAMBDA",10,-1],["A","LAMBDA",11,-1],["A","LAMBDA",12,-1],["A","LAMBDA",13,-1],["A","LAMBDA",14,-1],["A","LAMBDA",15,-1],["A","LAMBDA",16,-1],["A","LAMBDA",17,-1],["A","LAMBDA",18,-1],["A","LAMBDA",19,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","SWAP",22,38],["A","ADD",20,21,"-2"],["A","SWAP",21,38],["A","SCALE",20,"-1"],["A","ADD",38,20,"-1"],["A","LAMBDA",20,-1],["A","LAMBDA",21,-1],["A","LAMBDA",22,-1],["A","LAMBDA",23,-1],["A","LAMBDA",24,-1],["A","LAMBDA",25,-1],["A","LAMBDA",26,-1],["A","LAMBDA",27,-1],["A","LAMBDA",28,-1],["A","LAMBDA",29,-1],["A","LAMBDA",30,-1],["A","LAMBDA",31,-1],["A","LAMBDA",32,-1],["A","LAMBDA",33,-1],["A","LAMBDA",34,-1],["A","LAMBDA",35,-1],["A","LAMBDA",36,-1],["A","LAMBDA",37,-1],["A","LAMBDA",38,-1],["A","LAMBDA",39,-1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[18]],["B","IDLE_ONE",77,[18]],["B","ADD",41,77,"-128"],["B","ADD",40,77,"64"],["B","SCALE",77,"-1"],["B","ADD",40,76,"128"],["B","SCALE",76,"-1"],["B","ADD",77,76,"2"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"1/128"],["B","ADD",77,41,"-2"],["B","ADD",76,41,"-1"],["B","SCALE",40,"1/128"],["B","ADD",77,40,"2"],["B","ADD",76,40,"2"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["B","LAMBDA",41,-1],["B","LAMBDA",42,-1],["B","LAMBDA",43,-1],["B","LAMBDA",44,-1],["B","LAMBDA",45,-1],["B","LAMBDA",46,-1],["B","LAMBDA",47,-1],["B","LAMBDA",48,-1],["B","LAMBDA",49,-1],["B","LAMBDA",50,-1],["B","LAMBDA",51,-1],["B","LAMBDA",52,-1],["B","LAMBDA",53,-1],["B","LAMBDA",54,-1],["B","LAMBDA",55,-1],["B","LAMBDA",56,-1],["B","LAMBDA",57,-1],["B","LAMBDA",58,-1],["B","LAMBDA",59,-1],["B","LAMBDA",60,-1],["B","LAMBDA",61,-1],["B","LAMBDA",62,-1],["B","LAMBDA",63,-1],["B","LAMBDA",64,-1],["B","LAMBDA",65,-1],["B","LAMBDA",66,-1],["B","LAMBDA",67,-1],["B","LAMBDA",68,-1],["B","LAMBDA",69,-1],["B","LAMBDA",70,-1],["B","LAMBDA",71,-1],["B","LAMBDA",72,-1],["B","LAMBDA",73,-1],["B","LAMBDA",74,-1],["B","LAMBDA",75,-1],["B","LAMBDA",76,-1],["B","LAMBDA",77,-1]]} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/caller_efree.json b/research/p104-qself-owned-lowering/data/caller_efree.json new file mode 100644 index 0000000000..5a71ca9f80 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/caller_efree.json @@ -0,0 +1 @@ +{"schema":"mixed-root-caller/1","stages":18,"ambient_rank":153,"roles":76,"types":{"A":{"form":"two-chain-HOST2","roles":38,"offset":0,"ports":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,36,37,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"alpha2":"-1","beta2":"0","diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]]},"B":{"form":"hosted-HOST","roles":38,"offset":38,"ports":[15,17,27,34,35,42,47,55],"diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]],"pairs":[[0,1,"-1","1/2","-1/2"],[2,3,"-1","1/2","-1/2"],[4,5,"-1","1/2","-1/2"],[6,7,"-1","1/2","-1/2"],[8,9,"-1","1/2","-1/2"],[10,11,"-1","1/2","-1/2"],[12,13,"-1","1/2","-1/2"],[14,15,"-1","1/2","-1/2"],[16,17,"-1","1/2","-1/2"],[22,23,"-1","1/2","-1/2"],[24,25,"-1","1/2","-1/2"],[26,27,"-1","1/2","-1/2"],[28,29,"-1","1/2","-1/2"],[30,31,"-1","1/2","-1/2"],[32,33,"-1","1/2","-1/2"],[34,35,"-1","1/2","-1/2"],[36,37,"-1","1/2","-1/2"],[38,39,"-1","1/2","-1/2"]]}},"events":[["A","ADD",0,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","SWAP",19,20],["A","SCALE",20,"-1"],["A","LAMBDA",19,1],["B","ADD",40,41,"-2"],["B","ADD",39,41,"1"],["B","ADD",38,41,"2"],["B","ADD",39,40,"1"],["B","ADD",38,40,"1"],["B","ADD",38,39,"-2"],["B","SCALE",39,"256"],["B","ADD",41,39,"-1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"1/64"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["J",1,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",1,2,"1"],["A","ADD",0,2,"-1"],["A","SCALE",1,"-1"],["A","SWAP",1,2],["A","ADD",2,0,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"1"],["A","ADD",19,21,"-1"],["A","SCALE",20,"-1"],["A","SWAP",20,21],["A","SCALE",19,"-1"],["A","ADD",21,19,"1"],["A","SWAP",19,20],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[1]],["B","IDLE_ONE",41,[1]],["B","ADD",42,43,"-2"],["B","ADD",40,43,"-2"],["B","ADD",39,43,"-256"],["B","ADD",38,43,"-128"],["B","ADD",41,42,"1"],["B","ADD",40,42,"-2"],["B","ADD",39,42,"-256"],["B","ADD",39,41,"256"],["B","ADD",38,41,"-128"],["B","ADD",38,40,"-128"],["B","ADD",41,40,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",43,39,"-1/128"],["B","ADD",42,39,"1/128"],["B","ADD",41,39,"1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",43,38,"1/128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",2,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[2,3,4,5,6,7,8,9]],["A","ADD",1,3,"1"],["A","ADD",0,3,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,3],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[2,3,4,5,6,7,8,9]],["A","ADD",20,22,"1"],["A","ADD",19,22,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,22],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",41,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",42,[2]],["B","IDLE_ONE",43,[2]],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",39,45,"-256"],["B","ADD",38,45,"-128"],["B","ADD",43,44,"1"],["B","ADD",42,44,"-2"],["B","ADD",39,44,"-256"],["B","ADD",39,43,"256"],["B","ADD",38,43,"-128"],["B","ADD",38,42,"-128"],["B","ADD",43,42,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",45,39,"-1/128"],["B","ADD",44,39,"1/128"],["B","ADD",43,39,"1/128"],["B","ADD",42,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",45,38,"1/128"],["B","ADD",43,38,"-1/128"],["B","ADD",42,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",3,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",3,[3,4,5,6,7,8,9]],["A","ADD",1,4,"1"],["A","ADD",0,4,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,4],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",22,[3,4,5,6,7,8,9]],["A","ADD",20,23,"1"],["A","ADD",19,23,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,23],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",42,[3,4,5,6,7,8,9]],["B","IDLE_ONE",43,[3,4,5,6,7,8,9]],["B","IDLE_ONE",44,[3]],["B","IDLE_ONE",45,[3]],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",39,47,"-256"],["B","ADD",38,47,"-128"],["B","ADD",45,46,"1"],["B","ADD",44,46,"-2"],["B","ADD",39,46,"-256"],["B","ADD",39,45,"256"],["B","ADD",38,45,"-128"],["B","ADD",38,44,"-128"],["B","ADD",45,44,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",47,39,"-1/128"],["B","ADD",46,39,"1/128"],["B","ADD",45,39,"1/128"],["B","ADD",44,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",47,38,"1/128"],["B","ADD",45,38,"-1/128"],["B","ADD",44,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",4,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",4,[4,5,6,7,8,9]],["A","ADD",1,5,"1"],["A","ADD",0,5,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,5],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",23,[4,5,6,7,8,9]],["A","ADD",20,24,"1"],["A","ADD",19,24,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,24],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",44,[4,5,6,7,8,9]],["B","IDLE_ONE",45,[4,5,6,7,8,9]],["B","IDLE_ONE",46,[4]],["B","IDLE_ONE",47,[4]],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",39,49,"-256"],["B","ADD",38,49,"-128"],["B","ADD",47,48,"1"],["B","ADD",46,48,"-2"],["B","ADD",39,48,"-256"],["B","ADD",39,47,"256"],["B","ADD",38,47,"-128"],["B","ADD",38,46,"-128"],["B","ADD",47,46,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",49,39,"-1/128"],["B","ADD",48,39,"1/128"],["B","ADD",47,39,"1/128"],["B","ADD",46,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",49,38,"1/128"],["B","ADD",47,38,"-1/128"],["B","ADD",46,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",5,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",5,[5,6,7,8,9]],["A","ADD",1,6,"1"],["A","ADD",0,6,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,6],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",24,[5,6,7,8,9]],["A","ADD",20,25,"1"],["A","ADD",19,25,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,25],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",46,[5,6,7,8,9]],["B","IDLE_ONE",47,[5,6,7,8,9]],["B","IDLE_ONE",48,[5]],["B","IDLE_ONE",49,[5]],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",39,51,"-256"],["B","ADD",38,51,"-128"],["B","ADD",49,50,"1"],["B","ADD",48,50,"-2"],["B","ADD",39,50,"-256"],["B","ADD",39,49,"256"],["B","ADD",38,49,"-128"],["B","ADD",38,48,"-128"],["B","ADD",49,48,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",51,39,"-1/128"],["B","ADD",50,39,"1/128"],["B","ADD",49,39,"1/128"],["B","ADD",48,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",51,38,"1/128"],["B","ADD",49,38,"-1/128"],["B","ADD",48,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",6,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",6,[6,7,8,9]],["A","ADD",1,7,"1"],["A","ADD",0,7,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,7],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",25,[6,7,8,9]],["A","ADD",20,26,"1"],["A","ADD",19,26,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,26],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",48,[6,7,8,9]],["B","IDLE_ONE",49,[6,7,8,9]],["B","IDLE_ONE",50,[6]],["B","IDLE_ONE",51,[6]],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",39,53,"-256"],["B","ADD",38,53,"-128"],["B","ADD",51,52,"1"],["B","ADD",50,52,"-2"],["B","ADD",39,52,"-256"],["B","ADD",39,51,"256"],["B","ADD",38,51,"-128"],["B","ADD",38,50,"-128"],["B","ADD",51,50,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",53,39,"-1/128"],["B","ADD",52,39,"1/128"],["B","ADD",51,39,"1/128"],["B","ADD",50,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",53,38,"1/128"],["B","ADD",51,38,"-1/128"],["B","ADD",50,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",7,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",7,[7,8,9]],["A","ADD",1,8,"1"],["A","ADD",0,8,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,8],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",26,[7,8,9]],["A","ADD",20,27,"1"],["A","ADD",19,27,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,27],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",50,[7,8,9]],["B","IDLE_ONE",51,[7,8,9]],["B","IDLE_ONE",52,[7]],["B","IDLE_ONE",53,[7]],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",39,55,"-256"],["B","ADD",38,55,"-128"],["B","ADD",53,54,"1"],["B","ADD",52,54,"-2"],["B","ADD",39,54,"-256"],["B","ADD",39,53,"256"],["B","ADD",38,53,"-128"],["B","ADD",38,52,"-128"],["B","ADD",53,52,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",55,39,"-1/128"],["B","ADD",54,39,"1/128"],["B","ADD",53,39,"1/128"],["B","ADD",52,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",55,38,"1/128"],["B","ADD",53,38,"-1/128"],["B","ADD",52,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",8,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",8,[8,9]],["A","ADD",1,9,"1"],["A","ADD",0,9,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,9],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",27,[8,9]],["A","ADD",20,28,"1"],["A","ADD",19,28,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,28],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",52,[8,9]],["B","IDLE_ONE",53,[8,9]],["B","IDLE_ONE",54,[8]],["B","IDLE_ONE",55,[8]],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",39,57,"-256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"1"],["B","ADD",54,56,"-2"],["B","ADD",39,56,"-256"],["B","ADD",39,55,"256"],["B","ADD",38,55,"-128"],["B","ADD",38,54,"-128"],["B","ADD",55,54,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",57,39,"-1/128"],["B","ADD",56,39,"1/128"],["B","ADD",55,39,"1/128"],["B","ADD",54,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",57,38,"1/128"],["B","ADD",55,38,"-1/128"],["B","ADD",54,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",9,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",9,[9]],["A","SWAP",9,8],["A","SWAP",9,7],["A","SWAP",9,6],["A","SWAP",9,5],["A","SWAP",9,4],["A","SWAP",9,3],["A","SWAP",9,2],["A","ADD",0,1,"1"],["A","SCALE",1,"-1"],["A","SWAP",9,1],["A","ADD",18,0,"1"],["A","ADD",17,0,"1"],["A","ADD",16,0,"1"],["A","ADD",15,0,"1"],["A","ADD",14,0,"1"],["A","ADD",13,0,"1"],["A","ADD",12,0,"1"],["A","ADD",11,0,"1"],["A","ADD",10,0,"1"],["A","ADD",8,0,"1"],["A","ADD",7,0,"1"],["A","ADD",6,0,"1"],["A","ADD",5,0,"1"],["A","ADD",4,0,"1"],["A","ADD",3,0,"1"],["A","ADD",2,0,"1"],["A","ADD",1,0,"1"],["A","LAMBDA",0,1],["A","QSELF",0,-1],["A","ADD",1,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",1,10,"-1"],["A","ADD",1,9,"1"],["A","ADD",1,8,"-1"],["A","ADD",1,7,"1"],["A","ADD",1,6,"-1"],["A","ADD",1,5,"1"],["A","ADD",1,4,"-1"],["A","ADD",1,3,"1"],["A","ADD",1,2,"-1"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","ADD",17,0,"-1"],["A","ADD",16,0,"-1"],["A","ADD",15,0,"-1"],["A","ADD",14,0,"-1"],["A","ADD",13,0,"-1"],["A","ADD",12,0,"-1"],["A","ADD",11,0,"-1"],["A","ADD",10,0,"-1"],["A","ADD",9,0,"-1"],["A","ADD",8,0,"-1"],["A","ADD",7,0,"-1"],["A","ADD",6,0,"-1"],["A","ADD",5,0,"-1"],["A","ADD",4,0,"-1"],["A","ADD",3,0,"-1"],["A","ADD",2,0,"-1"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,18,"-1"],["A","ADD",0,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",0,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",0,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",0,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",0,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",0,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",0,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",0,11,"1"],["A","ADD",1,10,"-1"],["A","SCALE",10,"-1"],["A","ADD",1,9,"1"],["A","ADD",0,9,"1"],["A","SWAP",18,9],["A","ADD",1,8,"-1"],["A","ADD",0,8,"-1"],["A","SWAP",17,8],["A","ADD",1,7,"1"],["A","ADD",0,7,"1"],["A","SWAP",16,7],["A","ADD",1,6,"-1"],["A","ADD",0,6,"-1"],["A","SWAP",15,6],["A","ADD",1,5,"1"],["A","ADD",0,5,"1"],["A","SWAP",14,5],["A","ADD",1,4,"-1"],["A","ADD",0,4,"-1"],["A","SWAP",13,4],["A","ADD",1,3,"1"],["A","ADD",0,3,"1"],["A","SWAP",12,3],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SWAP",11,2],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","SWAP",10,1],["A","SWAP",1,0],["A","ADD",0,1,"2"],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",28,[9]],["A","SWAP",28,27],["A","SWAP",28,26],["A","SWAP",28,25],["A","SWAP",28,24],["A","SWAP",28,23],["A","SWAP",28,22],["A","SWAP",28,21],["A","ADD",19,20,"1"],["A","SCALE",20,"-1"],["A","SWAP",28,20],["A","ADD",37,19,"1"],["A","ADD",36,19,"1"],["A","ADD",35,19,"1"],["A","ADD",34,19,"1"],["A","ADD",33,19,"1"],["A","ADD",32,19,"1"],["A","ADD",31,19,"1"],["A","ADD",30,19,"1"],["A","ADD",29,19,"1"],["A","ADD",27,19,"1"],["A","ADD",26,19,"1"],["A","ADD",25,19,"1"],["A","ADD",24,19,"1"],["A","ADD",23,19,"1"],["A","ADD",22,19,"1"],["A","ADD",21,19,"1"],["A","ADD",20,19,"1"],["A","LAMBDA",19,1],["A","QSELF",19,-1],["A","ADD",20,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",20,29,"-1"],["A","ADD",20,28,"1"],["A","ADD",20,27,"-1"],["A","ADD",20,26,"1"],["A","ADD",20,25,"-1"],["A","ADD",20,24,"1"],["A","ADD",20,23,"-1"],["A","ADD",20,22,"1"],["A","ADD",20,21,"-1"],["A","SCALE",20,"-1"],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","ADD",36,19,"-1"],["A","ADD",35,19,"-1"],["A","ADD",34,19,"-1"],["A","ADD",33,19,"-1"],["A","ADD",32,19,"-1"],["A","ADD",31,19,"-1"],["A","ADD",30,19,"-1"],["A","ADD",29,19,"-1"],["A","ADD",28,19,"-1"],["A","ADD",27,19,"-1"],["A","ADD",26,19,"-1"],["A","ADD",25,19,"-1"],["A","ADD",24,19,"-1"],["A","ADD",23,19,"-1"],["A","ADD",22,19,"-1"],["A","ADD",21,19,"-1"],["A","LAMBDA",19,-1],["A","QUERY",19,20,-1],["A","LAMBDA",19,1],["A","ADD",20,37,"-1"],["A","ADD",19,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",19,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",19,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",19,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",19,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",19,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",19,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",19,30,"1"],["A","ADD",20,29,"-1"],["A","SCALE",29,"-1"],["A","ADD",20,28,"1"],["A","ADD",19,28,"1"],["A","SWAP",37,28],["A","ADD",20,27,"-1"],["A","ADD",19,27,"-1"],["A","SWAP",36,27],["A","ADD",20,26,"1"],["A","ADD",19,26,"1"],["A","SWAP",35,26],["A","ADD",20,25,"-1"],["A","ADD",19,25,"-1"],["A","SWAP",34,25],["A","ADD",20,24,"1"],["A","ADD",19,24,"1"],["A","SWAP",33,24],["A","ADD",20,23,"-1"],["A","ADD",19,23,"-1"],["A","SWAP",32,23],["A","ADD",20,22,"1"],["A","ADD",19,22,"1"],["A","SWAP",31,22],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SWAP",30,21],["A","ADD",19,20,"-1"],["A","SCALE",20,"-1"],["A","SWAP",29,20],["A","SCALE",19,"-1"],["A","SWAP",20,19],["A","ADD",19,20,"-2"],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",54,[9]],["B","IDLE_ONE",55,[9]],["B","IDLE_ONE",56,[9]],["B","IDLE_ONE",57,[9]],["B","ADD",56,75,"1"],["B","ADD",55,75,"1"],["B","ADD",53,75,"1"],["B","ADD",51,75,"1"],["B","ADD",49,75,"1"],["B","ADD",47,75,"1"],["B","ADD",45,75,"1"],["B","ADD",43,75,"1"],["B","ADD",41,75,"1"],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","ADD",56,73,"-1"],["B","ADD",55,73,"-1"],["B","ADD",53,73,"-1"],["B","ADD",51,73,"-1"],["B","ADD",49,73,"-1"],["B","ADD",47,73,"-1"],["B","ADD",45,73,"-1"],["B","ADD",43,73,"-1"],["B","ADD",41,73,"-1"],["B","ADD",39,73,"128"],["B","ADD",38,73,"-64"],["B","ADD",56,72,"2"],["B","ADD",55,72,"2"],["B","ADD",53,72,"2"],["B","ADD",51,72,"2"],["B","ADD",49,72,"2"],["B","ADD",47,72,"2"],["B","ADD",45,72,"2"],["B","ADD",43,72,"2"],["B","ADD",41,72,"2"],["B","ADD",39,72,"-256"],["B","ADD",38,72,"128"],["B","ADD",56,71,"-1"],["B","ADD",55,71,"-1"],["B","ADD",53,71,"-1"],["B","ADD",51,71,"-1"],["B","ADD",49,71,"-1"],["B","ADD",47,71,"-1"],["B","ADD",45,71,"-1"],["B","ADD",43,71,"-1"],["B","ADD",41,71,"-1"],["B","ADD",39,71,"128"],["B","ADD",38,71,"-64"],["B","ADD",56,69,"1"],["B","ADD",55,69,"1"],["B","ADD",53,69,"1"],["B","ADD",51,69,"1"],["B","ADD",49,69,"1"],["B","ADD",47,69,"1"],["B","ADD",45,69,"1"],["B","ADD",43,69,"1"],["B","ADD",41,69,"1"],["B","ADD",39,69,"-128"],["B","ADD",38,69,"64"],["B","ADD",56,68,"-2"],["B","ADD",55,68,"-2"],["B","ADD",53,68,"-2"],["B","ADD",51,68,"-2"],["B","ADD",49,68,"-2"],["B","ADD",47,68,"-2"],["B","ADD",45,68,"-2"],["B","ADD",43,68,"-2"],["B","ADD",41,68,"-2"],["B","ADD",39,68,"256"],["B","ADD",38,68,"-128"],["B","ADD",56,67,"1"],["B","ADD",55,67,"1"],["B","ADD",53,67,"1"],["B","ADD",51,67,"1"],["B","ADD",49,67,"1"],["B","ADD",47,67,"1"],["B","ADD",45,67,"1"],["B","ADD",43,67,"1"],["B","ADD",41,67,"1"],["B","ADD",39,67,"-128"],["B","ADD",38,67,"64"],["B","ADD",56,65,"-1"],["B","ADD",55,65,"-1"],["B","ADD",53,65,"-1"],["B","ADD",51,65,"-1"],["B","ADD",49,65,"-1"],["B","ADD",47,65,"-1"],["B","ADD",45,65,"-1"],["B","ADD",43,65,"-1"],["B","ADD",41,65,"-1"],["B","ADD",39,65,"128"],["B","ADD",38,65,"-64"],["B","ADD",56,64,"2"],["B","ADD",55,64,"2"],["B","ADD",53,64,"2"],["B","ADD",51,64,"2"],["B","ADD",49,64,"2"],["B","ADD",47,64,"2"],["B","ADD",45,64,"2"],["B","ADD",43,64,"2"],["B","ADD",41,64,"2"],["B","ADD",39,64,"-256"],["B","ADD",38,64,"128"],["B","ADD",56,63,"-1"],["B","ADD",55,63,"-1"],["B","ADD",53,63,"-1"],["B","ADD",51,63,"-1"],["B","ADD",49,63,"-1"],["B","ADD",47,63,"-1"],["B","ADD",45,63,"-1"],["B","ADD",43,63,"-1"],["B","ADD",41,63,"-1"],["B","ADD",39,63,"128"],["B","ADD",38,63,"-64"],["B","ADD",56,61,"1"],["B","ADD",55,61,"1"],["B","ADD",53,61,"1"],["B","ADD",51,61,"1"],["B","ADD",49,61,"1"],["B","ADD",47,61,"1"],["B","ADD",45,61,"1"],["B","ADD",43,61,"1"],["B","ADD",41,61,"1"],["B","ADD",39,61,"-128"],["B","ADD",38,61,"64"],["B","ADD",56,60,"-2"],["B","ADD",55,60,"-2"],["B","ADD",53,60,"-2"],["B","ADD",51,60,"-2"],["B","ADD",49,60,"-2"],["B","ADD",47,60,"-2"],["B","ADD",45,60,"-2"],["B","ADD",43,60,"-2"],["B","ADD",41,60,"-2"],["B","ADD",39,60,"256"],["B","ADD",38,60,"-128"],["B","ADD",56,59,"1"],["B","ADD",55,59,"1"],["B","ADD",53,59,"1"],["B","ADD",51,59,"1"],["B","ADD",49,59,"1"],["B","ADD",47,59,"1"],["B","ADD",45,59,"1"],["B","ADD",43,59,"1"],["B","ADD",41,59,"1"],["B","ADD",39,59,"-128"],["B","ADD",38,59,"64"],["B","ADD",39,57,"256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"-3/2"],["B","ADD",53,56,"-1"],["B","ADD",51,56,"-1"],["B","ADD",49,56,"-1"],["B","ADD",47,56,"-1"],["B","ADD",45,56,"-1"],["B","ADD",43,56,"-1"],["B","ADD",41,56,"-1"],["B","ADD",39,56,"128"],["B","ADD",38,56,"-64"],["B","SCALE",56,"1/2"],["B","ADD",53,55,"-1"],["B","ADD",51,55,"-1"],["B","ADD",49,55,"-1"],["B","ADD",47,55,"-1"],["B","ADD",45,55,"-1"],["B","ADD",43,55,"-1"],["B","ADD",41,55,"-1"],["B","ADD",39,55,"128"],["B","ADD",38,55,"64"],["B","SCALE",55,"-1"],["B","ADD",57,55,"1"],["B","SWAP",55,56],["B","ADD",53,54,"1/2"],["B","ADD",51,54,"1/2"],["B","ADD",49,54,"1/2"],["B","ADD",47,54,"1/2"],["B","ADD",45,54,"1/2"],["B","ADD",43,54,"1/2"],["B","ADD",41,54,"1/2"],["B","ADD",39,54,"-64"],["B","ADD",38,54,"-32"],["B","ADD",57,54,"1/2"],["B","ADD",56,54,"1/2"],["B","ADD",55,54,"1/2"],["B","ADD",51,52,"-1/2"],["B","ADD",49,52,"-1/2"],["B","ADD",47,52,"-1/2"],["B","ADD",45,52,"-1/2"],["B","ADD",43,52,"-1/2"],["B","ADD",41,52,"-1/2"],["B","ADD",39,52,"64"],["B","ADD",38,52,"32"],["B","ADD",57,52,"-1/2"],["B","ADD",56,52,"-1/2"],["B","ADD",55,52,"-1/2"],["B","ADD",53,52,"-1/2"],["B","ADD",49,51,"-1"],["B","ADD",47,51,"-2"],["B","ADD",45,51,"-1"],["B","ADD",43,51,"-1"],["B","ADD",41,51,"-1"],["B","ADD",39,51,"128"],["B","ADD",38,51,"64"],["B","ADD",57,51,"-1"],["B","ADD",56,51,"-1"],["B","ADD",55,51,"-1"],["B","ADD",53,51,"-1"],["B","ADD",47,50,"1/2"],["B","ADD",51,50,"-1/2"],["B","ADD",47,49,"-1"],["B","ADD",45,49,"-1"],["B","ADD",43,49,"-1"],["B","ADD",41,49,"-1"],["B","ADD",39,49,"128"],["B","ADD",38,49,"64"],["B","SCALE",49,"-1"],["B","ADD",57,49,"1"],["B","ADD",56,49,"1"],["B","ADD",55,49,"1"],["B","ADD",53,49,"1"],["B","SWAP",49,51],["B","ADD",47,48,"-1/2"],["B","ADD",49,48,"1/2"],["B","ADD",45,47,"-1"],["B","ADD",43,47,"-1"],["B","ADD",41,47,"-1"],["B","ADD",39,47,"128"],["B","ADD",38,47,"64"],["B","SCALE",47,"-1"],["B","ADD",57,47,"1"],["B","ADD",56,47,"1"],["B","ADD",55,47,"1"],["B","ADD",53,47,"1"],["B","ADD",51,47,"1"],["B","SWAP",47,49],["B","ADD",45,46,"1/2"],["B","ADD",43,46,"1/2"],["B","ADD",41,46,"1/2"],["B","ADD",39,46,"-64"],["B","ADD",38,46,"-32"],["B","ADD",57,46,"1/2"],["B","ADD",56,46,"1/2"],["B","ADD",55,46,"1/2"],["B","ADD",53,46,"1/2"],["B","ADD",51,46,"1/2"],["B","ADD",49,46,"1/2"],["B","ADD",47,46,"1/2"],["B","ADD",43,44,"-1/2"],["B","ADD",41,44,"-1/2"],["B","ADD",39,44,"64"],["B","ADD",38,44,"32"],["B","ADD",57,44,"-1/2"],["B","ADD",56,44,"-1/2"],["B","ADD",55,44,"-1/2"],["B","ADD",53,44,"-1/2"],["B","ADD",51,44,"-1/2"],["B","ADD",49,44,"-1/2"],["B","ADD",47,44,"-1/2"],["B","ADD",45,44,"-1/2"],["B","ADD",41,43,"-1"],["B","ADD",39,43,"128"],["B","ADD",38,43,"64"],["B","SCALE",43,"2"],["B","ADD",57,43,"-1/2"],["B","ADD",56,43,"-1/2"],["B","ADD",55,43,"-1/2"],["B","ADD",53,43,"-1/2"],["B","ADD",51,43,"-1/2"],["B","ADD",49,43,"-1/2"],["B","ADD",47,43,"-1/2"],["B","ADD",45,43,"-1/2"],["B","ADD",43,42,"-1"],["B","ADD",39,41,"128"],["B","ADD",38,41,"64"],["B","SCALE",41,"-1"],["B","ADD",57,41,"1"],["B","ADD",56,41,"1"],["B","ADD",55,41,"1"],["B","ADD",53,41,"1"],["B","ADD",51,41,"1"],["B","ADD",49,41,"1"],["B","ADD",47,41,"1"],["B","ADD",45,41,"1"],["B","SWAP",41,43],["B","ADD",41,40,"1"],["B","ADD",38,39,"-1/2"],["B","SCALE",39,"1/128"],["B","ADD",57,39,"1"],["B","ADD",56,39,"1"],["B","ADD",55,39,"1"],["B","ADD",53,39,"1"],["B","ADD",51,39,"1"],["B","ADD",49,39,"1"],["B","ADD",47,39,"1"],["B","ADD",45,39,"1"],["B","ADD",43,39,"1"],["B","SWAP",39,41],["B","SCALE",38,"1/128"],["B","ADD",57,38,"2"],["B","ADD",56,38,"2"],["B","ADD",55,38,"1"],["B","ADD",53,38,"1"],["B","ADD",51,38,"1"],["B","ADD",49,38,"1"],["B","ADD",47,38,"1"],["B","ADD",45,38,"1"],["B","ADD",43,38,"1"],["B","ADD",41,38,"1"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"-1"],["B","ADD",39,73,"1"],["B","ADD",39,72,"-2"],["B","ADD",39,71,"1"],["B","ADD",39,69,"-1"],["B","ADD",39,68,"2"],["B","ADD",39,67,"-1"],["B","ADD",39,65,"1"],["B","ADD",39,64,"-2"],["B","ADD",39,63,"1"],["B","ADD",39,61,"-1"],["B","ADD",39,60,"2"],["B","ADD",39,59,"-1"],["B","ADD",39,56,"-1"],["B","ADD",39,55,"2"],["B","ADD",39,54,"-1"],["B","ADD",39,52,"1"],["B","ADD",39,51,"-2"],["B","ADD",39,50,"1"],["B","ADD",39,48,"-1"],["B","ADD",39,47,"2"],["B","ADD",39,46,"-1"],["B","ADD",39,44,"1"],["B","ADD",39,43,"-2"],["B","ADD",39,42,"1"],["B","ADD",39,40,"-1"],["B","ADD",38,39,"-1"],["B","ADD",57,39,"-1"],["B","ADD",56,39,"-2"],["B","ADD",55,39,"-1"],["B","ADD",54,39,"-2"],["B","ADD",53,39,"-1"],["B","ADD",52,39,"-2"],["B","ADD",51,39,"-1"],["B","ADD",50,39,"-2"],["B","ADD",49,39,"-1"],["B","ADD",48,39,"-2"],["B","ADD",47,39,"-1"],["B","ADD",46,39,"-2"],["B","ADD",45,39,"-1"],["B","ADD",44,39,"-2"],["B","ADD",43,39,"-1"],["B","ADD",42,39,"-2"],["B","ADD",41,39,"-1"],["B","ADD",40,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",74,38,"-1"],["B","ADD",72,38,"-1"],["B","ADD",70,38,"-1"],["B","ADD",68,38,"-1"],["B","ADD",66,38,"-1"],["B","ADD",64,38,"-1"],["B","ADD",62,38,"-1"],["B","ADD",60,38,"-1"],["B","ADD",58,38,"-1"],["B","ADD",57,38,"-1"],["B","ADD",56,38,"-2"],["B","ADD",55,38,"-1"],["B","ADD",54,38,"-2"],["B","ADD",53,38,"-1"],["B","ADD",52,38,"-2"],["B","ADD",51,38,"-1"],["B","ADD",50,38,"-2"],["B","ADD",49,38,"-1"],["B","ADD",48,38,"-2"],["B","ADD",47,38,"-1"],["B","ADD",46,38,"-2"],["B","ADD",45,38,"-1"],["B","ADD",44,38,"-2"],["B","ADD",43,38,"-1"],["B","ADD",42,38,"-2"],["B","ADD",41,38,"-1"],["B","ADD",40,38,"-2"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","SCALE",38,"2"],["B","ADD",75,38,"-1"],["B","ADD",74,38,"-1/2"],["B","ADD",73,38,"-1"],["B","ADD",72,38,"-1/2"],["B","ADD",71,38,"-1"],["B","ADD",70,38,"-1/2"],["B","ADD",69,38,"-1"],["B","ADD",68,38,"-1/2"],["B","ADD",67,38,"-1"],["B","ADD",66,38,"-1/2"],["B","ADD",65,38,"-1"],["B","ADD",64,38,"-1/2"],["B","ADD",63,38,"-1"],["B","ADD",62,38,"-1/2"],["B","ADD",61,38,"-1"],["B","ADD",60,38,"-1/2"],["B","ADD",59,38,"-1"],["B","ADD",58,38,"-1/2"],["B","ADD",57,38,"-1/2"],["B","ADD",55,38,"-1/2"],["B","ADD",53,38,"-1/2"],["B","ADD",51,38,"-1/2"],["B","ADD",49,38,"-1/2"],["B","ADD",47,38,"-1/2"],["B","ADD",45,38,"-1/2"],["B","ADD",43,38,"-1/2"],["B","ADD",41,38,"-1/2"],["B","ADD",39,38,"1/2"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"-1"],["B","ADD",71,75,"-1"],["B","ADD",70,75,"-1"],["B","ADD",69,75,"-1"],["B","ADD",68,75,"-1"],["B","ADD",67,75,"-1"],["B","ADD",66,75,"-1"],["B","ADD",65,75,"-1"],["B","ADD",64,75,"-1"],["B","ADD",63,75,"-1"],["B","ADD",62,75,"-1"],["B","ADD",61,75,"-1"],["B","ADD",60,75,"-1"],["B","ADD",59,75,"-1"],["B","ADD",58,75,"-1"],["B","ADD",56,75,"1"],["B","ADD",54,75,"1"],["B","ADD",52,75,"1"],["B","ADD",50,75,"1"],["B","ADD",48,75,"1"],["B","ADD",46,75,"1"],["B","ADD",44,75,"1"],["B","ADD",42,75,"1"],["B","ADD",40,75,"1"],["B","ADD",38,75,"1"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"2"],["B","ADD",72,74,"2"],["B","ADD",71,74,"2"],["B","ADD",70,74,"2"],["B","ADD",69,74,"2"],["B","ADD",68,74,"2"],["B","ADD",67,74,"2"],["B","ADD",66,74,"2"],["B","ADD",65,74,"2"],["B","ADD",64,74,"2"],["B","ADD",63,74,"2"],["B","ADD",62,74,"2"],["B","ADD",61,74,"2"],["B","ADD",60,74,"2"],["B","ADD",59,74,"2"],["B","ADD",58,74,"2"],["B","ADD",56,74,"-2"],["B","ADD",54,74,"-2"],["B","ADD",52,74,"-2"],["B","ADD",50,74,"-2"],["B","ADD",48,74,"-2"],["B","ADD",46,74,"-2"],["B","ADD",44,74,"-2"],["B","ADD",42,74,"-2"],["B","ADD",40,74,"-2"],["B","ADD",38,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"3/2"],["B","SWAP",74,75],["B","ADD",71,72,"-1/2"],["B","ADD",70,72,"-1"],["B","ADD",69,72,"-1"],["B","ADD",68,72,"-1"],["B","ADD",67,72,"-1"],["B","ADD",66,72,"-1"],["B","ADD",65,72,"-1"],["B","ADD",64,72,"-1"],["B","ADD",63,72,"-1"],["B","ADD",62,72,"-1"],["B","ADD",61,72,"-1"],["B","ADD",60,72,"-1"],["B","ADD",59,72,"-1"],["B","ADD",58,72,"-1"],["B","ADD",56,72,"1"],["B","ADD",54,72,"1"],["B","ADD",52,72,"1"],["B","ADD",50,72,"1"],["B","ADD",48,72,"1"],["B","ADD",46,72,"1"],["B","ADD",44,72,"1"],["B","ADD",42,72,"1"],["B","ADD",40,72,"1"],["B","ADD",38,72,"1"],["B","SCALE",72,"-1/2"],["B","ADD",75,72,"2"],["B","ADD",74,72,"2"],["B","ADD",73,72,"2"],["B","ADD",70,71,"2"],["B","ADD",69,71,"2"],["B","ADD",68,71,"2"],["B","ADD",67,71,"2"],["B","ADD",66,71,"2"],["B","ADD",65,71,"2"],["B","ADD",64,71,"2"],["B","ADD",63,71,"2"],["B","ADD",62,71,"2"],["B","ADD",61,71,"2"],["B","ADD",60,71,"2"],["B","ADD",59,71,"2"],["B","ADD",58,71,"2"],["B","ADD",56,71,"-2"],["B","ADD",54,71,"-2"],["B","ADD",52,71,"-2"],["B","ADD",50,71,"-2"],["B","ADD",48,71,"-2"],["B","ADD",46,71,"-2"],["B","ADD",44,71,"-2"],["B","ADD",42,71,"-2"],["B","ADD",40,71,"-2"],["B","ADD",38,71,"-2"],["B","SCALE",71,"2"],["B","ADD",75,71,"1"],["B","ADD",74,71,"1"],["B","ADD",73,71,"1"],["B","ADD",72,71,"3/2"],["B","SWAP",71,72],["B","ADD",69,70,"-1"],["B","ADD",68,70,"-1/2"],["B","ADD",67,70,"-1"],["B","ADD",66,70,"-1"],["B","ADD",65,70,"-1"],["B","ADD",64,70,"-1"],["B","ADD",63,70,"-1"],["B","ADD",62,70,"-1"],["B","ADD",61,70,"-1"],["B","ADD",60,70,"-1"],["B","ADD",59,70,"-1"],["B","ADD",58,70,"-1"],["B","ADD",56,70,"1"],["B","ADD",54,70,"1"],["B","ADD",52,70,"1"],["B","ADD",50,70,"1"],["B","ADD",48,70,"1"],["B","ADD",46,70,"1"],["B","ADD",44,70,"1"],["B","ADD",42,70,"1"],["B","ADD",40,70,"1"],["B","ADD",38,70,"1"],["B","SCALE",70,"-1/2"],["B","ADD",75,70,"2"],["B","ADD",74,70,"2"],["B","ADD",73,70,"2"],["B","ADD",72,70,"2"],["B","ADD",71,70,"2"],["B","ADD",68,69,"1/2"],["B","ADD",67,69,"-1"],["B","ADD",66,69,"-1"],["B","ADD",65,69,"-1"],["B","ADD",64,69,"-1"],["B","ADD",63,69,"-1"],["B","ADD",62,69,"-1"],["B","ADD",61,69,"-1"],["B","ADD",60,69,"-1"],["B","ADD",59,69,"-1"],["B","ADD",58,69,"-1"],["B","ADD",56,69,"1"],["B","ADD",54,69,"1"],["B","ADD",52,69,"1"],["B","ADD",50,69,"1"],["B","ADD",48,69,"1"],["B","ADD",46,69,"1"],["B","ADD",44,69,"1"],["B","ADD",42,69,"1"],["B","ADD",40,69,"1"],["B","ADD",38,69,"1"],["B","SCALE",69,"-1"],["B","ADD",75,69,"1"],["B","ADD",74,69,"1"],["B","ADD",73,69,"1"],["B","ADD",72,69,"1"],["B","ADD",71,69,"1"],["B","ADD",70,69,"3/2"],["B","SWAP",69,70],["B","ADD",67,68,"2"],["B","ADD",66,68,"2"],["B","ADD",65,68,"2"],["B","ADD",64,68,"2"],["B","ADD",63,68,"2"],["B","ADD",62,68,"2"],["B","ADD",61,68,"2"],["B","ADD",60,68,"2"],["B","ADD",59,68,"2"],["B","ADD",58,68,"2"],["B","ADD",56,68,"-2"],["B","ADD",54,68,"-2"],["B","ADD",52,68,"-2"],["B","ADD",50,68,"-2"],["B","ADD",48,68,"-2"],["B","ADD",46,68,"-2"],["B","ADD",44,68,"-2"],["B","ADD",42,68,"-2"],["B","ADD",40,68,"-2"],["B","ADD",38,68,"-2"],["B","SCALE",68,"2"],["B","ADD",75,68,"1"],["B","ADD",74,68,"1"],["B","ADD",73,68,"1"],["B","ADD",72,68,"1"],["B","ADD",71,68,"1"],["B","ADD",70,68,"1"],["B","ADD",69,68,"3/2"],["B","SWAP",68,69],["B","ADD",66,67,"-1/2"],["B","ADD",65,67,"-1"],["B","ADD",64,67,"-1"],["B","ADD",63,67,"-1"],["B","ADD",62,67,"-1"],["B","ADD",61,67,"-1"],["B","ADD",60,67,"-1"],["B","ADD",59,67,"-1"],["B","ADD",58,67,"-1"],["B","ADD",56,67,"1"],["B","ADD",54,67,"1"],["B","ADD",52,67,"1"],["B","ADD",50,67,"1"],["B","ADD",48,67,"1"],["B","ADD",46,67,"1"],["B","ADD",44,67,"1"],["B","ADD",42,67,"1"],["B","ADD",40,67,"1"],["B","ADD",38,67,"1"],["B","SCALE",67,"-1/2"],["B","ADD",75,67,"2"],["B","ADD",74,67,"2"],["B","ADD",73,67,"2"],["B","ADD",72,67,"2"],["B","ADD",71,67,"2"],["B","ADD",70,67,"2"],["B","ADD",69,67,"2"],["B","ADD",68,67,"2"],["B","ADD",65,66,"2"],["B","ADD",64,66,"2"],["B","ADD",63,66,"2"],["B","ADD",62,66,"2"],["B","ADD",61,66,"2"],["B","ADD",60,66,"2"],["B","ADD",59,66,"2"],["B","ADD",58,66,"2"],["B","ADD",56,66,"-2"],["B","ADD",54,66,"-2"],["B","ADD",52,66,"-2"],["B","ADD",50,66,"-2"],["B","ADD",48,66,"-2"],["B","ADD",46,66,"-2"],["B","ADD",44,66,"-2"],["B","ADD",42,66,"-2"],["B","ADD",40,66,"-2"],["B","ADD",38,66,"-2"],["B","SCALE",66,"2"],["B","ADD",75,66,"1"],["B","ADD",74,66,"1"],["B","ADD",73,66,"1"],["B","ADD",72,66,"1"],["B","ADD",71,66,"1"],["B","ADD",70,66,"1"],["B","ADD",69,66,"1"],["B","ADD",68,66,"1"],["B","ADD",67,66,"3/2"],["B","SWAP",66,67],["B","ADD",63,64,"-1/2"],["B","ADD",62,64,"-1"],["B","ADD",61,64,"-1"],["B","ADD",60,64,"-1"],["B","ADD",59,64,"-1"],["B","ADD",58,64,"-1"],["B","ADD",56,64,"1"],["B","ADD",54,64,"1"],["B","ADD",52,64,"1"],["B","ADD",50,64,"1"],["B","ADD",48,64,"1"],["B","ADD",46,64,"1"],["B","ADD",44,64,"1"],["B","ADD",42,64,"1"],["B","ADD",40,64,"1"],["B","ADD",38,64,"1"],["B","SCALE",64,"-1/2"],["B","ADD",75,64,"2"],["B","ADD",74,64,"2"],["B","ADD",73,64,"2"],["B","ADD",72,64,"2"],["B","ADD",71,64,"2"],["B","ADD",70,64,"2"],["B","ADD",69,64,"2"],["B","ADD",68,64,"2"],["B","ADD",67,64,"2"],["B","ADD",66,64,"2"],["B","ADD",65,64,"2"],["B","ADD",62,63,"2"],["B","ADD",61,63,"2"],["B","ADD",60,63,"2"],["B","ADD",59,63,"2"],["B","ADD",58,63,"2"],["B","ADD",56,63,"-2"],["B","ADD",54,63,"-2"],["B","ADD",52,63,"-2"],["B","ADD",50,63,"-2"],["B","ADD",48,63,"-2"],["B","ADD",46,63,"-2"],["B","ADD",44,63,"-2"],["B","ADD",42,63,"-2"],["B","ADD",40,63,"-2"],["B","ADD",38,63,"-2"],["B","SCALE",63,"2"],["B","ADD",75,63,"1"],["B","ADD",74,63,"1"],["B","ADD",73,63,"1"],["B","ADD",72,63,"1"],["B","ADD",71,63,"1"],["B","ADD",70,63,"1"],["B","ADD",69,63,"1"],["B","ADD",68,63,"1"],["B","ADD",67,63,"1"],["B","ADD",66,63,"1"],["B","ADD",65,63,"1"],["B","ADD",64,63,"3/2"],["B","SWAP",63,64],["B","ADD",61,62,"-1"],["B","ADD",60,62,"-1/2"],["B","ADD",59,62,"-1"],["B","ADD",58,62,"-1"],["B","ADD",56,62,"1"],["B","ADD",54,62,"1"],["B","ADD",52,62,"1"],["B","ADD",50,62,"1"],["B","ADD",48,62,"1"],["B","ADD",46,62,"1"],["B","ADD",44,62,"1"],["B","ADD",42,62,"1"],["B","ADD",40,62,"1"],["B","ADD",38,62,"1"],["B","SCALE",62,"-1/2"],["B","ADD",75,62,"2"],["B","ADD",74,62,"2"],["B","ADD",73,62,"2"],["B","ADD",72,62,"2"],["B","ADD",71,62,"2"],["B","ADD",70,62,"2"],["B","ADD",69,62,"2"],["B","ADD",68,62,"2"],["B","ADD",67,62,"2"],["B","ADD",66,62,"2"],["B","ADD",65,62,"2"],["B","ADD",64,62,"2"],["B","ADD",63,62,"2"],["B","ADD",60,61,"1/2"],["B","ADD",59,61,"-1"],["B","ADD",58,61,"-1"],["B","ADD",56,61,"1"],["B","ADD",54,61,"1"],["B","ADD",52,61,"1"],["B","ADD",50,61,"1"],["B","ADD",48,61,"1"],["B","ADD",46,61,"1"],["B","ADD",44,61,"1"],["B","ADD",42,61,"1"],["B","ADD",40,61,"1"],["B","ADD",38,61,"1"],["B","SCALE",61,"-1"],["B","ADD",75,61,"1"],["B","ADD",74,61,"1"],["B","ADD",73,61,"1"],["B","ADD",72,61,"1"],["B","ADD",71,61,"1"],["B","ADD",70,61,"1"],["B","ADD",69,61,"1"],["B","ADD",68,61,"1"],["B","ADD",67,61,"1"],["B","ADD",66,61,"1"],["B","ADD",65,61,"1"],["B","ADD",64,61,"1"],["B","ADD",63,61,"1"],["B","ADD",62,61,"3/2"],["B","SWAP",61,62],["B","ADD",59,60,"2"],["B","ADD",58,60,"2"],["B","ADD",56,60,"-2"],["B","ADD",54,60,"-2"],["B","ADD",52,60,"-2"],["B","ADD",50,60,"-2"],["B","ADD",48,60,"-2"],["B","ADD",46,60,"-2"],["B","ADD",44,60,"-2"],["B","ADD",42,60,"-2"],["B","ADD",40,60,"-2"],["B","ADD",38,60,"-2"],["B","SCALE",60,"2"],["B","ADD",75,60,"1"],["B","ADD",74,60,"1"],["B","ADD",73,60,"1"],["B","ADD",72,60,"1"],["B","ADD",71,60,"1"],["B","ADD",70,60,"1"],["B","ADD",69,60,"1"],["B","ADD",68,60,"1"],["B","ADD",67,60,"1"],["B","ADD",66,60,"1"],["B","ADD",65,60,"1"],["B","ADD",64,60,"1"],["B","ADD",63,60,"1"],["B","ADD",62,60,"1"],["B","ADD",61,60,"3/2"],["B","SWAP",60,61],["B","ADD",58,59,"-1/2"],["B","ADD",56,59,"1"],["B","ADD",54,59,"1"],["B","ADD",52,59,"1"],["B","ADD",50,59,"1"],["B","ADD",48,59,"1"],["B","ADD",46,59,"1"],["B","ADD",44,59,"1"],["B","ADD",42,59,"1"],["B","ADD",40,59,"1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-1/2"],["B","ADD",75,59,"2"],["B","ADD",74,59,"2"],["B","ADD",73,59,"2"],["B","ADD",72,59,"2"],["B","ADD",71,59,"2"],["B","ADD",70,59,"2"],["B","ADD",69,59,"2"],["B","ADD",68,59,"2"],["B","ADD",67,59,"2"],["B","ADD",66,59,"2"],["B","ADD",65,59,"2"],["B","ADD",64,59,"2"],["B","ADD",63,59,"2"],["B","ADD",62,59,"2"],["B","ADD",61,59,"2"],["B","ADD",60,59,"2"],["B","ADD",56,58,"-2"],["B","ADD",54,58,"-2"],["B","ADD",52,58,"-2"],["B","ADD",50,58,"-2"],["B","ADD",48,58,"-2"],["B","ADD",46,58,"-2"],["B","ADD",44,58,"-2"],["B","ADD",42,58,"-2"],["B","ADD",40,58,"-2"],["B","ADD",38,58,"-2"],["B","SCALE",58,"2"],["B","ADD",75,58,"1"],["B","ADD",74,58,"1"],["B","ADD",73,58,"1"],["B","ADD",72,58,"1"],["B","ADD",71,58,"1"],["B","ADD",70,58,"1"],["B","ADD",69,58,"1"],["B","ADD",68,58,"1"],["B","ADD",67,58,"1"],["B","ADD",66,58,"1"],["B","ADD",65,58,"1"],["B","ADD",64,58,"1"],["B","ADD",63,58,"1"],["B","ADD",62,58,"1"],["B","ADD",61,58,"1"],["B","ADD",60,58,"1"],["B","ADD",59,58,"3/2"],["B","SWAP",58,59],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",52,57,"-2"],["B","ADD",50,57,"-2"],["B","ADD",48,57,"-2"],["B","ADD",46,57,"-2"],["B","ADD",44,57,"-2"],["B","ADD",42,57,"-2"],["B","ADD",40,57,"-2"],["B","ADD",38,57,"-2"],["B","ADD",75,57,"2"],["B","ADD",74,57,"2"],["B","ADD",73,57,"2"],["B","ADD",72,57,"2"],["B","ADD",71,57,"2"],["B","ADD",70,57,"2"],["B","ADD",69,57,"2"],["B","ADD",68,57,"2"],["B","ADD",67,57,"2"],["B","ADD",66,57,"2"],["B","ADD",65,57,"2"],["B","ADD",64,57,"2"],["B","ADD",63,57,"2"],["B","ADD",62,57,"2"],["B","ADD",61,57,"2"],["B","ADD",60,57,"2"],["B","ADD",59,57,"2"],["B","ADD",58,57,"2"],["B","ADD",54,56,"-2"],["B","ADD",52,56,"-2"],["B","ADD",50,56,"-2"],["B","ADD",48,56,"-2"],["B","ADD",46,56,"-2"],["B","ADD",44,56,"-2"],["B","ADD",42,56,"-2"],["B","ADD",40,56,"-2"],["B","ADD",38,56,"-2"],["B","SCALE",56,"-1"],["B","ADD",75,56,"-2"],["B","ADD",74,56,"-2"],["B","ADD",73,56,"-2"],["B","ADD",72,56,"-2"],["B","ADD",71,56,"-2"],["B","ADD",70,56,"-2"],["B","ADD",69,56,"-2"],["B","ADD",68,56,"-2"],["B","ADD",67,56,"-2"],["B","ADD",66,56,"-2"],["B","ADD",65,56,"-2"],["B","ADD",64,56,"-2"],["B","ADD",63,56,"-2"],["B","ADD",62,56,"-2"],["B","ADD",61,56,"-2"],["B","ADD",60,56,"-2"],["B","ADD",59,56,"-2"],["B","ADD",58,56,"-2"],["B","ADD",54,55,"2"],["B","ADD",52,55,"2"],["B","ADD",50,55,"2"],["B","ADD",48,55,"2"],["B","ADD",46,55,"2"],["B","ADD",44,55,"2"],["B","ADD",42,55,"2"],["B","ADD",40,55,"2"],["B","ADD",38,55,"2"],["B","ADD",75,55,"-2"],["B","ADD",74,55,"-2"],["B","ADD",73,55,"-2"],["B","ADD",72,55,"-2"],["B","ADD",71,55,"-2"],["B","ADD",70,55,"-2"],["B","ADD",69,55,"-2"],["B","ADD",68,55,"-2"],["B","ADD",67,55,"-2"],["B","ADD",66,55,"-2"],["B","ADD",65,55,"-2"],["B","ADD",64,55,"-2"],["B","ADD",63,55,"-2"],["B","ADD",62,55,"-2"],["B","ADD",61,55,"-2"],["B","ADD",60,55,"-2"],["B","ADD",59,55,"-2"],["B","ADD",58,55,"-2"],["B","ADD",56,55,"2"],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",48,53,"-2"],["B","ADD",46,53,"-2"],["B","ADD",44,53,"-2"],["B","ADD",42,53,"-2"],["B","ADD",40,53,"-2"],["B","ADD",38,53,"-2"],["B","ADD",75,53,"2"],["B","ADD",74,53,"2"],["B","ADD",73,53,"2"],["B","ADD",72,53,"2"],["B","ADD",71,53,"2"],["B","ADD",70,53,"2"],["B","ADD",69,53,"2"],["B","ADD",68,53,"2"],["B","ADD",67,53,"2"],["B","ADD",66,53,"2"],["B","ADD",65,53,"2"],["B","ADD",64,53,"2"],["B","ADD",63,53,"2"],["B","ADD",62,53,"2"],["B","ADD",61,53,"2"],["B","ADD",60,53,"2"],["B","ADD",59,53,"2"],["B","ADD",58,53,"2"],["B","ADD",56,53,"-2"],["B","ADD",54,53,"-2"],["B","ADD",50,52,"-2"],["B","ADD",48,52,"-2"],["B","ADD",46,52,"-2"],["B","ADD",44,52,"-2"],["B","ADD",42,52,"-2"],["B","ADD",40,52,"-2"],["B","ADD",38,52,"-2"],["B","SCALE",52,"-1"],["B","ADD",75,52,"-2"],["B","ADD",74,52,"-2"],["B","ADD",73,52,"-2"],["B","ADD",72,52,"-2"],["B","ADD",71,52,"-2"],["B","ADD",70,52,"-2"],["B","ADD",69,52,"-2"],["B","ADD",68,52,"-2"],["B","ADD",67,52,"-2"],["B","ADD",66,52,"-2"],["B","ADD",65,52,"-2"],["B","ADD",64,52,"-2"],["B","ADD",63,52,"-2"],["B","ADD",62,52,"-2"],["B","ADD",61,52,"-2"],["B","ADD",60,52,"-2"],["B","ADD",59,52,"-2"],["B","ADD",58,52,"-2"],["B","ADD",56,52,"2"],["B","ADD",54,52,"2"],["B","ADD",50,51,"2"],["B","ADD",48,51,"2"],["B","ADD",46,51,"2"],["B","ADD",44,51,"2"],["B","ADD",42,51,"2"],["B","ADD",40,51,"2"],["B","ADD",38,51,"2"],["B","ADD",75,51,"-2"],["B","ADD",74,51,"-2"],["B","ADD",73,51,"-2"],["B","ADD",72,51,"-2"],["B","ADD",71,51,"-2"],["B","ADD",70,51,"-2"],["B","ADD",69,51,"-2"],["B","ADD",68,51,"-2"],["B","ADD",67,51,"-2"],["B","ADD",66,51,"-2"],["B","ADD",65,51,"-2"],["B","ADD",64,51,"-2"],["B","ADD",63,51,"-2"],["B","ADD",62,51,"-2"],["B","ADD",61,51,"-2"],["B","ADD",60,51,"-2"],["B","ADD",59,51,"-2"],["B","ADD",58,51,"-2"],["B","ADD",56,51,"2"],["B","ADD",54,51,"2"],["B","ADD",52,51,"2"],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",44,49,"-2"],["B","ADD",42,49,"-2"],["B","ADD",40,49,"-2"],["B","ADD",38,49,"-2"],["B","ADD",75,49,"2"],["B","ADD",74,49,"2"],["B","ADD",73,49,"2"],["B","ADD",72,49,"2"],["B","ADD",71,49,"2"],["B","ADD",70,49,"2"],["B","ADD",69,49,"2"],["B","ADD",68,49,"2"],["B","ADD",67,49,"2"],["B","ADD",66,49,"2"],["B","ADD",65,49,"2"],["B","ADD",64,49,"2"],["B","ADD",63,49,"2"],["B","ADD",62,49,"2"],["B","ADD",61,49,"2"],["B","ADD",60,49,"2"],["B","ADD",59,49,"2"],["B","ADD",58,49,"2"],["B","ADD",56,49,"-2"],["B","ADD",54,49,"-2"],["B","ADD",52,49,"-2"],["B","ADD",50,49,"-2"],["B","ADD",46,48,"-2"],["B","ADD",44,48,"-2"],["B","ADD",42,48,"-2"],["B","ADD",40,48,"-2"],["B","ADD",38,48,"-2"],["B","SCALE",48,"-1"],["B","ADD",75,48,"-2"],["B","ADD",74,48,"-2"],["B","ADD",73,48,"-2"],["B","ADD",72,48,"-2"],["B","ADD",71,48,"-2"],["B","ADD",70,48,"-2"],["B","ADD",69,48,"-2"],["B","ADD",68,48,"-2"],["B","ADD",67,48,"-2"],["B","ADD",66,48,"-2"],["B","ADD",65,48,"-2"],["B","ADD",64,48,"-2"],["B","ADD",63,48,"-2"],["B","ADD",62,48,"-2"],["B","ADD",61,48,"-2"],["B","ADD",60,48,"-2"],["B","ADD",59,48,"-2"],["B","ADD",58,48,"-2"],["B","ADD",56,48,"2"],["B","ADD",54,48,"2"],["B","ADD",52,48,"2"],["B","ADD",50,48,"2"],["B","ADD",46,47,"2"],["B","ADD",44,47,"2"],["B","ADD",42,47,"2"],["B","ADD",40,47,"2"],["B","ADD",38,47,"2"],["B","ADD",75,47,"-2"],["B","ADD",74,47,"-2"],["B","ADD",73,47,"-2"],["B","ADD",72,47,"-2"],["B","ADD",71,47,"-2"],["B","ADD",70,47,"-2"],["B","ADD",69,47,"-2"],["B","ADD",68,47,"-2"],["B","ADD",67,47,"-2"],["B","ADD",66,47,"-2"],["B","ADD",65,47,"-2"],["B","ADD",64,47,"-2"],["B","ADD",63,47,"-2"],["B","ADD",62,47,"-2"],["B","ADD",61,47,"-2"],["B","ADD",60,47,"-2"],["B","ADD",59,47,"-2"],["B","ADD",58,47,"-2"],["B","ADD",56,47,"2"],["B","ADD",54,47,"2"],["B","ADD",52,47,"2"],["B","ADD",50,47,"2"],["B","ADD",48,47,"2"],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",40,45,"-2"],["B","ADD",38,45,"-2"],["B","ADD",75,45,"2"],["B","ADD",74,45,"2"],["B","ADD",73,45,"2"],["B","ADD",72,45,"2"],["B","ADD",71,45,"2"],["B","ADD",70,45,"2"],["B","ADD",69,45,"2"],["B","ADD",68,45,"2"],["B","ADD",67,45,"2"],["B","ADD",66,45,"2"],["B","ADD",65,45,"2"],["B","ADD",64,45,"2"],["B","ADD",63,45,"2"],["B","ADD",62,45,"2"],["B","ADD",61,45,"2"],["B","ADD",60,45,"2"],["B","ADD",59,45,"2"],["B","ADD",58,45,"2"],["B","ADD",56,45,"-2"],["B","ADD",54,45,"-2"],["B","ADD",52,45,"-2"],["B","ADD",50,45,"-2"],["B","ADD",48,45,"-2"],["B","ADD",46,45,"-2"],["B","ADD",42,44,"-2"],["B","ADD",40,44,"-2"],["B","ADD",38,44,"-2"],["B","SCALE",44,"-1"],["B","ADD",75,44,"-2"],["B","ADD",74,44,"-2"],["B","ADD",73,44,"-2"],["B","ADD",72,44,"-2"],["B","ADD",71,44,"-2"],["B","ADD",70,44,"-2"],["B","ADD",69,44,"-2"],["B","ADD",68,44,"-2"],["B","ADD",67,44,"-2"],["B","ADD",66,44,"-2"],["B","ADD",65,44,"-2"],["B","ADD",64,44,"-2"],["B","ADD",63,44,"-2"],["B","ADD",62,44,"-2"],["B","ADD",61,44,"-2"],["B","ADD",60,44,"-2"],["B","ADD",59,44,"-2"],["B","ADD",58,44,"-2"],["B","ADD",56,44,"2"],["B","ADD",54,44,"2"],["B","ADD",52,44,"2"],["B","ADD",50,44,"2"],["B","ADD",48,44,"2"],["B","ADD",46,44,"2"],["B","ADD",42,43,"2"],["B","ADD",40,43,"2"],["B","ADD",38,43,"2"],["B","ADD",75,43,"-2"],["B","ADD",74,43,"-2"],["B","ADD",73,43,"-2"],["B","ADD",72,43,"-2"],["B","ADD",71,43,"-2"],["B","ADD",70,43,"-2"],["B","ADD",69,43,"-2"],["B","ADD",68,43,"-2"],["B","ADD",67,43,"-2"],["B","ADD",66,43,"-2"],["B","ADD",65,43,"-2"],["B","ADD",64,43,"-2"],["B","ADD",63,43,"-2"],["B","ADD",62,43,"-2"],["B","ADD",61,43,"-2"],["B","ADD",60,43,"-2"],["B","ADD",59,43,"-2"],["B","ADD",58,43,"-2"],["B","ADD",56,43,"2"],["B","ADD",54,43,"2"],["B","ADD",52,43,"2"],["B","ADD",50,43,"2"],["B","ADD",48,43,"2"],["B","ADD",46,43,"2"],["B","ADD",44,43,"2"],["B","ADD",40,41,"-2"],["B","ADD",38,41,"-2"],["B","ADD",75,41,"2"],["B","ADD",74,41,"2"],["B","ADD",73,41,"2"],["B","ADD",72,41,"2"],["B","ADD",71,41,"2"],["B","ADD",70,41,"2"],["B","ADD",69,41,"2"],["B","ADD",68,41,"2"],["B","ADD",67,41,"2"],["B","ADD",66,41,"2"],["B","ADD",65,41,"2"],["B","ADD",64,41,"2"],["B","ADD",63,41,"2"],["B","ADD",62,41,"2"],["B","ADD",61,41,"2"],["B","ADD",60,41,"2"],["B","ADD",59,41,"2"],["B","ADD",58,41,"2"],["B","ADD",56,41,"-2"],["B","ADD",54,41,"-2"],["B","ADD",52,41,"-2"],["B","ADD",50,41,"-2"],["B","ADD",48,41,"-2"],["B","ADD",46,41,"-2"],["B","ADD",44,41,"-2"],["B","ADD",42,41,"-2"],["B","ADD",38,40,"-2"],["B","SCALE",40,"-1"],["B","ADD",75,40,"-2"],["B","ADD",74,40,"-2"],["B","ADD",73,40,"-2"],["B","ADD",72,40,"-2"],["B","ADD",71,40,"-2"],["B","ADD",70,40,"-2"],["B","ADD",69,40,"-2"],["B","ADD",68,40,"-2"],["B","ADD",67,40,"-2"],["B","ADD",66,40,"-2"],["B","ADD",65,40,"-2"],["B","ADD",64,40,"-2"],["B","ADD",63,40,"-2"],["B","ADD",62,40,"-2"],["B","ADD",61,40,"-2"],["B","ADD",60,40,"-2"],["B","ADD",59,40,"-2"],["B","ADD",58,40,"-2"],["B","ADD",56,40,"2"],["B","ADD",54,40,"2"],["B","ADD",52,40,"2"],["B","ADD",50,40,"2"],["B","ADD",48,40,"2"],["B","ADD",46,40,"2"],["B","ADD",44,40,"2"],["B","ADD",42,40,"2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-2"],["B","ADD",73,39,"-2"],["B","ADD",72,39,"-2"],["B","ADD",71,39,"-2"],["B","ADD",70,39,"-2"],["B","ADD",69,39,"-2"],["B","ADD",68,39,"-2"],["B","ADD",67,39,"-2"],["B","ADD",66,39,"-2"],["B","ADD",65,39,"-2"],["B","ADD",64,39,"-2"],["B","ADD",63,39,"-2"],["B","ADD",62,39,"-2"],["B","ADD",61,39,"-2"],["B","ADD",60,39,"-2"],["B","ADD",59,39,"-2"],["B","ADD",58,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","ADD",73,38,"2"],["B","ADD",72,38,"2"],["B","ADD",71,38,"2"],["B","ADD",70,38,"2"],["B","ADD",69,38,"2"],["B","ADD",68,38,"2"],["B","ADD",67,38,"2"],["B","ADD",66,38,"2"],["B","ADD",65,38,"2"],["B","ADD",64,38,"2"],["B","ADD",63,38,"2"],["B","ADD",62,38,"2"],["B","ADD",61,38,"2"],["B","ADD",60,38,"2"],["B","ADD",59,38,"2"],["B","ADD",58,38,"2"],["B","ADD",56,38,"-2"],["B","ADD",54,38,"-2"],["B","ADD",52,38,"-2"],["B","ADD",50,38,"-2"],["B","ADD",48,38,"-2"],["B","ADD",46,38,"-2"],["B","ADD",44,38,"-2"],["B","ADD",42,38,"-2"],["B","ADD",40,38,"-2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"1"],["B","ADD",72,74,"-1"],["B","ADD",70,74,"-1"],["B","ADD",68,74,"-1"],["B","ADD",66,74,"-1"],["B","ADD",64,74,"-1"],["B","ADD",62,74,"-1"],["B","ADD",58,74,"-1/2"],["B","ADD",39,74,"1"],["B","SWAP",73,75],["B","ADD",39,72,"1"],["B","SWAP",72,74],["B","ADD",39,71,"-1"],["B","ADD",39,70,"1"],["B","ADD",39,68,"-1"],["B","ADD",39,67,"1"],["B","ADD",39,66,"-1"],["B","SWAP",65,69],["B","ADD",39,64,"1"],["B","SWAP",64,68],["B","ADD",39,63,"-1"],["B","SWAP",63,71],["B","ADD",39,62,"1"],["B","SWAP",62,70],["B","SWAP",61,75],["B","ADD",39,60,"-1"],["B","SWAP",60,74],["B","ADD",58,59,"-1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-2"],["B","ADD",75,59,"1"],["B","ADD",74,59,"1"],["B","SWAP",59,73],["B","SCALE",58,"-2"],["B","ADD",72,58,"-1"],["B","ADD",70,58,"1"],["B","ADD",68,58,"1"],["B","ADD",66,58,"1"],["B","ADD",64,58,"1"],["B","ADD",62,58,"1"],["B","ADD",60,58,"1"],["B","ADD",39,57,"-1"],["B","ADD",39,56,"1"],["B","ADD",39,55,"-1"],["B","ADD",39,53,"1"],["B","ADD",39,52,"-1"],["B","ADD",39,51,"1"],["B","ADD",39,49,"-1"],["B","ADD",39,48,"1"],["B","ADD",39,47,"-1"],["B","ADD",39,45,"1"],["B","ADD",39,44,"-1"],["B","ADD",39,43,"1"],["B","ADD",39,41,"-1"],["B","ADD",39,40,"1"],["B","ADD",38,39,"1"],["B","SCALE",39,"-128"],["B","ADD",72,39,"1/64"],["B","ADD",70,39,"-1/64"],["B","ADD",68,39,"-1/64"],["B","ADD",66,39,"-1/64"],["B","ADD",64,39,"-1/64"],["B","ADD",62,39,"-1/64"],["B","ADD",60,39,"-1/64"],["B","ADD",58,39,"-1/64"],["B","SCALE",38,"128"],["B","ADD",75,38,"1/32"],["B","ADD",74,38,"1/64"],["B","ADD",73,38,"1/32"],["B","ADD",72,38,"-1/64"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["J",10,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[10]],["A","IDLE_ONE",3,[10,11]],["A","IDLE_ONE",4,[10,11,12]],["A","IDLE_ONE",5,[10,11,12,13]],["A","IDLE_ONE",6,[10,11,12,13,14]],["A","IDLE_ONE",7,[10,11,12,13,14,15]],["A","IDLE_ONE",8,[10,11,12,13,14,15,16]],["A","IDLE_ONE",9,[10,11,12,13,14,15,16,17]],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[10]],["A","IDLE_ONE",22,[10,11]],["A","IDLE_ONE",23,[10,11,12]],["A","IDLE_ONE",24,[10,11,12,13]],["A","IDLE_ONE",25,[10,11,12,13,14]],["A","IDLE_ONE",26,[10,11,12,13,14,15]],["A","IDLE_ONE",27,[10,11,12,13,14,15,16]],["A","IDLE_ONE",28,[10,11,12,13,14,15,16,17]],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",58,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",59,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",60,[10,11,12,13,14,15,16]],["B","IDLE_ONE",61,[10,11,12,13,14,15,16]],["B","IDLE_ONE",62,[10,11,12,13,14,15]],["B","IDLE_ONE",63,[10,11,12,13,14,15]],["B","IDLE_ONE",64,[10,11,12,13,14]],["B","IDLE_ONE",65,[10,11,12,13,14]],["B","IDLE_ONE",66,[10,11,12,13]],["B","IDLE_ONE",67,[10,11,12,13]],["B","IDLE_ONE",68,[10,11,12]],["B","IDLE_ONE",69,[10,11,12]],["B","IDLE_ONE",70,[10,11]],["B","IDLE_ONE",71,[10,11]],["B","IDLE_ONE",72,[10]],["B","IDLE_ONE",73,[10]],["B","IDLE_ONE",74,[10]],["B","IDLE_ONE",75,[10]],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"1/2"],["B","ADD",39,75,"-64"],["B","SCALE",75,"1/4"],["B","ADD",72,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"1/2"],["B","ADD",72,73,"3/2"],["B","ADD",39,73,"64"],["B","ADD",38,73,"64"],["B","SCALE",73,"2"],["B","ADD",75,73,"-5/8"],["B","ADD",74,73,"-3/2"],["B","SWAP",73,75],["B","ADD",38,72,"-64"],["B","ADD",74,72,"2"],["B","ADD",73,72,"3/2"],["B","SWAP",72,73],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","SWAP",59,61],["B","SWAP",58,60],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",59,39,"1/64"],["B","ADD",58,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",59,38,"-1/64"],["B","ADD",58,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",11,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[11]],["B","IDLE_ONE",75,[11]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",61,39,"1/64"],["B","ADD",60,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",61,38,"-1/64"],["B","ADD",60,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",12,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[12]],["B","IDLE_ONE",75,[12]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",63,39,"1/64"],["B","ADD",62,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",63,38,"-1/64"],["B","ADD",62,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",13,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[13]],["B","IDLE_ONE",75,[13]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",65,39,"1/64"],["B","ADD",64,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",65,38,"-1/64"],["B","ADD",64,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",14,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[14]],["B","IDLE_ONE",75,[14]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",67,39,"1/64"],["B","ADD",66,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",67,38,"-1/64"],["B","ADD",66,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",15,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[15]],["B","IDLE_ONE",75,[15]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",69,39,"1/64"],["B","ADD",68,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",69,38,"-1/64"],["B","ADD",68,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",16,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[16]],["B","IDLE_ONE",75,[16]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",71,39,"1/64"],["B","ADD",70,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",71,38,"-1/64"],["B","ADD",70,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",17,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[17]],["B","IDLE_ONE",75,[17]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/4"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SCALE",74,"1/2"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"1"],["B","ADD",74,73,"-1/2"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1/2"],["B","ADD",73,72,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/64"],["B","ADD",74,39,"-1/128"],["B","ADD",73,39,"1/64"],["B","ADD",72,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/64"],["B","ADD",73,38,"-1/64"],["B","ADD",72,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",18,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","SWAP",2,18],["A","ADD",0,1,"-2"],["A","SWAP",1,18],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",1,-1],["A","LAMBDA",2,-1],["A","LAMBDA",3,-1],["A","LAMBDA",4,-1],["A","LAMBDA",5,-1],["A","LAMBDA",6,-1],["A","LAMBDA",7,-1],["A","LAMBDA",8,-1],["A","LAMBDA",9,-1],["A","LAMBDA",10,-1],["A","LAMBDA",11,-1],["A","LAMBDA",12,-1],["A","LAMBDA",13,-1],["A","LAMBDA",14,-1],["A","LAMBDA",15,-1],["A","LAMBDA",16,-1],["A","LAMBDA",17,-1],["A","LAMBDA",18,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","SWAP",21,37],["A","ADD",19,20,"-2"],["A","SWAP",20,37],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","LAMBDA",19,-1],["A","LAMBDA",20,-1],["A","LAMBDA",21,-1],["A","LAMBDA",22,-1],["A","LAMBDA",23,-1],["A","LAMBDA",24,-1],["A","LAMBDA",25,-1],["A","LAMBDA",26,-1],["A","LAMBDA",27,-1],["A","LAMBDA",28,-1],["A","LAMBDA",29,-1],["A","LAMBDA",30,-1],["A","LAMBDA",31,-1],["A","LAMBDA",32,-1],["A","LAMBDA",33,-1],["A","LAMBDA",34,-1],["A","LAMBDA",35,-1],["A","LAMBDA",36,-1],["A","LAMBDA",37,-1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[18]],["B","IDLE_ONE",75,[18]],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","SCALE",75,"-1"],["B","ADD",38,74,"128"],["B","SCALE",74,"-1"],["B","ADD",75,74,"2"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"1/128"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-1"],["B","SCALE",38,"1/128"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","LAMBDA",39,-1],["B","LAMBDA",40,-1],["B","LAMBDA",41,-1],["B","LAMBDA",42,-1],["B","LAMBDA",43,-1],["B","LAMBDA",44,-1],["B","LAMBDA",45,-1],["B","LAMBDA",46,-1],["B","LAMBDA",47,-1],["B","LAMBDA",48,-1],["B","LAMBDA",49,-1],["B","LAMBDA",50,-1],["B","LAMBDA",51,-1],["B","LAMBDA",52,-1],["B","LAMBDA",53,-1],["B","LAMBDA",54,-1],["B","LAMBDA",55,-1],["B","LAMBDA",56,-1],["B","LAMBDA",57,-1],["B","LAMBDA",58,-1],["B","LAMBDA",59,-1],["B","LAMBDA",60,-1],["B","LAMBDA",61,-1],["B","LAMBDA",62,-1],["B","LAMBDA",63,-1],["B","LAMBDA",64,-1],["B","LAMBDA",65,-1],["B","LAMBDA",66,-1],["B","LAMBDA",67,-1],["B","LAMBDA",68,-1],["B","LAMBDA",69,-1],["B","LAMBDA",70,-1],["B","LAMBDA",71,-1],["B","LAMBDA",72,-1],["B","LAMBDA",73,-1],["B","LAMBDA",74,-1],["B","LAMBDA",75,-1]],"ops_note":"QSELF(x, k): R[x] *= q^k, one paid rank-1 job on one register (new op; not in the retained alphabet)."} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/root_A_6936.json b/research/p104-qself-owned-lowering/data/root_A_6936.json new file mode 100644 index 0000000000..1f8c2e3152 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/root_A_6936.json @@ -0,0 +1 @@ +{"n": 40, "N": 42, "X": [["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", "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"], ["1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "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", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0"]], "Y": [["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", "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"], ["1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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"], ["1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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"], ["2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "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", "2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "1"], ["3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "1"], ["1", "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", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0"], ["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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"]], "stages": [{"units": [0, 1], "mask": [0, 1, 20, 21]}, {"units": [2, 3], "mask": [0, 1, 2, 20, 21, 22]}, {"units": [4, 5], "mask": [0, 1, 2, 3, 20, 21, 22, 23]}, {"units": [6, 7], "mask": [0, 1, 2, 3, 4, 20, 21, 22, 23, 24]}, {"units": [8, 9], "mask": [0, 1, 2, 3, 4, 5, 20, 21, 22, 23, 24, 25]}, {"units": [10, 11], "mask": [0, 1, 2, 3, 4, 5, 6, 20, 21, 22, 23, 24, 25, 26]}, {"units": [12, 13], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 20, 21, 22, 23, 24, 25, 26, 27]}, {"units": [14, 15], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 23, 24, 25, 26, 27, 28]}, {"units": [16, 17], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}, {"units": [24, 25], "mask": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [26, 27], "mask": [0, 11, 12, 13, 14, 15, 16, 17, 18, 20, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [28, 29], "mask": [0, 12, 13, 14, 15, 16, 17, 18, 20, 32, 33, 34, 35, 36, 37, 38]}, {"units": [30, 31], "mask": [0, 13, 14, 15, 16, 17, 18, 20, 33, 34, 35, 36, 37, 38]}, {"units": [32, 33], "mask": [0, 14, 15, 16, 17, 18, 20, 34, 35, 36, 37, 38]}, {"units": [34, 35], "mask": [0, 15, 16, 17, 18, 20, 35, 36, 37, 38]}, {"units": [36, 37], "mask": [0, 16, 17, 18, 20, 36, 37, 38]}, {"units": [38, 39], "mask": [0, 17, 18, 20, 37, 38]}, {"units": [40, 41], "mask": [0, 18, 20, 38]}], "note": "t=0 direct sum of two chain roots, one stage variable each stage"} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/root_A_efree.json b/research/p104-qself-owned-lowering/data/root_A_efree.json new file mode 100644 index 0000000000..4a7fbe2fe2 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/root_A_efree.json @@ -0,0 +1 @@ +{"n": 38, "N": 40, "X": [["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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "-1", "-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", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1"]], "Y": [["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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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"], ["1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "-1", "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", "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"], ["2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-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", "2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1"], ["1", "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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0"], ["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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1"]], "stages": [{"units": [0, 1], "mask": [0, 1, 19, 20]}, {"units": [2, 3], "mask": [0, 1, 2, 19, 20, 21]}, {"units": [4, 5], "mask": [0, 1, 2, 3, 19, 20, 21, 22]}, {"units": [6, 7], "mask": [0, 1, 2, 3, 4, 19, 20, 21, 22, 23]}, {"units": [8, 9], "mask": [0, 1, 2, 3, 4, 5, 19, 20, 21, 22, 23, 24]}, {"units": [10, 11], "mask": [0, 1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25]}, {"units": [12, 13], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 19, 20, 21, 22, 23, 24, 25, 26]}, {"units": [14, 15], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27]}, {"units": [16, 17], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]}, {"units": [22, 23], "mask": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 29, 30, 31, 32, 33, 34, 35, 36, 37]}, {"units": [24, 25], "mask": [0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 30, 31, 32, 33, 34, 35, 36, 37]}, {"units": [26, 27], "mask": [0, 12, 13, 14, 15, 16, 17, 18, 19, 31, 32, 33, 34, 35, 36, 37]}, {"units": [28, 29], "mask": [0, 13, 14, 15, 16, 17, 18, 19, 32, 33, 34, 35, 36, 37]}, {"units": [30, 31], "mask": [0, 14, 15, 16, 17, 18, 19, 33, 34, 35, 36, 37]}, {"units": [32, 33], "mask": [0, 15, 16, 17, 18, 19, 34, 35, 36, 37]}, {"units": [34, 35], "mask": [0, 16, 17, 18, 19, 35, 36, 37]}, {"units": [36, 37], "mask": [0, 17, 18, 19, 36, 37]}, {"units": [38, 39], "mask": [0, 18, 19, 37]}], "note": "E-free: direct sum of two 19-field chain roots; thin units t1 (y.x=1) and t2 per chain"} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/word_6936.json.gz b/research/p104-qself-owned-lowering/data/word_6936.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d93e67ca7628bf5531ae6e369da4dd7b7907b88f GIT binary patch literal 349022 zcmV(zK<2+6iwFn+00002|7~(;E@Ligb8l_{?7d5mwJ~lU_+P$t6-xJucfn+Kv&+&j z0t2yw1{^zZf|u>(n zhx+yB{H7AV{@k+vZ~hJW-#+e;++VOyZT$8xA4i>y{`>Je`WWN*P2)F@-!gtj-Z=8c zkw@B3BX1gc)5x1f-Zb*2@|8QK6MW=PBYz(G^GKty=aDy$ym{o!quxC7cfBX1db z%g8JEQAYkU@|TgnjQoYtM*cGL){(c4ymjQQBVQf)>d03|zB=;Nk*|(?jm9?ewUMvI zS#KM8+sNBS-bUZs9Dg5qssDZC?IUj=`TEG$N4~!1tdG3Ce+B2puOGi*{KoN{#%~_K zW&DnHa&7#Me17EfBcC7n{A@q?k=KvBe&qG^edP5cZy0&Q$Qwr9FzO5=Ul{qq$VcVI zdWErGVXRjeYZYkDU8fIaez_t|`Jay5(UsT#-$v*d;D3|{mtT`g2>bZ|9Q&E}E}!*( z9*9Z*TZk}^j7@?|E$O7TliybeVrgJC6V8H~G+F0eQ!VmfCM2R*S!f zfcd#lf96J!a&xlfx6Ix7%Ge$=Iml0Fe}SDhNJI?pLHx0S#FT!o?mvN5$3bpm`^&JW zPt@$+Rxd3|{_VVfDnhjCFZJXXf*53TIexC(r}uwN|09DT?Dii9;eT^*zWrGfo`r9Q z4~XGNIB@?~>BtFTaOqF%tINNEwJ!S0mr0${8%nENTrjjgj*RqQX*x6T;ufu-KWXs& z#8t!>iB8o$NhbY)`^4wpT$;QG!aV?me|sa6jOR$;`wQ;Y|Gy~;e+dQQFZ=tKP!JL; z1~cuCDFz>u0#*nv$^gMmWq{M}%0Q+*{8bV7pQi{sf2$Aw%PIj+1po>Ax3p8Z-~Zb+ z&;Jt&z%A{Q0)X<}+fVTSTm1PTZescWPvR53{Z{&4Lezf^Ye~DIt*LLv&`0}W(1U0GpCC*?$`hOa>N#(G@YW<9e;~F=;uEwnTk{@lEW!}_&;-^N#b;h zBu1XR$&r7S$oSh5BFjrg`V$H8De!#~@Qn2M7Z#lU`g<;p_rJ{yGf6zH>(1%K(bFjw zm%sb^^^gDh_y6S|{@bs=`P;ws{_np2*7xxz=JAKVL`n*|^Jn@<-(wwr%1qI(C0X7Ynk&=wFVhQ}0QWK|AhRhjg0Hb0`?vxrj zC-=m)&)PT(0TY)_j%%ZYHWRpDrEK1D@xsmaz*QBliYsi~FeUJ(A@p(8v&?Ls8{=9c zw;5+Gp8s+i(Q)mLp^;J&=MS?Dt~2?W)W zGjqLwT7JFGcMP<+6=SRsI|q9XMx5oL;yFMvPb}C2*ePxfQNqhi2wMMm<$jzgWpm!u(G z4I)KV4^jDR$Vx-Dj@_?XN1no}K**I_9y0A$p~8{t9raKpgUSV7U}E`SLt0Lu@({k- z)D!|ENcMwv*qTc{*%?M33Y@7hF@ddDrZ$O|az5t%RGJxGHnG(~+W3KWI za8@CxeGg}j?dYbeQ9_8cQ90Xn9GFSe@pth`Ii{+?~T2VzR3=jQ(+ zd5UO_ofU>qnR11!+QJP&Wtip>q)9XFsH{EOf7R8FjyTaz*UtCfE!N=@I~4Trl5o2Mc z>^%%lr~JhDP&(yjhA8QyeyYdhU+E~n)c;B!T_vMYaYsEXo$6`roz6xs_eftmpePco zB~^-%_C9MbLIwbfU|b;WwP_DXIyYx|ci^#~3+UQ|y-Y5WA7pv6NdQn51_1TN6W)OM zCjBo!w#@t8_*-%~8jm`Ta048T$8+TE2H1^11cY}R`OR@Hz%+i$Zo2`VjrWt|))xS@ z@mi>M0~~Es!=vN5wCx74RmHbR5fL&lCJu7sNobwA$r6OigQP5}l}_wf{~|d!ebqtu zSo&rWm&!=OfU_V?w5n{m`I!{Xl~XcBM&_?NO0fP?dHZyhu>GpblWk$_r=`>l8NYrN zG7pB?S8iyKi>YzG_A?fS;|D3H+~n$4r~MZzl;b}uDQw-IB79=ikY<3jsnNZudW{q= z5>`>lT35nUbqVk_bsDaBS4HWmNjrmbmz^&8gXCZJq_*psYWJ3z4$+9#*-edu;H>4+ zl*S303Mav)sybj(d8ZFuVUjc};HspCrRz(b3$~J1qq}ncqP0=J7ev3jYtVdJpEUZ) zOVjSAGPynwcCAkXpQk?hHD@fX|CEE*hzjusUcD@NzLJ#FTDgva!qZyt^=gE_?3Q*3 zDlH{6oqM&v^6q8T`Kzt}+>z|pex~tH4VQ?Jnks zB|RHq(Eg@mPQSf#zAAZD&-rMpv+;u`-b)`hWn}ZqAU)IEGXFCH7Sn)ARE)&$H~a&Si(8Z6v#&=|`0hB*riuuQUfj1?o!KrJ_)* zuzQ_h%#bydIpS=D{ zRx$oegW`ibalLEra>0ez+|IMYouAS*zuWoSgTYM$-lU>IaJ;SFOdB6lwJgACLKs5+@+0;7Atn4>ng>wYx8x$SC0a>}=N&UY>Qo7Tcyu&!xOve%S>vqg}+3G?Ld z)4Vsy?n0lLmwEpp9+IGv09PPXCrm0ErX})~X?%WVdX|3HItvqViOOXZ8Tmt2p@Zf+ zFH)-?rqz}=G=G|MicXFfD!9nuGyyNzqcEN2Yn@xrSuVfNsvlppjMVq|rlpuQFTOTE zO!UdZt*g>OskbPS@k~*{9#;0g>YPUOnS19WSBc#Sf9qk_|Ac8V%_+Uy#iV+MM5Ny= z(WXx0_542oH46XsN^XTB#3gmil*vh_Wqjc#9n85k%5_Mvq&J4_>@}_oTvQOQo#|T1 zNS|d_MVg5KQkX|0Aoe;J?kAFR5~5KAsmh|r^9+SEuK~;>5U$55XqP0{m6>Ih9vi!B zE3bMVUkK9rqqdqJwMn+w=KB6Jeden<>uFGmlW9#-`ZZ1RQ`(PxQ_V$tW@cs>eQ`PR zndnid*jIepvYMLtm)K9jBWw3hqa&?dH95oDXPI+W%~?!OXIsJKwT4k^GJW@BrgxFu z7P^S8!?OPD>Lg{0;5-gHm^_>(AZ)pq;`LUJ+M3{3zO)q1yjzqZzdA9gP&soVD``4S zw2vOl2KN?NW~aF~6sK!kCaE-MxRD8t5+4ScyexB+ylwZSj(y3|(sV@PX;?=}?5(5~ z&>2%dG)9ts!^q2oQ2BDbi9 ze%4`*JvT63Y=ArQeV8&)gLRXsU#?9Z`M_@}Ez1B_mo`O8`A#ifjS;GPke`{_9G>Nb!HEK3N(US{xVDSZ@{+^e|4 zK@uNByV(KWnlJN9T{fm{4@0H&wz|JkwR1eM%YkZ_)Ys8>UZ=|IbJ^)j>hp|4?Ujw` zXWco;3ACKxg>GSuYK)iN2UeE$lmn%W(jUh4U62{qA|2!}Hi~=pyj=+WwJL~jyZx(z zO{=nG&)4ivO5TEqLQLdEEaoG7+Br(W1U{){ey|(iVXNS3eT*SJvGL6-lOax`Zbs{;9vf6Jf-+Vb`67 zcgZ@x7O1Wk&APEaF~IqE8m&61Q9vN>jaFL6}i zVeY%s^z%{$*3L?cw>;>TR6l`|F)VfK0p0#1YkG=Q{`D;7-jlc!U+6bWK8N;31x3>> zoib~AeHN*VH%@(gj#|~)L~*$=uv8+5s4y8B5tX?hQ5R$hGL&gi$}PxHHcou)!rk~| zziJyoTed+zY~I=)Y@pX=;i(Hph1QEbxUY-~nnI7-LDeQ2d6xG#J*{Xv^R_}NKU{{? z1&rZ=J8hCoJvsGH0wSrCbXKp;qx46>S^UU^KYjXFMA~C=U0wK(^EC~GQE+M?aM>B5Lx4^?9=@?x1gRT zkxSQ8=2Yd9G|ef1PN60mp`IuGb+$c4#)tiDDQ)xfGDwkp&&yxKBS{YKlk-a)8@-=| zjr5~Ott8^Aap_?Cx^^dZOlx zFcq{-Z^ZQBpXz3PU@fa!jW*B27a}id{N*n|9S{X-d*X3xFS`bPSF^;#jo9C3z`Vq1 zE^#DgR!?m>JoL8d>&IdV(E?4#Vc z?eeplzI(|%%9}!C`%Y5jpRwe%LwbDKNxzN{;*yslA~DZLiT zZGxi{>UPm|9H-~4%q$;JKt?$*O8ud9qNqX1+XKhkazrUZ1NZsrk{?!xu+MA9Ow5a!J`{va%NInU89m zdfWD_XiH;CGMnM$ToO9d!KXuW7m>R^xoUdINjsI7d!C@|)QNYyOEO3y=sS@p7I!Kd zhiaKmQH3Fnr3d8d{3_FXGe(s-0y>)*psnMiBT%EHSjP(0DogVwB_zfLNN z+`6|M;8YHH&eKYJiZy$0?9v>+JvZF;Pb^<~3GmN(q63h3)1m6Vc=*c;$5iU^NK@(& zpH7ogADhlQBrK^<#)Bn`mhfcB`!p$Ch~)I$pJ5o=Y@lurUwt_dCKnH7LpSS714-(d z-FEV1wVk(B*;~JBDZfs;UsY|nV_90BJ5N|oeJ<;wWQ%5LYCQI1-lqjs4+dt|EL*?6 zJ(ttc5O!h_xhbIl2a;{pUU~C-_qK*AOW!tA@gj+$$R4ua;{>8U&Ea1!Rp?>Ae|m_a zTGHdZ<)xu*U*vc4!*}_u!n8wLI(-2P_puu%$j3QSb(eacu7hWK-~D->N5zLR(cyMQ zJ*sc><(f(mJMa)H4{|7tK64+Q)#cQ`o<76RWOXsFY9%+0e~(3d={yg`;(6lIM702w zyxg+i$?C=(U#`~~rLsvkJ_NUyadV4{W>Tk6^G+6V@Kwiif4xN8<8&aLg5eWKws1J9 zZ8-(MJ?N+Kw+DUHtcMiOnt5T}S%uEfyFHzI=HFep&~yE|5eDmW5Xgs2!(4Yce!j&? z;P+YgL1aAwLbj;+3Ip1*-jnt`WynYRQ{a4^^zHe3sK5C^)E_e5BH)KC8()sB+w}7k z9iO)H=K<~GMEZFSs|VOGIrZsV{;XT=ut)A^Jkx=I;>8^1nQDB|MqSPNN`CqA?nQpd z!>^g$VrqMwHa|q#o&1)Hn_A^x$M=u(<#zfI6nl2BXW}o3cQcK5ExJJO+{$_Cp7MIw zp!uq-HzFup6?vNoy@%`h5|7^tb0x+P(YKtU z?>=C7ioa(tk4V(*AyESo9c?61K5N#4$(KC5F)~?X>Zic_q$K_H!>^|9hd|X%Vfslh z(|cQoucs9JNPfz;&r_s$>@W?tc+m70g?S@oQ`*oC>bzqipg=rN#g4Oo7I&Rt;#o~y zPx1LNBc~uR#e;WlU4*Bi{fdJYo7DE25P7xeISpUpb2KWJyLm21!;RC0{h1-F;j%u} znbjHNprPZdZ|mjLsiH4yV{1=G4UO)eMmv%74|ff9no{XGp4Fedc&7%ldN0-CUF}Bo z>6D-t5g%G-f2(|R5L?-M&?Qme%bR4fEug6F;%PkW&m-ZQc34n()E2L(+%5sQBJ|d2YD2$z=HznjPuUcwQB9ePTjL_ zob`tokxoaIEx1ArFq&a$`a6*B*}YBA-&-Y~rwL~q+fmI{zxjZ2`W}Un=N)DxEjNEY zAlyMw{_7bpwS0+M+8#dZ(Dv`Xe*NK}|M1`cz}J6|?hGD7dvn0QXtp}{aZ=Ry6B>dhE$LTi=vBYzw#*il?V0@0i%D7EmH>0kEP@3Dm=2n_{67jB0OV?2SAiyZh??YhZaFyn0}6CSo&oY9CY6 z*`e9fEl_l*Oy^E6(b)d_^VgsM&-~Ecx_?>;x`p&sSHCw?{(>F*(>wjK9sFm3N%~vY zrKR<4rswrnekHxEzw#^HrHgy#U-^|1ZT*#B=~$@pZ~vJqAlLK0e|11X{=NQ4KOEou zYX3;_)a2j(qp%MDXv@IQ)Z?93D`0)EAuobR+IzZzgU=DcPF=O zM!qC0r`crYW>T%%C}*=swr5Q;^1Whof-tK5U4A+R(9hg7VrDvjEGvETQN%>!UwPBmhB3t7V*tNJ>LVcQe2U~pP=X$o;OTiF)m}V5ubbxEG6@lAS^B!X zS44_=#r(!Ox*wJANM%Al^vhrW^oRfRA5@pTalS)|W`D*<*hjW8Cv6u-`$zr z$?87xIl$$9i^WaBp-k67$H+8hhi1r+IsBLZ>!1JOKmEsl{KG%|(|`JJzy4;7TI@co!Hs?(g11%q%2*knONNj!bFpmsuz~ ziIx3ge4Re{kxLXlU`pawO7pR9E1095&a~p}Nv0ZF0J@BQM$*fbCt~0t!`m2p5Vu^3 zHX<8^SkuT)d31_8M*qk6(VbMOABDG1pp_o;n#WwHKION>5ePI@v}rrtZbHHLyyXI! zOB%hxKo|IqS*56NLZQMz%LCWwo^Nt3qnIww7q>^Y+|e5S*MI$&|NO6i|6k~?*kAwd z-~anxG|OY%$29%&KjGIG*OXnhWA71F?_HR4pygFO!;L1F1Pg)LtI=aU_o|I7ml!M3cCS`i?6Y^xJCL^z%7SLp#c^5BH>yj zhD(v!E`YHcaa|sDOc2%M8TKUc*g}qcW68Y#3zVQ_gqlOh_ywD&;nw4NnPcLIxCrrT zTx2llv$yQIe#5P9_Txw)2p~MS%+2hgCb;=~nSFF8t>h%m{rx-H39$hKQi^Lb4>_%z zO;Xa@A-|h_;=xH2!^;2t#|j9WjqmLz9QBPD!s~fbjzp3McXN`nS5SVTZm@lh-tM-P zx&o2`FuFyvZk}Fj`4xYBv5he3JLD6{<#;Qgt}!R@@dtuvIG_{cHF8!q0g=`QS4N=d zK$)SUP?-ckwA2xg$J4&+N2%EofsU3Yz;#H#f^g=703OeQ8zS+qh}vh!rI|{2gK8td zcSV!nc;zZwa)x;idqGUkdr%*9!wSo=41xL(XZHdExqEd4isvE)mvtAzVg$-y`kI@B zz8T1*EzzdudRdAZBZ9C;MFXuk?=BD$yaaL#w5&2m5vHA}MDOKR6-5j~h#Q*oYUBmT zqg;tH%Px`<1V1?DncWwm~8?B)tC5}KFBPfV|?`S=r$al4R?3aVu3 zL(mvBAe@!>xN=nIGU`H-8d}Z-K8kw*XJ5zk9);KVzJ~_cZ0lqtV0dXQ#Iy43*7ybu zHDmXC?4`vzGK>+v^02Ltv*efuN6F;?uc;YS-T#zy)bGkF+;felb)A%0N(|M^+Q_k{ zbqw2sS=WgfT&)d;^AlWZNB?AmrFUAoa{!}~HG8d$@gE~dt?2}vvquIOhK+d{Wi8tD zULS>haVL#gi|WW?J1Dp7XO_I?Hl-B2>3Z)QFLLV9%wMW&g5lCJftTq^`PkI-pyx!Y z-cvkLG8LJZ-e_gdrAbB5BDq@niIb^F%Xw@EF8&4!VuULC&5wawq|B@J(1uiR z7bazCe#m|CT$z*wWl|a2(F{E)H3`9YKrT|M&+1M2)i?&m2k=D36h3u3`A5+c7`4-t zXy93MY@f>3Pr&q{!_j{jYUrPU?Gx}dzb9^mHNVLdK{L1^R?d95J?cv$4F^`DnCc<)|?O${%xo@Q!mxQAj`tgLqno9dmdwbW>h7YEG@2 zaV4Q3G1qP=NR-|7%`E3!>KLQaR)@f=XEgxQ7lYOv4SEkUFOq_b-d5eB^tSE6477+SaMfG^i$WTA^c40cn~Z4I_$N zF{H8Rh)UQTUKm&%1GU>Z^saN2T`53xY9d_?`M5_1_N=Evm??bpP@+XcHcZIgY#q?E z&~+bBCyvQzB7g<5B9KWUwnMM-Xa2)|#dIBg0dIJ9k3pn<)$o%K(pq2x^1O6-&lOgMH&y2(}BgiV#Y4?x;Jf{F!o} zt-mt}QyW{ss5JxOKg`WM!M)F1OM8>UaYfar!ax)&9D7Bd}vewzH9v62AuMauqJlb8QD9T-^5#h)zhG6MG=OR1tEa5Wr@twbD5Z zrq3&JD0MH)f^*pI$%gM&qOU*o2H39uU9^CxEJ zb&PE&tqCA|Q6XiK8{0%{uW7a`?ZsX-xN!_X=NUOfT8wRsv7#KRrZ!_u^qc3pSgd4T zRNYG{WY7V!6i;*>GP#i#M*XY&mzHU zZ9=8NX?y?~79zAE8TJaBNP9OFD^u}l;H<*A+F%=^}uUTi2LCEY5 zc5_kl9cHdx#3&@x7O@LpbNMK|;M0_UmfmK%5@NM{QY<8TS~oc3l$iC2E3|Ozaf2VFJWlVaz1jX_lnF19tSuDf6y~_hjK- zF*Pf2yY@J=a4mPRb6opit!ICPsy>Pm+ao`aHDxh$I82(>zw#QfQ|KgG-$Nb6E0~HaMLGa_S9({GFO> z&hg_x$*4k4Gtyv(9ZiBr0GSw=8G;xfpheH+`qUU{8@;+G449#Yb~}-qMD#fqAnk)u zGPs?)C~aM=gajy~lfz419kYq$>@vkzT7v5<(oe}9(S4^qB%3fe8Odt8fD<$-SW6tp zDr_cS2>0v^6XxR%)m3Je<+>(r=$8T)}L6$Jc7Ezz2EswrKPtB2mZVK7CIJw%)A@?~IdpY$0BimGAnCp4{eii^_89*WY* z-MW{4^{Piv7Rfs9<$V%%0wNxAuDCbq`ZXfKpLR=|R|Bt(c&y|P7x{On*E`aybeMTXFMVI*6b?*~ za0f^{Y$#db>)vc21T7PC_;mB?J#P@dM4ZkMx$aXe(Jesah=ijETC*OJud%8pmeG+P z#Ih>rhvVt|>C|EKYDC^QjwAHepL+&hoDQ-Y=JOpc@fx>)kZ-g%QE<)zgj*2~iZD)w z6BIACIm600-SN572-FdDu>^7!Op& z#7oWOazkE@F9iiCf&(;6G_-)^K(6zkb`HN=h9THcDP=0DQ?uZP`C0bZp z1%32n>Q2u3|E&z3tXaib_rF;=9Tpj2U4?V_3E6nxO;}G66m_d;B~!9>yJJ{PnUr2< z{o!WKLn%H7O#W`Ozotjz>o!5Lnx`>Ey`ecI7q(e(jpta%O>8x4=73zp z7)FOqWV5jDVY2An45muG$quweS<^-)JZC+)COBAxAs;IS2DWe;|0;$JqQs74*0pL5 zrx)k#x{+ViTDP9)bARlpO6unsz@9dzP7ZHXa+c#4Pj4fNA6KcV$)8u!Vt=p08A)abu zFPTU{(P(C&yzHZvetb3tm4yT3ahr^@&>|NRprud*I(_$cb)BqG>0td_l2vdBsuaT| zgYnLPEV}v};}GS}_3=V&zAFOe8!7TaQEmjE9CBu-Dm(w5Ye3F6yVGW?kf+UBdiFlI zUN&o|<;q84*2iWpe>cp=3(YE)CXvl-)=TGmXW+F`Gdh&9O|EJ7hJyOK=h!(wetnf~ z5CRx%Es8e)s3e7)t5MxTQ-*NBaN`OiO;>M85_!TbjQ7QoJaU6scuBst1__F=(11{r z6h!I#89rT-(z!`ZkLUVh%Bq!0a5!jN*bUHHDx+wu^T(eqLH_} zDZRx!Fvr3wzU|TopWsPy#v^3T0(*~IZ;-Xz#qPY2l}?meE%t|?@(bv#?)Md3;j9aY zpp#h~VIwuSXt#~`LZ8fFg~eD#?L{DEq0(88j|r>|>@=rjqKAS=kZ=i7f6rAVTZ16X z*(vh$xWlBRA(@G+?i!n!P<8_ z+$8cZf(e1307)|-rNA*7S;7e+wU{IV_fiAwqDN)QwyY8*L+zZ9Led^AD|aGIf9FCT ztLFi7P!Y3xuvvp5agRV?bE1Y@S<#6wPR9#ohJD;hjcL?hdASohNkUsCeaGILuqMOm z*iMA)A@o>Lj_h_@y)=t1qIitteq!;|Db;ExK6NFe=Xko1(IM`#)2g|~KsmNSZ@R=_ zDLYmP@3QJKo(R)*>T9rA*mWGq?#32HktRp^gK#(1k}!TZr!1pc7xyZP0~4-es8z+? zK|$U!PZiRXPN{^#vP5~Z%Uy+V3>knt!cI0+g<=XR@t*;9Qw z=eIf){C@Iz064c9sI&;0w0NR?QFW|X&9$ichXlf7h((#Hw~VBS`oJMl2Dnx96W>eD zH?g58p%0}4^eIBGEqWBOkW4$*xs*ku;!@h#XndH~&RTtcVaQ2qvS_2cCa2qusGCL> z$)aqM-d6MJ<$49_=6YjBR>>xvlbuyM>CUQ%S=O*5!{V}tE~FG4B4<|Rt~ZbB713r| zvkX)b02J?3p zB&XB;OK4E_Ct_yN5342oS*`9s8p|Sop!QUUgFvxU4cdJA_buXEdj``U{he=S(f!PR z&)dQu+CkK_8VE5f$x38N=s(5sEWGcs(m}Q+yE>l^b6A?ma$;cjv)UY!!3{l1Fv}}8 z!_b`FeQFb={c+xBHSw^5QnCzWQaGITM9n+H5MccH2PDtO=?sErRp7&t{se5 z?LVm<34q!iRMkRz-iEYo7E{Zha$5Nct$|f9|vjM5;z-4QnirZdM3>%Dk?nZ({aOM`G z+o4(1?Lk6>JMSM_!)WJLj8Scs=D;h8w!qTEc_Wf)3rKp`lWu?FSyTl&TP6|3(ntXf zhF(V1W$V0t&s@>7SVgqRNcZzB_ERa?=ahT(IGQfgdiOYV#Vu#l?;!HBkKTYp`AcPb z@VnES?=gYrMJ?OxXJ~cMLzKg$6;w)%t~#sX1wl-T1+{mxEKSu6Q3O;&GxT`cLb9Iz zCS%_XS+`Znc0&fSo*}dgdIpiBoftK|pA<*WD+h8I3rf3{@~Uf)zrQ&FFM1XU1Tq!6 z+^NEg#&;e`$Rie0iYuo{fFF!?#^1CSxdr|3+2r(eNoV)V}r?Cc8iv#UPn5A`2ZbL~I-Rf782 z(axl^`HVPT+h?%Jg0**JxEAEWax|jSm9%ZJVSErMA1ggompj|qnOKQ7< zl7P&~akv)>m(kNX;H3;5&`3kUoUq`b@(Ws*>iC6w45D{_a7z@Gv>@%Y8pBy2`z&sz z`5S}`uV8`r$q3Y~s{KV#4X_A5a)FEZjz>bqH4G?^NlvHX2^Y!f0tmN$<=di=3X7X3 zaTK-^b?r^y0&bjyH`q9dNw5iiO$+ual-su8=fh!TIa~ngLKH3ouf_4RboQNz6l@p{ zc^27ZN}6^2M&{9z!5EH6DtX!>FvSeU%XBbiv@ItEOqOoli%fC?L9RbaC3Bv8E5$Q= z0l5o^Um%wzO(}!)f=LefL;M1r>KuOpk|7D{4w3d1j%0dSJ4BZCww9@;mJ0j6-o-J= z_MJmc_5~++0{IJEDH4TIa-Knr%>o>x zLOH>CTMuTU{$Tb`G1eAEa)cCUhFzId5W&gGxQ78U9`tMur#mD$a2QsysdFn^abg}qp(mPuWv0Ds(9#h`+SNK6e@A36{#8PE!571IW0lQUdAdl$o$Z%*^hj1`-YFV6QP zK(N>X7rIooITS56bC6S>4Nkc;bXJk zu7I*p%JQ9qW==VRj51U@{SGLGj4QVj!ZBoA_4vg1JfkSG*|S#ca&sIRflCiy&^5|p zId<6qkz@0P-Hm4={3NtKp_|BCtigGBT zZ1&%^Fb^+5OxeVkOe>dBP#I6ZtKLH6sy`1AI2ymi8CJI7c7CF)Y-*M7u|lC`oZ&(T zf^PI&03ivo)0;~k)gNT1c9&~K8CLgG?)Z{B6llhaQqYn*8FT0esszTzW|!3YkA(%7)=LQ>)@;ou zg62Ez@T{iYr$)`QE7^YF@dtWfdR1Ul=na$Qg&WyRb~k0y$X&4WZ>AdxxLz8^r&v7J^bVPR{&0e6`n2%MXbvUV~G(Q<9cB# zq|e&UCEcv$C)=2{C1q5D=dmj~09MXnYm*rku)(6ti0`Si3MfP@+N}^l1uApS$Z-(6 zHZc)Qs4${jZA_^!p&A0fzfhD%M$~H7R_VHUvx7oV0Ri;NtDx#L+B_oX5(Z`z!N$@} zXD3mIV%R3VvvGIAz>rwrMMBPeKR$|M<7)YS){Fw#)+!B}fe4x~p+uJ}_y9uLmN--Z zw0wlhs9Zuk!ifx=hSb?D0y?GR$%ER3j(^W*I8jU+SB}amnfEy-yOvIfd~696UWgB+ z9H#;_B2!MtZwVIvIJRxeDF%Z$w(W)`PH1ngtpmx^De)Z>=Ky(ic~cX14F*AOb1~{q zwn1)N?lWPDIdAC_Eb+?Ik2v&%3LV*E+bV^*q4+w^PYA|-Rq9uF-!I0zOM1-(Vp{^|ih$BI}HKay+ zQG`?S8s?)W4n@Ur11&osRyr{?AfeWY0x<*=(03mnikWR$$!|bqo$hzv0eg2sWxEIB zgA)}Y6u#5Lp#Zt9H3t+SH_?;Ca)97Y7cE4CgK1=X1$t2xQs}dhm^iF%$|l8SizYQGdJmFh7puk>XK^61Zq{xzj~e!T zq-tV;>y}K)d|wj;*G;p`IUhxE4^~_Ry@rNuc1@8*NI+*VA{vxfvfa(4s-1(MQ*j{5 zZh~_}rM(h-OGt{cD|;Jl?YBg42o*AJan^%q06_lED1|Fo(w_okN)LzdI(URPGjxq-MY1?3#&YiMpEn{XjJd4eZ_GmRba1!TJf9KJ+zyu+t>9 z143Z?1gv8BGLeZgt)+ru?!!3zrv{ZK*`wklG^yI*%efV(GVUWBJ8yAY&k#_QuVif& zQAI0MQcox@JUdo3?2;|Vh9k~xP?N1%cC;_nXc5b{^Mqh6jd2^80LPDdbX$6|GJ6!| zDcB>rxb5e`*jCkfA_FUUlnvp*p+OXVYl=;0oTTboQ1wx#if(W)3MwI^QS@q{_T3QU zsD^|Vs|QoO)oP#6Aqs~mPNge_04yEq^pLYN^dkrlf~P1!bPRq{H`qAENzmyD!l{zm zP{qf59->_kjSpE+f*|y1nha&L#n6FiFbK{@I?z7fu^0OW8mx%yfXJv9L_#okIqL~o zeLkAmctOxVm1TFc;fz;Q4SIYPz_GnL1pxA;C*$9Ps#?2OyO;E;s}02!ow#jnEC08VSL6s_LcY8 zSKcpg_U{7H6V4uBGI(Et)5+WXJArgudknZ5ay18i40uQ&mSv_R=W#F2;}OjMe2W4k zdz|dxXxZP}gXDb4?qT-kF^WvDZjhWWn8QxpC^>`Z4!?Z5!Gy9;H^9K@yAA5`7bHgy zK+N=LA|d?p!UnZCJS{0E-qxwv~xE}lIdJN`eKBr)uhSx)C zHhV$?T^_@r_5?Q@av1i@VHhOCkxCq|H+xp1aEqBs>|^Vvk1a}Xc+$Z8Wz##B9nK4I zxtRjqd>=V@kDNeRd6~~gmvHfp^(G`oOBpH8w=dG7w^B|BdvP1eq^ z++=ytDyqFKurH~!i=XU#Ej}Y3wCN|y80#ExMVWrGb5%>PD8s^v?;7YW>kQpwXMk08 z!1-``$<8Nvc~6`}kWERPyKPybB@wb%?7sFWI@Y4V|`5FImPLOb>!=_|ZHd zC_y&-;G7=%i-!81UXT4`sft)TSl}Som*{XbBR^T*RnCL8@oVyE2Q};`%bj<8RsbAj z8SOpr2@66?O7tFhrMuN~3usZ@8uL7)Fi_bMy{DU>?0h2{6<*z@=Kz3Tr4Xs_j=U~~ zNI??jd;BBZV>-(66Y2bXGIo@eacAf!OHbW~20XH-o9uitKIH%$+Jwqg@504PmL{fk zKxd|#te?*_T-;>m9tLhP(@%Diz>A-(pC@L}-(vd7^2^BH0dKh~NL~tXYO6|r!ssTN zbs^B-gZ}WV(a2SH*3jvyKr^vbM&D{i?tE3nim|Q*IWQOD%)KB#<04B-m%nA;D9cQn z96~elljWHQ^1}3!oy(Si7rqznfdXE}Z~RT%NeQD!>IuIGo{%~RIT=P@Af z^1@nDXx0x>*b4j6SU*{>YYJ}rk6jVY-@IXY+7fb@k2>%eOF{mdvFK)U?cxqQ>qiqO zJZFG!{;*7=(#0W`d1(T4cbZbB5Qfk&$X05x7W5v3Y?Rt>F0o7a%^i8Y3bRC|l^KQF zI@spkZxPOvbsvNPFH&)%chN0Wgx(xFm@&7dn-Vf2UczvOq|$Fru}eI#;MGV z2$K_Xn-ZGv(w>4zhK{i}Tya8dYs&U=(d8J+92Oj=EVoz|Ih zVi{aqL{-a5HrR5KjwK2oLT-miXoatVWwELt-`1qvLu;L)GVpY9jAbnAAUx7- zN}ek6&lYNoh^341t(;`&0J~(miwCS<@9|&{SeBoQPrz4GB>V3gyL~N1iD_)5fxR76 zv*X+PGjxBw$*N8igQ4oDn*%H>9RV~gw6?jM|LYXLBXmF&9#au>b0Yc=atfkZr~B)& zaDW{qs(~L;YDQkiq8xk|a1zs%7)O8cf2C2k;4D+`q8ofykDOR_~B|YkbUDM!v7Sj4op5*NJ^Z|2=Yk-PQsRonL9TvUw+< z2y2G=6Ew33Q?NU#)ncgH8qWz-bvISMn>Zsc*Bj5zdgKBW zq^t)ngP~(b*E{daO6@t|CENEcX0sSuf*wf#<3|=<7zt-tPH`X=@hVhi8(y6CgvTe# zH?yAa4BBRE7VbpRJJzRlie#YFwm-LMUf2-zG+taa zMUw~%1sEZdTKaI&`VpEwbU1#pyrj@SLfc1Z-M02@-`Ws0++svCeFdeYZD@#-X0OM0G%E0CI zs!6G%M2Q!lR~96iJ*bLeC;lG$*-nI-4|+r4d{Mbs9m^c8)2e6(ou7 zKb$caZg|5ozFUkfB}!Too9zIvQ)1;!zZ z0j|OV?7j)o**)=aALMj)E41}H>!iua;8Na^&W?X3l|B57v*Z9&bZ_NIFV?4%QX6nF z9qG9?SPN;9U`X?}P?Kt|M4zc14U--AY!v|wKJlfOws#~B!gRjk6AY7Y&-?}@Vs`ch zcoNX)e)$~D%S_WJkAS7o%`dey;E~6L=R>;IAFs!G^6mk+P4JNO=tc6DfHxk&L-6zQ zQR|GiYVYPrr0I>v*XG9`;E2Z%Hr<DI??Vnof=E}74J1JK^GK6Z0zTrC+?zSe~HrCAcC6Cng86*{eTh}_7uCvlA^PIDbfH<>b z-QsVy<|=s2FLM^)R>zcv?;!+LugMs~T4uQQshcdHf&+U29(5B#=&r1ifJ5Ef&CY?{ z&hB(`p_;``_NJSo&SMd+H{B#+h0gzau4#)G6=IKSpytx>L&mMF<4FPf^pLDAgSM6YhTYNLw3&4YJEs??4C~{Nwrc+Tm zmB1#6YotArpQPR4aV;I)X>1E8ArD}Jg@gDX;4e3qrN7_Yp5AgxzH4CX1=%3MMtn|Z zIUZ-MsoM<@!j>J)90|i2s2hQl;8pOfmMeH=DZcjZ?dI`9C0X{do^p_fdl6Z`djr%! z#nQ2GV8;m~%AIb7x5Q%eix`hbZKsDEPsR`Mjl%%LV`~XL|RVR=>oQSf3s5l{$-+Yx^aMls-Aw3u@ zV^=tc3{I)!_(=ZV-agN_;Eg=dPg3ZF+U3}7zf=VF`6MhZ*M}rF*3EjsF%vC7i(wx) zMi*x&B|E@zy<|3u7DL(pZIaSxw-kH7t<795`a2c7Js55hxd1~|K5W5q9G8?(7?Hw7 zrC#XX$E_vUg%@$$8zhcDdN}xl16wvIDp$VK!Svbp zo7m`7K&Lq|OYh@D>oM&rv8-k;lvajD?&+iu0av%BgT|9_JC(ju3s#t9M>kPI&9b{K zhP3Dbx{7?ByTPe0^z=ZB-gTPB642Rbu?}v`)M&q#ySCKErrZoCs z6$(bI`&b$FYg=2S8kDF?WQG{ngO!eI+^panYn3e>PNPMYeM=fjJojZ){GU44xdc_Q z*bj-U8ILxRo@~uU^*oB(E6zByiC}7`zHF0{qfmfjo{BPIwsII~&~2ANS+OY9^Ejgj zb2+4qBAj7p{{YE~l6Nbr6*ag_jf&A=Fd|K?zij^2HR57$ExAIz?gO%oo zvUHPr(zwPgpjyFcqn4n4-O##}dTh{o2HiyB~as8)T= zA{#LZm1LdNreOrx@bVUpkPVN0)F!`yHoUB|6GGoCO61ry9n48iAD2~>ML>ty6>S?= zOwFl1#n59jXQfT0pO~7rmYK3)967nWM3=V+gBlfO5CcWr=#4J^HPbAT4B)R>t&OL1 zoal<4pCmHQWOrVZh02C#%?erB<7HKYEL%>e+?9jB$UWKD>mJ@FOK&NsqQnCvl~LXGRJHgKQdvrM#W)AGTy?Z!UW?+ws>Yg?KMd$ zR-&uB&ss$v`{sugj1!qyCJ#!La=9R8$|}qE(>#>Y7USdF9Fx)&pHnIqeLV^L^(R?M zs#%%-C6CYT(&oq6h}9{!Td8^jq+8$O&Hj+ojAbG13VBXkF&<$e#Ww2>2D|OA4JpM5 z$(YNM(wx{WEZ>$k_I8=1*vl271Sgw*#BIPii-`>ebHFI}a5`*k#_Ma5qw}7GSaePf z%T5$AqS5OzrZqK@Se_ZPjy#xs7e$Fcr+87fLp|^0iTm`=btAh)!R~L4{!jLH!-v#y zu(ue)2Mt5d;J*(%i;6HIThm7rD`&{wP|zsKvmdNH8oe+o&*{KW&rV*eU0xa^JU>p$ z!^w|BcYEEUGY($MU|=R#&$7RRV|kYJQS0Hgr|}S#f@(cLpb7gZ$Jo?@u#__Ast4=g zwd}q%pNkiibJ(MaP~wHa?lW`)5&1Qw)3_S)wuDi<(79p4<{StKgUGLRshXJ|u}>32 zI?T_lT}`^8p70|##yLSHVxCviUB9hmX0vTu`uh+>T)O5u{~Slfqs75AjStWS@a=&O zq?>E}R(i~rbb4eSHO*dM-w6Q7>#N#yI%^wS2m#J#y;nNjA?O1FgyVL&m2Peel=KQG zgYN}ILxA@J3WzWORmKlnqt?B{!vL?r3m{)gwDXF#l};A{7L=aNW8(`#u67XuvT@j2 zfQZ{5e>2$Gh?jMG^F;(fz+^li?savnU4A9Ym#hqhA8)0gjhF1W~es$$Zlv>W;n3bEea_vdMf0U;xPx=B^!9 zo(3ZV+4&klH1*Tb(2i=o)NRxG_F0=;9bCa+Uw2>BuAJ47gu^g%_Dt?t6Jp-xBKmtN zG>F`0N~!alWv~g{K{{rX zL3w+icj+LVe%(O4fN1{cum_Kdj!kgS>3BjL^5$d$_koTb;AqMGj{(~0vo5m0!y;s} zz7+BOG8(cNUm&I5#!2?bOQCS<0$E!W5{#k&*N0RLTpLOAxCf#6E9AOxq1+Ik1m#P0 zIou$MrDnf^$zIamWt#-rT+v+ZJkweFvs5xKc@CuemH?T|OE^R6DFK3*MQTIomzJZw z=5;~XXT73fOaYBNG7yYaJzUH~&YeX{v*}YvgMfS~;4gE}(p!WOlHW3haBKw_CJSn) z{Ty%YM~p2jsKNZ~)Q{S>*ES0vTG1k-iZ z#)4%MZafEw*evd#6`G2zO|I?Ia7qr3VhKIbLeO2v6L6amZ%45NmTWz%$bo!9fRlF? zP{I;Ro)=hTATu#6U}*+6HiZ_{7&&3yK&fdzfEOShGCAsD$dXwy6lc=4kW^u#$ zLQ9ayhD|JC0gRP=5OCk{Y_vuH?%^c@e?@grAiGqh5>{m9fEjGdaNF&8HGTJ&T{(rY8eLfK+i4@s`fdNurtp zUJLSGJEQkF{W=@W7(qqE|Ipg47)I15mv9^FVFLt!Q{Ij7gi@Oia8}_<2qPUmc|ggz z;?9uQ5(apW=9IjDY%kda11f=Gn3Qf`FQL?uQEHwfrWwEtxCFIFRL_(>LbVmKgaLZL z9%euQj|*UoP91H07F0T*X)Jf3W;xt5+x|~^q@Hg%5TsnHA~pb4myS5I-j%c z)Z`3Hc<_9U6PvT`6;NhYddAs-x-=oR;w~+VvmFGhC8(=Rl|kD;EnEP8;}kW4BDNXe z8X7i}E|a=+3|oJ;ra?}g`c|^(4lfSe{jTsa*)NO3#0ZRpO`_90`w0-lNOqn;FBrYW za{+O@e!sxLDF#b$om4p3jVXCy5RniJiTMgi^D+$xoUGR+49wS#@R$=EGe41)FCgkm zO&CUFix5Ny0caLI>uV5DE&!r=zQaLzzAyk4VpBf7e~U`-{I-T+VZINKU~H$k!FYP{ zJOy`Kl_^$sT#U(~yTJI?8@y!R-N!z~Pu$>quIpNmFAxEMb@dA_HQ#B(uv+JZZWx&P zG5`#lFPl(l!9X70rQke*#}mWiN5(791e~ss#Xx?&7hotq6^1KhoVb9dHx3@& zH2UG4vRK0nSgy#+V)$jUoyQc6C3ILFOWml*yq?6q#xg)l@-C=8zP#kSHVE?Ikcj}U zgS#sTA_txTQu%Ev)N>ZD`K??4i~TZrnJO$cc|Jr}Q3>L+c+2yjd_S zi~*WQumP2t$E_!XE{I_;c|g1TGvtzBE{RzgN{wwugS`z(V=jtWdD0+b_5zE@W=g&k zD7XMKG^wE`x}SFFPG=lj^im1k$V(CCbU8&c_r}aTHIhG;OU+yyBRviFP6)a^W`Rc+ z2eJMsgZG;oWM-DpII5w@NL?yJbha77Yp%{nOA`Jj+(gim__yk=`Opa2S~r0u2C$BF z(~K;1wao^;M2aV_W?G`u2dy#p&B!8#QN22eGWeV-%%IDcYau-DrMPCUs#$qL zprs6Hz*9z3o@CO3?M;J*4zz-bZfI&X?Lm@ArmrD+jdqvMqBl!~^Llc^#Q zZ2mJrqziGR0S_CH@uli2SPQRYGdc*)x}^q`;JV-L5`-<&$*^qk)p*j5N<%zRW6{5d=#B3=yeX-=y}~v+I+YUM(!a)_bIDP zh&QkD;Z!5qc4_y(6!lx`tzbVzozorwj>bIzlDTa0x;Y}T{2_GOI?89M$Zz>SH@K|I z;4K63%GyK1TSytZrw23vUMp7*g9QM=)IV7IWD?ExLih3zn&294mOj`dW53e`FOm`0Snd`~83roz?!U_hq)WPK8J! zx!Ia@b&#$`vGi+t8_!0%Ckh8zNe{`NNSNK2E(!KGGAy<#dxWx>6xlep;7E|v-;c=rE5M#rp-X#|(qPR^Sd#f1nH|-lU zh->lvE^0f~hw2c?Eh6~%QddC-lt3~YJ11(ZL4jnO(SA0ItTZw;2NuF@`$A(zWBcIZ zi&a`gP;IBuv+{_@I`oG$azjyCHz^tJcBCsU4gGmsC9@Y~=JOYVv> zg_zm7sk<&!jbu|ah|u>4Gg1JiS01lJtYAAeU8f-vIcmbJW!*~IB!H$9b?XR>aOX7F zEl;Nmz)JmcMbNPKor9dBDoF~FXp&i|8eg2m4q(#-geG-w{Zk^Yy46mBx9T2R>aJOv zx=o~}@ZKM-f=MY`({{~>;YC->1EyTI@p16BZsoJGr3SMrO5Ikwn$X5ATTKfN*bYm{ zH~L(1zNjok`4X#_=RPaSQZj_Pw?Wq6M^VY2)H2)U_%aBa`jr+>^s{Qs_RsQV!M<@%IJ4hE99XlB+ZZ=tMaB&lS@kj8gK9~3PsdKk?!t2{SV z+H;=sR@`fJKsm~aTHiNwa4vgeL1Qr8e6%`oF$L#`;W}g_2V~XVhZx|9#hSgJRgs2t zKR@*7)Xp1_L}V?@I&IymX(v8iup>y@UP`R>ywFH>@R%~d_q@&BQ*^gIP#J7yuszs% z@HNL4BZqtqjY@e-Y*0kV`zS0XONp|Q^-F2#!F3UXn(Rr3J2#+exzV0(W&fZE$2QP| zwOEYsm6hLw3Ut@JMLSzzI;6IBLl?UPI%;a= zHmc1cs9WcJrI&sAU=gYIo79u)m7k?ruEImAuY*%F3EOx(v|y{aq^-{vWKyM@rBs_I z`><(1<qC!oZ|>*-F+<#7lAq^5X3--%n-hK>wzQ-w@S^2Fzu!nJA@8pj`Sa1(Xw zCv=>(y_#4}I_~b;_O1dfqtWjJ2?vL@O--!8+0}ShSqeTdUS8#lYOU0U)WGoA1P4ZJ zpQ9A4QS<3>bl!~BA5(so+J~XdijtvS{eOZA6u_FjosVpbTih5EU1&S?7<{q!79g*z zu=jBWC=luv*MX5H)cYKjhaP}Nq}!2PY!XmvgYth%_`=p0t(?EToDgvDL?+@V;)eV{ z+zzaF;c=$wJUGDFE+vD|IBUvPu@mrt$B8}tgFZ7Vw=~rFmOW2|-a589DAi!vi)UJw z3&fHK0N?n+I{{+=Qel@uCW8mQc?5ykv91elR@unff`U`V>p4@ddo5v3av&4`zDJUA?{QDKK&=imkJT?Mc(U2g*F z2Zy_a1VQeyPX0O<9MDD=y2E1g5u*$X@;kf{7IXLcpq&l7=&pa#|5XfJ4@r=a5YfphVa7Y|- ze5uZ3_Aw)L0M7QFFO$I0^$@^~AP5~L!XoQ2;t&Deakx)3ZrcQ*$Yd}BblwM>;TU{W zV8&3Q5`MnUjrzs+5rDbmsG;OR5suPFB{F8hGw>c(H8e7eGMT3f0{AWY1OPWu#@7o$ z0PpIaB7nFH1?JErBni#PBY=A|@Cde_u3e6pl;?P%haAF$_CMeLh;U*(2M!@O%%^h% zTv@oa5-yybBdd_8l4qQt9b#IiBn?37b>FS~(rwSkNJ=&Z1St@|(~Z)T@e%H!8PY+Yn;qIYEg;Ig^M)Pol|ip>54N>M~0La}*k1Q;b*U~oHp@f9e+ z0c9BnD`7iCLRRuB+#stCe!6bDgk ztuMRp7GIQFcALs`b2f!Hy3)oWPxk>n-(aZ-(XoJ~m<<(@3{**-Ly2`$mEK=SA)j+-V%yQOFcwVWXS7 zqRI6pTKYx31j!>Q1iOBtT24L|yG$x$_8n;(-R_Jg$;W!rDPRScD3i^vLKHKp)VryU zpOw(7-l^Lqr^kenp|Vx0G0OyNr)La7?eocRCTi!2VCS1?-;MTpU)*`S+#r?fR+saX zn7ku?1rsj9$=@~vgwu^9LqJ3@Ha-{s6%1N5yK`Y6DxsU}Q=AI+#an%6#dA!N^KdLk4>{UCz`0e^ z6XsPGH6E&NYlc4!xbCbP6AB(G^LmsD{5jiIY+kOQQ>{OTz8Au%Vk=CA<Jj@m7VM z2`ccz(#ae8SuY?Ci!e3X1|LY^&n1bvUfz_fF+L{tbiAw|W?cgC7WCApV}Dr#4p&80 zT0%dac}v}@-f5so<=G_ky_zkau-LBKZtL>sCS~4T!Mv)U?C4LLKY8;-a>;d!W7kZav;xM<# zR^f|^&tiMGMuHxlaZ2P}x52AQKn*@d1(9LzsC9X@aaXMd{V=QAdDT@!SIu;-mnYU( zWVdnQd<-_UJDxv`rm@iDt|m}Wr}w*CFVwUR%qQN3dT+J+2c76P+BR(dRISN-`KCc; zsdRrVxLMP<37awAR5iZX-nyq@*=)Wc@Pj7-{Lrva@=#S~@*(IB`NzI-N4j2bR*}jx z`Dl>l)EYIIoq>l=2305#NY*HsH9C;&RR%zj*D&)jpqE@~77ah^J*xakuSPPWD_3DzdU$p^+z z8aqRTGd6O%NSLTjo0%*$HkEHAnRTR-yz>Pezkr#5FXk{49H(D|H#g)=cL}3yWbn3c z>7Wu?X-*AiKoh%Lgj0964_Q%Zn@anQQ_b7Maa9rwf6gA8RWo`Sg%Wc>G@fpN!dqAP z?V(5OS#5UR9t60XG_nsajL2TL&RdO)_&9jzKPYH_*4R!uug5fpEasED^+PTwn@3B> zu%pUZR!J_YemJk%r^u&5@1I78_jIk>0d7^sn`B&`UKSweuWUuG+p|U;qrHY~9~Og? zv!Z9&ptEWFF@U4Ml&-3rTz-Z`Lb>=1&4Ju{b}3grz|s{*9}XlH-9fe&8Egx`57VnT zv)l*i)oeDer|5}{R_B4qwDb@{WkV-jKLVYu{o3~Al4zG>USJMamcHJ={{vPMG1dp?0YjluX(XgFV3A`@_ znO3U1szADZ110s_$6bk<#cmqG0(HTX`;xReBVZN%Y1-#9@3J&hXD=) zNKa48K9I}>!xRK>Udb9$!5*^FtOh5aZ%>gSpmlqQ!=6{os;uPTn$V-gG#UJolsT0P zefsc!+w`Sdf)cEZfD+_Z_sb^J?FYZWs}&V=h+KErAN<=oVt{A6I2}G!$B+=<3%$e< ze1e5?TJGrhI2snn17N+qbzXX>LgC)mMwrW$8lklpFM?@O%x4 zsfe7g0`%}88?yKn1wb>6V-Y*-%@V;n%S}g|Yyrqn#fA!>y#*w47HH7I;s7;ZwP!sE z{sXRijs|Z@i4Qe^sz@;d4o|G<%qHwb$aC>5;vCnjv9TRkhqz(&2ID2F_a|W4Nszk`KL^zw@1G6T} zHIRid!o*t?(vyQrCiqnKU(nB%(l#Wz0It3#S90*|J z0wNo5keIA4YCj-Q+~N~p{^{Ln?E52yA8-w)XGL}a`6zO-Kb^`FdJmXrPj?o&Pf{z zOR5hvBj>$ZwBYsC` zOEzSIe4CS%f;8;G_!8SxjfJq3r>?G>W4~ZU&Nyg2P#5^xF2s%rfbz4&+Sy}5lIg&X zWY;6B>d_wSy`p3&_3+b*0PQ#o7_9~yEKdSS2kTZ#Wj|N6gF}Xr+>i-EFyw)fkZwR4 zQFh3Ef{!|!5s+fJB?o`01~Fz|$S=qG)bMcx(%c3hdJpir;0?l3N;`Mu3>i$Innm=? zreST^xS+Q=X(qiQ4#(%kaE_frGl8-1g6jTLcgBj_dU6ZAmQ+t%0F%Hg?d??Lxh?BRLjFBE)!v$be!9ZES#5GFf z+eC7pO+lH$%X( znp+7KXc8P|2^0W|w1OmKaOjXA0530DOF>K?`D-NOmyPWQ{~~7D=czMu6x6 zai_TjO_JCapfLCfTEm9PW8wD~DhRF9WBGcN{=7vi|zB%%gQRbB#;6@HU$~iO- zp2rMAc7^#HKwA@k3FWmRLM0mV$5&}gZ?$BuM%)s~bOj}&V5oTm zL~g$sxH~=FP4*ej3u>Y5x~$RmxMIp=Hl2^@Y&wtXtS2?Ni1TU*S1}+0Z#Ry8KtzoI zG1#GrE1?H>E7Szj{Vg5P_IcBS4Z9=Zq6c7^BD*mNDCe6MB0y($?TsMpl@CwQqERSh zvTmDv=Rhv@6oit2_a}QqgEeMmZ*hp9I(5LCvF=;z>;(g`|0U?Df-$z_2uwEYXJ)Dy zX^YJn4>3New8;@H7^R2mK{}iNimiv3Q-jH{nk?#_1#}y6OCDpW_fhU~Jkz6|P#yqx z0T8d47xEbguSNTn6Q*ep>Po@N5b;1eKL>yS(#QCkLCJkc;+8j}D~+WTWH; z0%DoUgUbCn81l$<2h8RG)NZTiofRBRM}tZgQy2oon6H-(;5!Gbs6U;$Pa)dl^mNJ3 z+X|#p+W#Q!-;pKfc_v_RFR%S5n&6%0#2@30H~Zhq2mq<-VkY%f#~9}r5U7$UUO*s` zD3N#>CS+UyRy0qW1W|+=wMU{t=Cl)R1SX-Ihsh(35W@%I_7|R2VZV>PSRB|uJSHcY z-$iD>%h6d_;ye!umRt-lWGzvSWJ0L}aNt^J;WFH5G#QWBY~$YLn;k~-o~Jzh!cZiS zESFV1nqeQTYTp&SNnO4O*-`7bQr7zaJGmR9=H_V zRnRD!nAL<^FSl;OkRg2UJ*xNEG)w@6S5sUkfK<>Vgl1Z;aliRsDnxE@P|}R>JOS?bU1s~ zAE1kt=W#PBxj0g>y*(17%)|8s!9*f9ybYoE;nG&g59;}f-MJMiPJ=yk3sku>(*{${jVUXc2odXxkbAUBe=r@yk={CY{?ysYa3G7)rGH@2NoZ(A zh1lSUL@Na*SX~sko}`jw(S-TrQB6l;ks0t6gY_0zl0l-el-lS1P3BkEb)S;^bcV@D zgDO`pR`h*>ZO{rQT694wxNyj6<31Fk-JJM=#XRS=(+FiGz9&28wa6S9Qy!5s(J$K7or~j;o%l4+qs}K*nBRX!B7XZ&sMnyo(#4fRlE384a6Di}=NYpO$%0Cxb z48fnGxTs3-VsWsTkd7@>c9OSB9YKJfNi9>itMN$Vo~Y9`7CWh75r z=u_lCT@Xo_a;1-yW$%Gjds+6vePq*YB%f*uYrau;Pp zCU>!-uvFd;a{e?{#g)l5^B5n;kXRKDI0^u(806H5M~xJxC!rx4Rv5X8!?g*9L?fI` zUgbdbQknBn&0QBm?ZHwQBNDlX0qiia);d)VouOcDbQOXVtL!;)IK2xaoH3jqk!yA& z$6mC=A_eyO!4YckKN2Bc5Fb1O5V?`F;7t;RlRKMFK@3P>bTj!$588~8F)Q~#aHHT+ zL=i$H7OHCvZe33BgGPDE%u8#Dutcm&6MKe(HviEP5t)trJX znRXss(22&fj5KeC@yc7?MdfJx#7MWy$sP{tX2-nd78o|zYiiZQffCKGU~wcDLjK5BCpT`1`>S!HhL^o+^LIFZa;Jy&e);DotbzonO$;U6GbZ{o$48G&iHn+(*tm zBx^a8nDG|_4~HKhF{(@h9rn3MgS1YfWTmJE9ov4{I8e<^4_jJAK7lZZG9(TvI(S%p)cP zqq-sYi1>l~vghxF?`GjF|FAO`V~on>)W!{5(#BZ8VWhhui()fOF|*Zu$3&jF{yYc+ z6!k%_Ua&n)i0U@Kp8H&+^CU6Op?J9R7e4kPEW+%9RVbzxjDo50-NYQHge9r+qs%0` zgcFe&{WQ%r*z-nA;g2U?G(S?q`ulMSZr{Vw50LaeSoA10UOHm>G$TnssFY2IL?@lx z3bQTp;}s^uxX?pE;4M_wb+1EKO$S)owYc{+s* z+Cx@wd5*KRn^-U_A1(|z+{+GVc7+Tw*1#&O(JRgz#(v$n%lWIgPXNjYCR;0NV}_ia z+DUcPvMN>(9?igj-=8WJd#Bi$o|?MKsOOj9O0%3MI``|Kd!A9^21bG5@y(Vv(;tgl zh4wrcc`OnTdLCEEvy#-QCX@klzFRy{t~qlU9gdyzpDbqzD-1%Kq+^r(!5?fF{&LyS z?WVKOD+`B!Wh)Lh^I=af`OeQD!S>ZodfJHCAno0AJUS=gi^ogjxwN-Q6uqwUa*$^{ zbtcQ|>YRx$^N42lqPQ2Sifgz}kTMqG&@fuV~H*=0yav_y|xRt_| zfzUttPeZ)UXvQnE42yUI|K{?UGyt+o{oVlZm{6V#St;I|>^CzzP3lu}N0v4jxRTkY zCk&qDLG{uNos;!gnIUNmF*TvXd;WsBZ|MU5)&sS=AyX^MgouYN+Y^5?0jtdjE)qBi z39>ponQB$K2KDmO5qP>#LM z8{|(4%VuwVFfxP|mr{I7JY8u|mN!{{4m{~$)s{dmcB`AfNY~qmilk5O2}12&oyXyS zNL^2otln5z8Uf`dIWS*2bp)FL{tINZc@ao@voYP_5o=|cyP5z+#OsE_ojRr07=2Ov zL#5Qf%D-6+=RjbjekX22YmpqGAta*;3{dXQ@_Iq+jGELb={y_sk`X8JLKYr8Wp8P> zi}^4YA`M(hf4Q{S79wFYV!vYvNvwrtm5>bNm}%U5mer0V^Qs-@r%6j?5Xwx6s@>1Q znCKnsg;U+(l00fr*Ckw0`r*pVt7q8>i8|rT;!w8&bV{A6Ze+u&&U=E{)^!2}*adXp zdPP2P@ywyX{5AHeBK6m(l+a12hz$}eDMiww>M1;6v3_q60jfykeprdrCh@{y%#g9c z8w)8Xurd-O)@E<`^$a{7=n7;-rr18^HMJX$*N9{2z&9D5EK?*xmdJ>&jVGRjo3(7g zVh_VGpkIMyD?~om%|)G9Fz3OV?6I79xMClkUa5|Bp&rNKEPKR**FD>nPwK>r!ran^ zKtLzg;7$UyIgERb{|vA9V`Y*vp*0ML*tJzfCd|4e5&*wS^a{y6VfcQjmdR({jBb;Ng;kl65oDn5F^6T$MSsssvdzlLnRT<{BO!|XpO~nuV0lD zV zG8kIfn7DDioRwiNdsUUr5}^;u8FD(5+?;R+oRwjlP>JbYzbZE<8>6L46T$DFloO}P()4gb~v1E4AqGVfp1Gt45DFmUrxIm51_l8jUC zMLEMa(;`Z^MZGD*;4>06{J>{rSPoQ@F{ScF89<~e$+&i$l?9C=uM&lc7jNnYi}@eP zo*{PBdjm$3tawUcoNg}-azy63@OZ+1R?o=Bp$iA@GjHmYy;_$3^?QQ`tRpIM?dw&*P6FAWM*=PK>s z5`9x|$V7aL3g-B~so%dqGNHoMzy75`LMWCM24UEm*9N$;1ou7@xaw;IobkaR*JLkx zZ*W4Nbp{(cH^5{?_ZKtJ-&tJ&}b1hnob$O`MkbtwF^fs7wF) zhX#T*G_7I_Wd?k0z{+1N{p(*E6#Rj*^snC=U^M|t;U8?u<>(I+IncvHtx9+qYo$y9hz*XkdqIw9B3>Q=ghS2H2Y=xc*Y%B9HEzkY9k zWYH>d?dx}SQd}iblIu5hT1Ms3zy6`Y2@n}r5s|kB8v7(AlU)D$y#WDHS|O<1&!v|@ zJ;Enc38}AiR!(5~s3cZGDSJ{zf*_S7G?HGF!LC#ZVRU#=MrdoUu6zBc4B-I{B_OKx zq$-h+C*C5AB)lk3WccP_k5m8phX$eIic>R(_PjU1Cq0qy{2vX99Ev58Cwgswk#SFr zC@gjA+`v*YfKYg)cKoPbz(1{$neFkLasj-6N(wr&&&s#eMye7u*S>yMPwg(wg#9MS!k4TT-r|$Kma)W|r zDv9WcJ1cv#{9dlAx%Tz5I^#eMmRv{3UH^{;xI;;v`q%Fb5}-~z)n3S!c2rM*1X9T% zJL#khJA>9^LDe9b{Z;%HTAQ`KE z%dhG%0A26;L9xNmQwiZx<%&qdsgj0c^sH>9b4fMbg6E$%^$1b)nF&k0O-Jqq4Z=899%VL`~FGA%oPiz-?+Z|bzjcgwV-(R+h{ zCRp$vCivr*1_@S}Wb7BjVmqsMAYWBU!sY0!oU!)MEg>cB&&mlZs;VTTg@0BSQXoe~ z3F}_Isas;i{?#n^^H3T5*dQXl&`OBLL1I=f4Jrg?RpQ#$uj&;Jt177&!#yiAntUsV zgeTiq^@0Ut3uQNdQBPQCtxetQN97Dwtx6K%YCkFqmbEicMicl|9S(NcPHL=N&rv;r zRjiVXr@*svf{2w$5}MC1%78PnWDX2&os}(zmvEhvOp#Z0I9Ph3Hev2Ps~4znrjmrG z(6cfr7Hy(}bmedA_fZ39lkiH=c%IceWE-d?BM$YfEP`2TDk9ZD-_))2 zI;+MmLgJ?{4KfsF&PKu*$&fp$Td`#*#bLVFkID&)VU6gz*N@5x)?Sq)QUmO)4D(VY z2^Z?KvN3}}M`zc*epY8R<5r6|L^5LE8jzZlA0G4TpBfzBqsN0*NT8}%bf>uH^_wao)iDvt zs((|@aQMy-E6Vk&dIoz=B^l4^Z_0p8v)VLx4m>JX7%eKvXl|XA$?9a~Gx3~rRK{w- zPetGBM`ff^RY{b>Y6WxU1UF7g_xe#83oWZ8;ZvNI(e6@7M7QZ#`Ciu0ESCNsG11=C zv8cLAT>JV}y@20NB?%|oSvkV4rILa!zO!;1SWmhA7fB`Q7iGveyd@D$suyJ#{3;<8 z&(F#QT!+P~x8wSCRL+o6s*;ihD|N_~N%=DqWz0Z*QzrzRCUX7j_Xg-YbWb43=|8KZ zCsQTF&G@DaOOx&{q$u1`IRS1@C6Sb;J1Qqw6jYKB;CEIokV>VJge-k?d}Ph@b!^+l z#(<254)#T&9Vr(ryr}@z0V+0fX+axfg>N29<%+{Vp zEx;}2kalr7oK`>QM}vSl4F*o$af7u6#@k-i1g~5Y&h=SJC@5Kvnk!M9hxPzshZ_VD zKl1=`ZXTG}gMD2UwCVa|yyox;M^Zv2OtRS2*|83%!NXZDCDhu~Pc>qL8ts^Bi5gq_ zArJ!5@;K-l)2ETm+G>5s$4XrTa*c%4*g-#g$`MVov=(lTUrYVJ1}r9%fbdwaUsiz; z-{NPJ+^$N*Ao7F%H|s({U;5PWPRI`9tYY?Z;yN$7ZQ%48)KMvZBJ{X*tXgwu{a)Hr zXzMz1VlMa9jB_{on}tMjOfSIpgu+y1{k5?XKRdJ;fvO+~a+0?v7(6K)$Xn>$DL)&u z8@Zw{R{T$p|Ho1RTK@x6y8EiaXo)K&p^(}1-{>tIpNq-f1UuJV)cAIjAfFa3l2-&7 zOIu)3#rIVB%Xygtn5b}iy5lr{1_8s5h|+mV*z%bqI|Ha z)@Tv-`?~fciUuwylB#i5N9OD>DUW-$YmAB3>?=JP-mB%yx8j6J`b^+mhs`EZw3) z1(p#ek`-^hivD8`ps3mfp04Z!B8haUydC9GcGX3dWUCobFeENp3k;HOm3`Wn4Cwxv zGQPo4^f19&3v$*je$Eh*c$%E7p|5|o{vG|3O#7f z1B4ihHz{76S-MfSMHG(+Khy?T2Y!wl8*Bguy?zjKsvp~)7=6u+|=atNVe0|r9o;==3yBk+S zaR0Ev@1vR-J$dtYjUdKtLkkT4tx$u7L&Etp&^sJjml|I~VrpC)ANA*(_?lo|5(bY*RbJC1A_NtVW)qB>(7pk>5{UJin6NynF8JYZ8 z9Xr#bKgXI6G6XWMD72IvT|PMG{g!XLN?Qxm6o#gaNm=4cA89bi8Tg5ruYl3?2 zmP(T%nV*25LP)GU2F1?QIEAO4rka@1R8~7&rWrj5fk+AJ8tSyAleAjAZP4hICo*$? zb$-o&)TOtLQ;&5x`zKPN_dVu#vcXC16>$9LcqMTj02XRhYc4_Iu3FIez0%xR@U!~-;TU>+7M1AI;S?ChR$;1$@pFq1$)Kg? zkqq3tn;R}YeTTXlR`=M5(Dgm2`~E*e>i*Qd7M!J6ErUT?-7SBr5RiPj{r-t43`GATHwP~VF&V`mbw+s{9xvm|e6$yJ$ zBNhg|6@4UUR$>r;Dmy?}1d1g^9Zq??T3WfSHY)FvC*#R>7FyD z$Aht?Xe!|n0yJoSb4x%jrQ_B(ui0NN0zw_>MEOWL5AAMLpVr&W!eEI@E#gt^m}Isj zi`#0FSzdKDF`8kX2bjUazi^9D)Na}ifzRr45+rj#_P*$r{r`wVFdaGq8#P-R(76}P zv(A$n+^MG=)?5ieTOf9D!iX^cYDw}>z{gfT#ADYIXeO(f)6*&nqg7vc+~DDCkgZRQ zK%}?sOdoqg)Ul4`G}vNA6Kht|Q=_NG+g1K|35Xnr1UiKnm%fqxs0MMr?1lfI9fo0R zCe7seX-|PctI72vAX!?#BNqv@e4}*USK5qrmQeW(BGy}E19YtG8Gn-2vll7X(CNoL z&3!e}BB@OZ@e>BmJ#7+tX@&Llo4S*%cm)*2`A>`hQf99HM{71Sn$KfdX{aDzK8YlHE; zer+!h=6}z^v`SF=1m!yVrAguW%b;}GT?K&UT9X3+?cM;xq=FD)z>S124>i`A8pohm z%dGz|_IX3|%5yo&QI($P3Q_1ZN7I|?Y%Rblo|_*nE|^yfc+llx3i=7S_o}FQjI@K7T9CC4;HN05Mc8l^qe#@+F+; zdIcU-CxuQ818;>yoc<>M57(ip9j<-I$2Mz`DPXt@rNrU7ziPxnAiaT-Xc+KbS~6!( zI9!6$AidxVZ8|>&>t?f)yBusl17sH>RmqYY$L+G9`zy9?6l}E`iJYEkKOH@&!^r9k ze$NzqpJn}yHZdM+d_?~Wc?Nz){N3ayHe_Xk`)>I19_DL-67I`s%_(-!kjyU6%wlRW z^6?e9gU`*HQu+a2X*v$T!c)C=4^P*`69QWSh5W2@+)m2**8nQi>;0bQ8%|sPneiCa zE51EjcTELmwn9rCd&RDuFe0NNp68%^UN%g3BTJMZ9wooJF6eCb1(0#mvbHP$P3yv1 z1rk($wH+z?s;t8MJp+yK@8m-*XWQkRfc3a7&+b_ZhhZ1YPE#RDev!oq1wL`~?%h*rwVd_Hp?H?^dV@xiS&Y_CSC@myz?ZPdWb4lgMMn+=cL+58#EsYp8 zP-R}IvJ$QK@fft1T>dI?y+eMczn)k;0yK_XqTl%S80&z3Q8ID z!99AX!Jz9UEa!@g#5&=OSp9o)6Fx70sL9FBgTpG` z-Z0VR~%nM0^@q2#Sfd5tPBh1bBRLxj6BI7 zw@FvS&ig&GXW5(a_gpZAj40I53P+GvWyyq*eNQJISWkxqr75X=8kcZ+q8 zf33X#6J#k=ssH>JFhwgd`e{A2xfS5W9moEAautTkMh){p(~0GP%#Y??3HpP)MLFe~ zXnuCz?h4vo0BuA;GP%s617%%1_2|@B0eUTx16tN_zE~x-nbWzm1>zOO0X^)RG$<;Ds~I&36l-d8*OJ)KP0r3+~p2#HF%3aG9B-K zalZC}U84wr`v3WbkAYAT)fbli_ z7y_~-q3*yYWCp$5HV#(3Vy_FlGy&!=5AEvBCL~gj(BFVsx6A>VLa;n93yx_-mpH_b zKI&N+q{T)$vqk$UviPVupy~fQ#3Tc|2fo6!l1Kf=4p4guE6j}#Ut`#f%QV^1GF`Rp zdyA`+f<&u;?Br(M)W1Fb;>L^3yQqCIN$QK(kx?2>A7v~UwXaH!GNRm6<4Qr>liU!d)f~0@X%;b3|#-x>HS`x+613 zGkppTQz(z%-8?m3Z<;RH{-2^13@uNM9{&iMbS@*!Bu6d*23*mq@?ztlbf7b|gcLQj z36tdk9@^9lh!m>nh8Dm5?=A3gsHa!p`J&EDWiPkbP&>rI~tVXguk0*5xW_WzU25X?DnCzNQK zc0hw{SE7c-%$puZ_q@?kuM3zShuSwSjHG%6EvFMC`E9cVTiv8W2$GLlb4?Y8)r^`D z`aAHyCDCa8Ej^6^sX)4z$Ts&(s`Otfg6vut`vupwugljrq9aEzc;u`ZzK;Q*BBEs( z2cuS(>sJJI{u~#Wv;0?yb6ioBtbfbs;H zwxINb+z+4`DwYSJ1VhxsV0-;4L_%=^NJ^4t1FmX_=Ys%;U|nYprxYQruEQWvz95K9 zUAJ?I{|+*TkSe_xCOcKE6ePh8blv?|gQ1CZ#pf_cLcUduk+cS) ziH^@8nz*x|t4q;-u9D{LKD8gz)J(BNCHzUK_-a-mv|RV zQ&p~yZ34gq`wg;~mJlM+HwE|M8{zfYMC@Q$IM$_ep~I_QBpG6Y~1v-2`g{$SAUQc$!n8{gy3 zfr0uB!rPhM@xo@}!eJ~6X;w|_&4$ON=1f@VX z5mTxkxYxEImj=ocFi#n*PH7$=Ej=V;C$u&U#mLE>eSO>J*3!o5iKgrRCo=pZ0~irP zgavcaVs{*OKA`2&BO@%!zAIP5mk@~1w5>E?k`PL!@Lm1W*YBjA7CA}tUm{xuv#2co zT}xgH8Qe<6O7p>O5;$UgSv_{Wij#U@48L zA#1Gu2qFnb#neW_@R!G*o(2VKDcr%phoNeb$d5vj83K^*om>teg@XT-pOa0b0JVn$ z39G0m*TNWL*rdqTB^w#)U^Nb`G#f+vH{{(hFW1aMgn{!sl)&7VIyJ+>gHMy2U8@e} zie4`(5C9RcWPPu;?#+J_sMl7%^m?~8 zFrJ&YPm4k(E0b*5Rnk{T7hKAB_^6BixPX7I7M}=&xXasMb_P)^oTFX?KCa*2aj*S9 z{GXM1et2A*qlh8AFGW@t<+%A?^@`f_-y1*@<6TEw&ZE4Q3|^j8oqdAedi=V)Gwb>X zEZvIyGh5W}f_!U`d(_(UCH$jyL>&=gnDeZ6oea*km70BH4i|CN5@yFy4j^nlrv47yBK`Mi7I$wSPz|P z9}oJ)$uz*}Q*iI+dikZ%V^*=_KAhFx#6vf*GSXp&!(G_sFYgU~c}~U>Fh5_@LagNU z^A)hyam${F9}^@?9Y{l5^$PFUUcma|WW$8Bu-RT9DKp&;pAoui{aM~~klPoY>|&T} z*&4|EU|x$UsbWZoG24=Sisijqk#0|LH^E&kMr|!jNMEiy=c(3242vaNfhSFia-N4U zz}{2ibsfsmxt$)()ugjzAZR0JxykGbilVS&L$+l4U08Yh1nI@N`U_R{Ir{NaRM-j* z3h7{9FC&Ud%wR5&Ylea=8%1+<+wygDBJx&Z7(Q_#$*v`X`H4+?i*1kAs{2v7CJ};b)IB2u9^!B0GPd*ro`NZJHuG@Iru*)`syxDc zKUVJ|ZNx0iD6VNTmtUHmukwtYCnsSnKSmX}_|;&u5~6C;rv7#WIQ=5?Cg<%8A!dI3 zkcDV6NEe$>*0$Z^lf+X=jM6jnLbE|qQ9Jw-s=_L}my}ULmJ_dFf9*?dkSC)wd0kAq zmBG`4%1jR0C~RPYYHhxR;tZ8E18VBNc=mh+z`6X4s6%I98#z&tJFiBi6cBW6elL^n z`JILkXc5r?#~;Ayu`!TIbizcBAGuH5?Xr{y$^8=Tuib0e5A;;Fl^G3UGIu>73Hmb( zxJpfAc1}cj4J1_hwciKBvEGB(EDR%2dM4bCIf))`MwUbpYr7U9{e;nuRd*GF{DTo29qiVimud=Wc_Vx1RdAh?nn8|@E*K1ppZ{FW&2BU&@Dlx-Cf%KRo481d9vrP zN830K@=r#rcG-?;SmK5E;|Ao|kySk70v1?8GH2A<@X1Hw1il3i?TMr1=jEt{{d6#c z_teSKt4TVMm8HxTwW4|{KN|I3ZoG005;J*$vG;%mAscm4RD4*>{R-|7thqY!pCFF@~E}gtSi} zUr>6yspijM>3@V!E|?3lZq^ZH^04;w8(DvgU37!Q=A8t~2HhcXxW;{VNZljFF(u&|T5! zP##dNYN>7io8-c}x`4{tb1cLwnZRX5n_t$ObP~TG!avM2RtF7vNdN~bQGP(tRg|Wg zHm*0AEX=EmFz-A{;EI9J$JPW7;N=CwK?B)Up|cYnW}(^%waz7dR7&gAl7yeZft*;M z+`0U71Usu{ASYAQ)+v6F#TLb-L7r$s`LXWJV7EJTbVDx62brP?Q=FopL>xId5uMu6 z8HFm`+gg0NWNITP@y{NBJRSxgHZh~6MM<;VC#^<#*%GBVs(5toxYVt(jbKfXy3sm}~9~uYs9eHoK3u1(Y9DmFiQt)o!nJEF* z#%Q7|fvwZM-Cpv`cbdUo#SkpS5e}Jah@GhoINI@>03(0t)SIKJU!n1r4__ zEjSoHyX&{#q95Ip)(jaLW=M~ClzeY$gJSy(nkYoe;%tuZUGy$6yrYDueYVi0$sSaX z#)7f}E3;$i%6*ar4hngTRnX`R5#D%=q&D#zw?oWSrrtzT`Q$)6Nw;{KP%7vgp?)Wa zw%NYvQb}1XR)zc~TO)!=yk}6Ql~e&^n?B+SD`oZZ3usJ^mch`vI2e z#tR13eL_lxQAHvw>oL6GuhJ16ZYP+{$sX(9x!76lxP&9KKe@9{@Q9)QWmjNhZw5BYtc2 z=XcD)e`6aBUOZvP`&MquI`grawZXhIx~)vgCuPs2rkOeD3HGWwqDzuN!8!T^GfW2i zn^hrZ8mStHHx1d#x zjYTw$EuP2T-Yv!{x#WOU4#XX`1t%6xI1ctZh6JD(V}Hp84pd z{%+?ybw-4*&HkT!`KiSPxy7i)c_*7*;gyl+#30*ZYb<}7Vrdgx_M8<$B=#$3GSBWw z!RV-0eu6s!H`9dF(Ser4qrDjyEEgW6Xd%!~CQ)DMoZcy$)bJHANE~djFmh>BL?h%Y z^k6j5UJfQ#ijTu|>@9G;4OnTlQ6Dtvn$S9FjNerTn*`9R&stW+(+QsL2P( zvoLzD(R2&MXbNf9k2tiPZsja!Xv>l0R}aKQHOUX5Y4aO=Ry}9YS0*l?XeAJ$y@GT~ zwuI^0Vr&Q$eGB}R#8x78Z!5}-S z1dEBKOfnGBk*YbTtcVwu&K58EtAkBZ_HaVax= znr=K!m7#)#UHxaI{OJQeER-(bjx!=3EbI8 z3W0-b){0-oR!}AW;!jcX$oM3Gq!n?oEIxYqhsgKb07j_F73<*GMZh+(nRv***aI@1 z)HAg7t{E7&Xbu5-_45!1D!kt(8xmsi)Qj13Zlo+o-?e6Hv=OCBN68=L(zlcGFMpF9 zo8eE2Q_27o=VU3u`n2_=Y2G1&5^HD)S#Kpm_v1#U>(4Zr`AQr(9`DwVxa(c*SD}kt zKqZQh>H0+^vRZ#u{~>>m3qNC*gRgFlc@YtneQmRtat1tqdzS4hyM-Zl3!8jS-KfrH zz2Qcb4mZ1AfRR)&f-l?L1=CnS;(4eRg3Sb#Du$IdWfiECKl<=PE!&4hMF;j&v9OTTWf2G_}On;Gp7N+zk5?R9rbgc3>U~XIrohq7R=xi zp>CA_G_mJV&p7I{-!3A9ySpnnAAhu{xom8beTL+^z}%{&m@%qTzldP?cdtocnqIGC ztT-4F$HZf%Dd>Ppv7}L=pKDDT?52Bnjm{4Y&imzc{ZsEu8#nXbub57;60-CC;>Ign z2jbUjW;o&fdXbIK6K3NTbbILPj*k>efuhq!ywB6W-r8b68rh%wrY4(}1NuzUQlHA) zdbqE-A^RTN&3Hrct^TXSukyuJZ(eJ~2XBh}xgAGWh!~!Hu9r zC}fG@s{3flcb?->F*~7{gj%bxpjF2@p&3&Dw@Avn+QK9K*LQhkc70n3g&^Czad!?S z?~JaGMHz7)iu-AmC%+=MX^r)?EiM`gEZ$rPriUzJ?}z!PkFcj)?}x)IyX5>h2}~i{ zY52$oEMH%{QgIq!X>Gl8AEC&eE1_Xk{2UMY`}<=36~sN^nc5J`!se=|w^EwLGRgYW z_;iZQdfY5V+>zzo4>7DBdqWkLw@dL{HF8?l_Xw^F$9k@Z`X?Xi78M(;UL8FK^PR?6 zTm_DjDmz1?>(}lyXXcuz={J;}%j(v6f5Y>#h?>$Xl~OT}jz*QP>&A+I9es>oE?@o| z%MLw`D$OD%>+QepR>$pKykeT$OwN++JDs+s^JMiQm7>2h%LkF4D?MJd_#2<0UFh%r zzW+sWD!&PnLKEiMawSq@toU`(>OgkaGSD3~iSi}9#4O^trP2ZF>IZzQ3BB=?%bISR z)-{y>V0(IFd^&#Y|L4>Mbp6?pa<(EMkxQ}-)9#&UJ^gqP`TObi%a2DN`9g2I$}F?7 z>0?Y-dDAa=WV$tMXly$mkWYa&up!PXq+6Gj`)iD6782tja)hh={_JoQ?^d9XN~4zU zE#Vj1%U}6*C5p5oJA4h=BO(T`vM$T%DxbV3fqL;yv31Lc>ggZdCDW3h&ENwj_x?Y` z-8n`&D$euta}&Y3x_>yV6YKLbdSQqRARs65JsqfQ8d6R}%(&ZFy5qc0zBl*RSM?CW_rWNKLQO5yLw*@KFDbfvHRbYwtf+LPhdni`wd*8uK!qZ|z1XNimvi75u#( z3)=&78el#j@x=xH1epAOZzKhu@IJk;)zFP#5ZQkZOKOJgetXKOSa+y4ak;wCS1HBj zA#p^?NKHHcxQ%W4(4jD!r(>IyqA0d3VK#1>E+KgJ%TVelsd;=U&I}r9%D1OXt<$@_ zlb3(XXkPTPBa~Z>e&b#r<+fRIgs>ys_Nv}i`CeLI0MASEfk?!DX59zhkZT=JmVUHY zo3e?NIDK*JkCu+wnZaDtJbh)`Rb7Dn30Ln&Vq#>J_hXAv_)*#-f%4GqOb_L_`)DJ? zpXKn|a`C$B~7nw%g+fwmZBtq7V9B!&?>e$g?de`#6Dj_H-fmmR1qUS;0lnhr-=HxT$ww@n1uyL2}AVJmixTw8= zoP5t=vav^>Ww8Yu!d{uWt=$@Z^H4FatuPsMDBhZ^OMb2Z{EJax9{jcfp58`#n}skP zhsM+>iv+1#PKzq$t9M3a*;o1C?D<86;_#~jX%#oyzb-+D?qSr|2cG5-lX@dS-R}S# zS2D-!x$@KyqkUz*m1XQD&%!Oo|NVo3ssFD7otP(m z!*Q0vn?`Tc#j{%6mATkcEd^Tqh8zQ8d;X})FR=#pYvzAFx(H5h-w0AFf*|~K+K)+( zm3V9jvu>!{J2vwgq?xGwRX2^pmrpixzAvQ@D^Z)7 zZfuC$_@0yTc=J3YI|nZP6wL*Z%hSTd>eCzK7kGlYk=s1(Ukp)NP&I*gs;B&;Lg`1D zVRRcTo8z_n0L2KZ7W062ynMlyxO@qH-i^HZ8uR`@7&lH2>RMK+ck39kCnO()b_ znCcJ*pSDmit*J5#3h_3n4EtAis#cJe@!usXUS@!dahg_glJP$+A}421tUgMO!c2A2 z@}lI42lyvG-Vk5XsK#_C6(zv|+fL8vihGT-CZV_g9R7QuH71S!DolvJb|WxsC~{`? zw|MH+8hTVw?{cJuJGXc$1P+{&z3+;;2-2cva*L*t3c<45cGpR%^ng`_)U*Ri;bsab zHLII3eWih1YPuf^ik<#y?wHx%&d8Y_V@XSuHP9%Yc!z`|vx$=up_lRhMv2|f@-hkH zA?bdDo?ase{G$r4*|A20gcKV77BS_j$z2ASZ?mYoGREV2RJb!~rO8}BgUv+Z-oOZ$ zm^VAQ1Y@Y&YTcvzI#7JirRYDXsmo)EA90lkqV-P8eBOL;Nm|$ZEMmIuAdLJj9%f!T zI!MF6hW5iV(N=yE=@)IC%f)*ze2!!3!Oa2 zJd^>%eP|-Y$4)aZD-p1e677#UEEDgRe*zZTQpQ9ti2+_R4=y_m&CMt&@8S-=f)m3x zw=`(-d_#tF0C)LKiUj7!a47d#DGS_s7S$o6&R$)GCi31u8lih#M%xFCxt5 zD#WIeKV?x)5SCSt8}XnfOq(NJ9IWh!l5)=+J2c(#vVGHBd^MI$Z6h%DsPgP|J}W&H zti@bCG-oS>w1=ARUoL4$uj_!ZN-60a85tg%$6RJ85l)L z6nXgeB^28liB)Wl{5#V|hR!ZurlcjN7Y>Vh9_2>jbRmf+_PFE`zL-%+<&{rr2tDxXfWkOVl~>(!{zThGgv#T_tn zpN@S3zyDQy)hc~TisgfBnPLF5cLQzq*NJhBmVq<2TCFY+x+3>k>$%~eXdvr$Gn5B& z1PmO-|Kn(Jm;L1EqB2W8woL}h&J-zvxhXn}q40I>Vl9pdU!x=0xogG~VSNEJI3Xal zhE096T)6bxNq|bXe8`xJ=*my3jkum`2i-`&1wVnvAia0nK0nJ8bq=X6W( zAIW#e*Is7~v!Nd!65-XohH^j81H3(3A6M&k&Q-iM$TMApz9AKi1-!pNwEyyuWL}Y# z2!s&Ujw;KUys#o=2XhBJFF#H4F1)A6hG!a3n2Rqc6kCG>TeN6{@uAdw@dbati zEhFR43e%gAhZ??298$6KO}o*p9w&o}f+T|6QuLA`hYrv&qE?TYZepCcEz>S)}*K;6!o6v^}TtNak-@t^s-gvZu zg)i4ZV_zplENoNW!%p9b-7pqvW0U~H4!)0#N}Ik))ou-Z`pIArp_w%H!ac3Rz#Y$c z0M+?S8smEAV#DUb?pFSwFRlvj&EqcB1Y&NOqn*2w?cmKZiB6^yyYJg^QqcEky>I=d zGy1L`5-7oGvUd=W^%x^1x=3ohlN|D5n&FBiwUjSedVFs$6^(6z!k30!PJRv6SU1kecu}$9uShsOu=V0qH!oL0pFD z8HFc1%%6`io7ykV@ZyJAMzZM;|87Ng<|?B^{nT?3NWfy6Gr0PW`ydAJS_ZqX8Xv{< zTaJ@hRYop~LW!hy(@t}X_K+V#rNVfgA_s-dJ|UiN*PSQgraRxx+g? zKl9k_C&+eNSEz*eu|H>lgl2op&iF&tzvO{l;==Dc(bYGwppN{v^dT93earrHzSJ;Y z5js!Lg|X9VsdxRmy&yuHxKHq-Y3@-TdcZ^LtD|Ln2;}m9f+*249GN6o-oN-Mrk?fO zmiF+V^IY7RHhs)Up2VZY&GA7$54yKac(Y)m$PR^!4GX{ER@(AIOXy(Kb{a{TX)u3$ zw@&m5{!=Rl|E0XmHr9ycDVwCD51ubOJ(g5QLaHt^{gd-Ikx{vpr5L1q>$48HA8tgk zx4wahIj62E?%joF|K`i)NqjOWadUoJ*BH;q(yVYS-ulOy#g_=DTSgl@p8?_S{VeY_ z8?QQaS48o=^1!>!C_MR)k>vo;L31s5irGjmMD5#VrT(Wxd zC2O@fN+n9AyFK&Bps6h=?j$c3alSedFGRi4hs@sM`8N~y;v);$am0_QgMTxf$A7xF zFztd~7G^3Z{)I83Ns<0J)R4EGj!>~Xmdnm*0iJluxk$F4 zAusJUQRT^LpWmu}5+@NDOfaEa4E|QB3Wm*8Lz=4Thd(VUKN^gelTm-QRC?6(u$i5G zeIdPKPifhab60(NW=OSBY7&juK>ccW+ufqukFa~Qkft0dqmeZYc}ZHjiEH4ue&$lh zVv$0c)2cIneh>Pg02e!qY5TLg-z2rIWnR5@>pD91Z5iSv zsj$gIu6F5&lFagNXMzVX^U;RxUT57h-(wUxQvm_vt-j=Ym*AGMiiAp|$~;l=&WXxM zQ&GLjqt{+A9%J`-VpH{>kuf~H{EUs4jFsXPSfdas|1DcWhW<2cFKNFZ4WSPhd2{6+ zJ_alaWxd;>6+-Uo9oX@!nx=% zl3iL8-X7M_beA}amCb}Ro#9KuY!Q^ljeUsqD)d;l5@WT#u@2zKROx54^l4Oo?fJgD z*^j_-xzGDW`%5K8$qk?$E$S)>U(V^eX(3GE)0RJd=IfilvR9cy^m^xW)51nL7IcR? zIcAXmNoVVF^C=bT$gFUBZagc0Ylf}L5T;vX1c68RL+|9dMC5jF#^l?{@#MkyhWm^6 zH~#s!+`&{-9V8?%hsPUX2;b4|ziR>y zzRq7>oz0Fr>^z7znsXxsND|U0{u+?(^V1(XdE#KSB0W&b2P!G1KHXQnW`7(#jEsc36H#Km$BEHco@mH*>d5q`iNM9Y75rk9ZRFrzFvo@PoM*YQ5%@Jz| zIK^uOG&TUyT$s1Nstf3gY!Wj>#zO3fWq%n&AB)~SLX*@as*plG;>X0DJ(7$tE;62buewlAF>{*rZR8@ihOjn@ryiYta{ji@9EY5|b;H&0E z1Pik29)^JpR|}ujC$N*-IDi^(eW50fv{k=BSw=#X9}_T752LOOvW@;Uu7hp99|c}Z zjgszjNAPhjONbH7=s~c{$r(N|2t+istPB*n)p1e!vO7OUlkKre^k+uWnV_R{FAs36 z?woi1w1kz%79TMpDV1_8+l1{9*I<05s2K0mCLqyWDwe8OJD%x>rdC&-(HpJvb>laL ztLDss?W9L08Q;N1utL=f(0nDB-il1u;};f0kjOi!s8^^ZLv2YMXxQfFh9lSYiub_t z-%%ayqwA`(YAD$);#KXx(BF8z(w1>S7nB7IB%c-}#(}%BTqLSVa;nxD~BjE&=-J7Khq>_A+&L_@{yrfBO$mm22@Fd(WPqL{%iI|^K3 z#5ZeUH7h7XA{{0wSrqP{oC&qPhy_z+hB|u_|M;e{>Y*sM>n$+1GpfpVLchs^38Rc)2{zLe z#wck){1!@sPU#QWcr6$UPiKAUg9MuXnvHHo^BgR0UJ15J8P>PtC048rerb5i4xKDIWOk^n-9Is`j$@kEY^KHxE>hCp#b}(J$oaI{dX* z&>%RUARd`@+}r2F_se0f#OFS7-SXg_cT8ISZH(U_$KD+eMb%>uW&(j_M7wUVm4FD9 zM^Rdz57N^Zy@&PTAKA6Rd{o=_3aAqc+mfVJ4?lT@HZ=GW1)d{Mvs{;o)(1aldHx}# zUwOb~IUK%py?Z<#6bY3#TdJM=HvVIApQd{wSuomYd%N>r@6DqfT{#kB)gs-y9*)IZ z0dwmn{5p}fA%G2)%Q~=-a<0l2{%CB2+567rOhE!ID~G-L5cSTo_Orb2QRjEJ;#r+& zX`I4aoUY6P?J#X5&cnCmL!uvet)Y0?2W+^oC9 z8HdvP0z(@2cetj43f{+~yimuqg|(jGZ# zcFMjpyJ_+fWS9Vs&yMe@^4dLYwvR?Pt!-MFElD6XyLjt^vCQ0@DIbS+Qc>NaUOv+B z=4wg4w#u+KgI;p7Rzj2cbJ`CfOOuz92@%Lg_PlS^m=xE{U(J#l*tc2c-mMaFt9+Ji(zdBaP2GwjasNO$u6wbo_U2%Yva=Oi|%R~#kmFFr7cVkgG6;8wz< zKi0Nm#$-nE1A;EbAKLS#RM^)1juk<_oEhURgVoT74dQ51u@TXlbmGOUuVIhu$N@=x zq<7m_fGxK1GITNJ_|6}Jnbs9$>Iu&0hcZog55q1Vk3Wj^Zll3 zKdS_mW+8*#zTvs7fWfv(!@rLkUz>eBbnDOD70{b|#x9y0U%pW#PYE1{cgkEvJo(eh z08c4_@IUeY1R=h7hF9JnA^g5RPN-eU!xf7YB+Y|Y@^_eJHH=aw)Gt`V?$w=Mju5A} zk(E$PLz(rdck$Z%Cv9$6{+k82ox8pBqObquSv*=s5E02X4>%i#tML2x0MVLdg6MIg zFQ3qaa8KQUa#r;;eI!$!5FDJG!)&5&j!F~fv(6%NFLR2Bs;>igVBj}GXm^U7E&s#-2Z@BWI~lhZ#SlEEbUNe3^!{%s z`%W>+6xTbRz;(bjgV2-wP6N4v$wRck4_UEHsm)|QbZ9z$G+qAV{mq|r#qJ4~@6pM< z6dG82jFzzs0lb_yrt~2-=5V75CF(R)vFt5k z7QotE1lwTDtAIGLVfCMzNbyFEW%7mg^1*Fv}jIweZ_LsRcPxx zZk9G68uMo~Lh`R{lQPow@Rb&%`+}KBS)9|ABzE{5AoFS-hB-l1VmHNhiv7%>1OkIT zhiJ7W4yoS~33{1LdFCG04-)Y5Fnrothi$el(%T?J`{DGfV(}-1DYzU)Sr)kdCCm=s z1a6*i;IKlU$n?_(LS(?_+O*fUyn2x-+7WT1Tlc&54tdfm#@JpkZ*^ZvS{w?w<)$?0 zv}$68E+Elx!6KRcwyJ8pMgJl8i& z){$P$6?9gyh%)73;rr#zMy`q`+rwZ0-Y>u!YJzx)dq7gvc}v8vV)rblbD~crF!Oe4 ziEX*_!{soxNYYt+#`mhhtE+=W6ZW5C%P)|k;cCOL321{4MzY1ZoM+$FM0A zUgH-Qe}YuWi|0pc6AA#owOduERM`&V89b&v&w-?IPIS^NdrdWImEP>u7v95Vrt
tIjj*1wD@HnG>x!8W3_rO^ej;c=9_FgtPrhK59|y?Owg-i$q&QCF5uGK9|g*s{`4F~1M)Qd(r$ zN5+^ZYRWg;=4KvFT1_b?Xn9W+E6S*%Nm&D zGe(x^YT}6XPdet@K8aFW9IMepj>xh(?Y<->)JnS;kh^1jZ4l>AX7_FyICM3GrzqBS zfn;r8LPKGSE22Pi<%xWkjLvE3$8CeMNB{HCeWkkX*`kc#R$dUf44b=V#NVe*!i%TDG+r(}*l}G8(I#?+h~RuOZ$==|tmq}#5A>bX_Oe4{;9Naz z)p{k>sJ-$#PXH5I+BoeVPM7`xcrj{w#)2B0XiGKYTHVSw7*l8hx1|^%sU_3{-KKGV zW~}{fMI%!|+{8V^h`c_fhbr`qmlw+57o-J=+=*kCcKXj+4yB5GMXL#;scu460-|(V z3!iL!YAYe^bLwyK3@f2FUxrkJO~7AetIv8~D0{%)B<1yB=;|~vl*9Y0i=lX$$$>xa z)W1%k=}jVdFlqPt@qoREBjdddqpIPL;OF(H8J01nAI-N+Yc$BIFTw1LPiNvfxrS>; z&nxYM$;(+0EIq3l5zMW-$>t?O4R@S1&reaVW_(q5K#<{4%Bdijv~s+X5B>kCJJyia zY0YvV&sY~SP)oCMYnhhxxy(aN=b3yyK_XiQdoW{lUOz*?Q->e&{2~9L4usF-12}z< z{|<3soL0?eXlx)YXR@VVO`cDk5czZ%?w{`29n0yNBm3QYJv@QgH*ZwVdShPi@$+rIFMNKZ;`VIbx*f3V`?FoDaOUvW zU>mevXaom6Z`H6C_|w63lb)kS*f#B-EFny0K3~9%+M2YEwe0LdZh%7bVHN?9_poE< z3MMMM;5)VTK_Rub{L*)n%{Nc)01QvgAqIA7ey)8J{3iL(U>CB3+M}gEjDp<92Nt?C z+U^bkPal~W@bs}UaDTG&F#E(FBc9VCkxFIsh5Bb>>zv-d&>ErMr0twwYhl5n zvHrwD+@Y)>Kzqh9ln82_FO%{a8o&!pf1>c+)2(arS>&0Jqfo2gK5|7PdalBMuwn%_ zc;xd{a=_U4+9ZjA?RUfIH(hh(+0`NtI?%E5*N03nw@DBGwMZ27QnQUl%4cCqcucUJ z22tp1k%YMXyi+5G2Ub$Tj|j|W^fQmII(T^SZR@KG3mYy;;rzh{tYrARvbbt^_>(w`;K=tzt;EsWA(e-&TfYLmRA~2>u7V>6;*S{VB zk~B^u@MAmdK3%?w$YarM!zngC0>`r-WP;Jhu_2%BAfp4v#{lFNj6~Z^_l;X%2)}+- zd`xX+d%fFvcqjOj%f^eR-6 z7v^=dGSXn{I7yxJf{St0?D5BVs#v7UmuO&S505G4Cz1xwU?lN0iGvmmwM&I26P0-h z1LVnzHj^NeEj&YzcAEkSf^nP;R@=&8eloB{dRTdYeQC__4Y_pa<50@{z!5{4>Hs8+ z+>v(j2MvS2Zin&I=%qZvU%a>%a%Yc0#ZKsl_wkc8d#u*iE7B{Zx70^9S?#t4@lXs* z4^o-X{?=0HFFa|OaR;T4cdp*85FoUmX^VuQyFY&ONaFw(`yP#p2_%I-FUkC5!A**d5@d=dbD zs3?tQ`gHF6b#`YoNm7u})a9@+j^mB`sRzv( zO9Y8l{v(9P4^#IprTc0*?6(hxcHHxJ*jo5k;yDmy`%ook2wzzu&G6oloS)Ii=};Iv zzf-xcM36J|OdH~0V63-K z%*%nv{9bZMgC~kAz}M%%p1nZ{bBVebwhCL!GL_I9x=9&v!A>Eryvk{RWs5P8uA3?C z`?vJOr3iz?+{}h!LUBZKtZWi|;Knd%;^ZdYj0{RR%#p0sa?$}?_Mzqa0cxAgJW7oq zY9j$X*C`gPeL*O|?fGCr&z%`ydzR=11NgzG1L@=BB*btX4)%vb3TXExkPEY!0&X*9 zZpFv}mxR?mbrTlRkgN;=6&Fp&L*%Aeu z_v%Xkap5%;>~H{F_8wq6)N(Md2d1;!yYG}OPSQQL3BLD!*KBpUtEwG$&ug-G3^Qc`o?_HKJ7J_)u?@U%4-k4mPq|*8En!8SStqFPNAW4&<2rFx7ApHM+hj?E4X4DaA)73{cs) z@AgDT9T2G^agMI1CQn!vhNx=>1Cwin#^jLW+Fibdd$ido+PhO`m-yLC;mYY+1FM8{!#W*!pn8_AKsVaAdrdmgWvC-gPi zd_71QT8jj5MXa6$X0~UrK_Ga&Hx?`&nLTVx>susrnbFVsR}W%cy4i)mTvWzkrs?7z zDbl0NZb25^wz?fIJR@3=A&Edk6pIiU{wT|uv*5fVeYlpe4PKJk=_9S)$c12<`6@}D zUk~eRV(f;?S}7X#605Ie!TL30_Is@+aH};jU>_Utup_p^!fMoKGmH*Nr2Z2Smslf; zu$+15`>r5trE!#CqH78hkBv>sYpC% zkDHL=Z`};mZnwnjcl!PeZj2cnYs11z^Nk8LnvYS?O!J4sj1s$oEOTrS#j@U#>1+v{y;AtKO<(lBAq{44C9#;`;~qe{7)Yv zTlkt`P*v%#M{8pnQSv+;7{uXO7|Px|GM-rgMBjzK>@?825!mb>Z~aswyq0TxHbe`D z!^Cn6t`kdb^&a6aKa9CH#|U9=UZc7|j~gSUy%5P2n@=W{*iqf_QGJhF^2N5aLtndv z2HAvf@H6Y#azpBt_4^453eTAe)Qn_KVuBbsmEn3HDf0|MHKL`VuPO?aR3lxKwc#U>5{^rNp7O=;$ zjTcGnFJ`kN4i$dl_Dflci6yPV!NSi%bh;&qB=^(Zj?)Q%qjc$H%pMG9?l z2z-UkyTl*|Nlq|GE8w}yPlG=+p@SgQae)3B*=|16{Pc3he+X8uz^%L&OJe|u!^0{< zf7x3E{s-1vCbpwQ1RUf|*47h>Z zZVKsSU7#G<9$0~T&2*i8Z*SC&K?>y#qEW@?UHne_(#u zHV@(SS>$minWUddT>u_zgbR($x!mXn^gL>Ie}xH?RU<#KB_d}1a8KNl;BhRCl@*gu z{baqUn-|Kq#V4kt7Ig-2=xBJi-y=QaoWX>i`R7elyl7PGsGQ_k(XhN)Y#Ac?oQ|&0G zNFD4N{w8<#^y5IxPcyGO!G!ikpGOQdf)#$uif#xVdtgkUo@uu!dcx<`E?0O1!JM|} z^4+XfbQ(fn@9}M$5M@>BZtVd7$XyP%<4KieRSl6pnH`zysG{q>uTbB@+O0G~@vdfqig? zI>5v96?_(21w;0X8v-_MD_A8M0_*^g)xEniDb8$9!I4fV6BEJ;YZ~+>N*3J`DHX!{ zv~<=TR-7-xx>h3n?uB+~elQ}N`O`=@S@@$>3hTu?8(V8)QoM1cYiLg0w}s8Jxh?J{ z2p7H$xex#?te7h_??NVPl@YY!W4IVPR0*8OwvwJ;z3geLZg&V&cTb&hkdkqrY$xOc zm_G%@D#GQ+04n6xN;(7}S3^oMU@? zr)y9f!*8iB1Y)n*Nky1AkrX8Js8%MHfkvn%_25h}haADh zi=Q7r%B%~WdL&1oX5LX+3_Ih5ilmOGT9PGpGWp0{FLZ_1IhHyXv*d@_d9tH^$+uN0 z4l#>Hp^2wCgdMG(z^qDx^#_)L!G6zX9oAk~X8^vRhGcLerc6&uiG8RzM>H%U1+E{ig@&%;(Qlu=y;~km4@whnpBJFoVr7kwJjHR=S1^zSJE#?Ng8wTTy{*> zUG;M@I!G5ije;Bs{ysJP_BgiMgKIM7-QUP#Jukc`CqxyJKJuvqA|f@pe4bn0L=W_1@f%w@Q!G z@eHJ13N#1rT?D75t}+-Y^7_DmT4y-B?+zS^EG8sGWNDkUD3zs*`;G!2&pzA8sZe^} zb8E?@(WpTdQYcAnsU|dLe=l-{5Q7*qs0c5=Qo?~i1H0L(;gF+knTxsXD7`!it%1UF zJAKlC+rbNfu#`hx;z%7yCqWXdDsBYCtzwWp`ncz8N{qt9tAE);vC^3pxh{C}ucqL$ zS!niCB37ytb^>NV3AH0oY{&VARbj`39?Kr9h-k@|##-0)Rh2Uix z_HXBO%I#ng2ePX9JA=E;UCSgY;;HFJo)6-dF#<63k~%pSE?`cX%PzE)mVF^>LlhqD zuw{ypr;rO8woEjPC65gR2s}2PodG;0-b-jR>G-OMco*OmS8SBH`;uV7523AuKP0|G*@GfHX%|#nAkbM6TZz@1kacC1J-su8~qh zWJl)}6^nU!6E#H>oUwG5L#cU+Q5uCv)i+4ahU$JMKc`z9JxMm9lzWCxAonq|0%;}9 zS&6)1mT5HDAwyk)f#FEB<|moehO-HP{S1v3FO0HI7?@6)8NXZDOZMk zs(sxF3hKHDK2CEBzH z{{U;FIb|Z+i4~zyhm)U$Nf=e6((Iu#-Ii{muJ}H5fLO#E*k+1x^$Gn+de&5|N~NIC zTV4tJ*m&?L_oB>~g2j@v<>(KfzC91~@zz0{Qaa;^^d5U|i$k6&5$lHANU>xcHJ#8R z>tOA|94Oao2hB@-TYa#5O`hzQmrmQ5+IQ zd!Cp^XU&R4#?V*?kx0r11!~lpJd)Zif$;Z!x||c}5}>%Br6}h7bT12*} zdWKiVQ?Q%>*hDG^wv9-b$s<3DFS^GI-Q9NnWxL7a%p&qG{1`0+(dY;7m<}}GQee9K zF*mV#^|!56$TZX(nG>6LENq2vPbTFOAB-AP#s08@WZ{TObajlT*)dmW-qCP3Jp13RkABVt#e{Hw(oP;94F6kB~ap_Anlx^(hHSkv7bn;A!5 zCJwSEi=42|mw*&Vnq z+J1&!>GAM0=H!?TBT~YE`2}p}iiF)?R+;Ag_$||&f3bYW3J{8iyYS+X>62rb7>C01 zH4F3XnAiX-7i*A5JX|TPUWHz0k?cw~Oe(JZYVbtn{Hccv=0~9|bm>?Y604MVxMZoa zNoXh|F_hXom!Oz3I4g6T(AlgJA0Krx^h~vA7%kMg??f@@MHN{v0#FnW{rgt zX)h`w=>Nysnp+`(x$;T7!I>1>erv6@-v3@Y0Wu;_(m&R#Yt}-Q01h!Eg9G4j zr>*hi<_6T#j}2x<;${!G?)ZOb0IcBdCIk}M9~)#LBX?-X60i7e^+?f>Hfz6rQ{9G( ze~`j@3?ZCzWuAN1m;SrTO0sGeI8mP~C)uT$1!ll=WnMiYLVK=UC8NSD%SH0L$^jE@ z`mFu>b#-U1l(5iv7LotbKr?!5?oYtAerRA2xGY#yvj9MnE6>es(KMO2X{ew6r|R>R zrE68vr4=NB=K?#sAoV(y``YhFGzGY7q7G6U#w);O7RC3S+)YMfKWJ?3r4E%mgGr zaZjy43~dtnPnBiBnmQ_hR6!&I7p4gpDQb-+$<0TK3C3N0j}}h`~R-8$`qI- z>+XXqhhUf`izf;$qRc}1BDui_o4Nfo#x9`I^;31zj@6;&=n|b}xUwI#1?O6wz-17$ z39G;7<}AraW~n-nbLICsQzjyjK#CXOGJbB5)$S^csC9B~Fa&8h+zklY23&plo{!0UJskxFL$W#2>;J7wj2$}y6i`frCJ>0+r zJ55u5pTV!2;r-XugU)#q?3^G8{ig;|vje9vA!K7<_5A+Iqqy76l66Yp$}0&P)Iofw z2_V6r8>kSL`=%*N;>QM8(kuy2r-pCn=LV2}{a4`XKQySi8?7f;8#l-vs#Cz8nX)FP z9jZ^=<c9R=gG*okRaX7i?;Aupokc%u z0sN7xJH42kK-?isgZWrlw`6_Qef^?x^hEk5+q8#z?|)am#c}of_^@65u7L&HQ4!Ak zp83FZFQZ2(nTp0=gNw*jt8oo%|Gf@U(D&8a%P;L#X=o>*_y6 z*5up}U$p2Er> zyc+Nc9R=gI0;Kan^tRmj*hMP42{2kt5;U00=Fwb^r?h z*Z};hj>te$KA(`C6aORm6Fc&a>vSJNzA z*CwufX9kZ0nP)tu5+53LAlR%exmc2lwNkf! zSNVNl)e&o|;+*CM)&C;S5ZQ#H3&Bs-l@zdE>0$EtMRjLekmqzNG=R!*<%QGNtxZU? zP&a}AHfJN%5{+$J8z&6>En5F7e%awC^pZtXs(k!_s^#xWoZI+3W-;-;LdW_GN zgC_e2Obb6$HV;oh7K#8tfbs_pKSq`gK~$_9ZHp(~JF`Uf_HgCww9pdl?w6N{r)R7D z|Nfu<>;L(`C$8uj70WikHoNf~qp_?T71mw%i+lg+;7b?gwtnLip1NQ8P0RWn!+)xV zFDUa}w`F*)ZwU2s3tx=*kF`+06<*B@9_9T82Hfll5beFL2+MAcoo?YfacRt;oa;s7A zzh)S8GmIiX*xxC^_nXRe^P70s^R96yZppXzEo{L1=Vj>-pI}@a1~@vt2qkV?!vX5C zt-aSg@N@D5w3_3Pv9WVb+*QX#cN_5Q$KNc$ko!i0JmUxleara1{!VtjJ7_ckE(f=C z8v{PVpdqpVJn}tOvif-zW;V|Yl%6koKZT~1m3Se)CB4fTb=!a9{x?n8Gw>2V@wG85 zd{zS-QQ<3t{r&iC`O%=Rd2cP@|ewN<`v&Bo7GvE+;AZGPf_ zODN@hnafpN?|+G>3JZq#k2x zR5bMkJQ~hKd;zmceV|H05E3X~vQ@O3S9sbXYf-DulryzEl_c292iFue@rKem+eP=| zthP$+RG&!c){Ungk|bXmoQ>(oDIn-JQ`D@MAFJmE2&X{Q>0EsxDlg3%x;$&>1i`#W zIOzH*dkr2h;*^V?`Su>xqU=^>4o;W1kE`K=*o-18dcL5$dk!7pVhVFaNeeM+Ac)j$d z<}q1bRtcwd^QBAr1&7x!SKiY>r|o(UnNLiS?xCW!H9UJJ>;ZPA2@jvwg@;dkIV;0e z9HJX)+2JJ@T(Z|?BceLtJD;!LXA`*bIa zywwPkL>=hC;33x%?O646_U(UrUMh`?K^F?pr$^YtMw3?M3GT}MU{AQ^hLigQ`^tEa zc!sLA;5)2*#-)9K&hQ?;m9(D032&lYc%m;lAI`ioxu<}0EG;#j$+{2hZ?dq@x$y8i zToKui?cL$Q+aFB}W~ z8s%T5mYXNT@oxfVu!Wf2)qSSk&AX`l8>-}1+>Mk2bK!OO&!UV^BNaPaZK7mD0Qh$v z?Bg7W-?!%Gnf@TOj4LZ*8(8)*vDUM&NS2SUlg6Bnb-STTKUj@2-_}TM?oRU=cO43Q zt#_P5WMigo#rO0dYrgGS#)1pbG`Z2gv}wZrTAj)2paRveW04J^S(NsX=Obm7HTe>) z8$TB$n+TKUWB$Y}S$2O>cXm!cf+YFr{$e5P;GQGOz)29QDCVVEsN`+uB=5mAhBNz{ zuicksbAWpaKL{4bgVz_)K-VC)$->^pmHvq(?#jG~V#{(s$8jSf;_dV0UdVMB*S47G zCUtesuBo8)?OPp5xd1=Jq-S1IaPF?Ox$kRR|6uk9o7%?kYI9RDE93mnNV0Aok6Dto z(QXftY0u$I*g4P(%u%RPoS0kp1CA5F&ZOV)d8>w$tEmvjvr(24G5feyP&dgY^dVpD zlKtu>@jziB1JY+zC^5CNxx_?S!S2Zs*yG^a`Xmhqi)|ztIMa{?yM-X)P(OOSZi%xf zDGZN(8+?UWtm)r+l za~y7EM7ou}Xn@i_^dEX4J&_{CYCq_z*=ptm^aZmLn{7MVSD1Ri2N#8WR>~9HA{nLe zP3}sr7d=v}2%xIZ-Od*;+4jO$t9+RixuOzJX-1w*&oYjpA2JW3^o#iBlwZI+w=sce zINgBLuk)7E^EK#se((a#K>7v0v(0jTa2H(xCz|bYKJO4ZT^d3!*?im~Oyc+s!ms92 zT&0M7^xPGa?XaJ{=op&WF|D(lEti=8YEgy!3unHo3|ecZow)hQ$uP%>HkljOA}*S> z(G?HMbhtsh*SD>DNAH1FK~~C6eABlccd5C9ZpF&t+nVH_H`^fElO(~HwBIg2s3h-mNky~_TyJU?g> zX(%s{ok**9L6-~%<{3|&@_Y0BHquV0GtHZlC_k7}vC;9|1`HP1Vt5y1MdvsD-R!Ut zCJo#+i;qRjB0EZ-G$L*iYf-I_zRWVmv^!6hsJ(#)e;x*ys{To3?8@)t1zmCr4|)V? zMFUj{2!-q1V+H26ga-(BWcH*!2Q$k|7#sF8d8IRJv7A^YLWU!`GoLj2d2X76ZBY7L z5<#iD+yy933K@RFPMB^TWMB^8@8_C+8lO%mH-`^pLpy zB|=nFB6)vVb|P8Y$-CH9Ka|-1;qI)9c+1@+3l5F0Z%Th$u=Gm;eaKS~Q`{lZ{aI68 zWDm8ZTSXI;weFJdTef*&6?{LX(~&`onj06aXOTVBaa zfOo&^j*4@aVWOjR{FIQSNacyQWO2{GAKo`!71c~iDxh0lz||66&L`=RzxfIDOzq|* z%;d2i6^Q`5xwK{X+Z@JpfGb>k3goDbEiB4aBBHzeIcEegAC$z!TdM zkh%k~A^=Jgq~=vliyN3rGyok}0sJ&i`;m~Zf+k(m4w-PD3_()_Q-*$L(xIl+)e{IA zMjS;8JkdKV*Iv6(H!8$MJX)6whUaVua|=_`+nE$9o0q}O5|ufe!((K7?r1MhKQjFR zo#siZ^EvN^-3>~;n3L+jiABHBO@J2U-9lJ*3cLbh%Hc!qKaRWh3z00xKkV}i6=ci2 zb2lg1I+3VV4bX{g7qU|2+s8kb49Q0!R_!s9W8*$nKrP0_zQdrjBp?H}niWEKpOsQS zEnPwFHgWUXSEuUp?*c zNQ*QrV58nXUfbpvN=GXz==y5=BG~xSu1BJQf*d(Wo5rDk$LBTV_+ED1e#C~PG}O)f z#Xw%rBUhXlTOYJ2ybFlFzONl4h?Bn8+a@}#cBF4ac~vSi_uq-S`};AzV)a2E)a1+; z4=~#6k@`Cbfxaln1qJmGVRQGr;9YD{B`tM6urwQQ#vBkHt z7vxvH^R@SHAhL(1_CQorc4}p=N5tP*n2`p?y-8E3Jh&Y2lFyD#_LabRYjeQb5^r9} zaqki|uVU>UR5cxyQq9eq0bgT?wc433448m#PCKRsL%40;l?Cv?_}j3B-J#oKoG#P_6_X${A?hdgpue<3iT(q%XlWV%ia@wYTer zPco_=W0NEiZmUl|D7DkRdQOyOsGt9nzOK19a7@ExCw8;+KFRY>%Ud+m)eLS%o`PqH#o3s1K@(Mj4~6#yCL4QaHh|>J4iv7)R{| zga0eVI4W66L_Up(IGE|F6JG_GU86BdR!wO$TU;19l-b;_=hk#0HrGrr?K|Ao{YOu} z{oc`pV_Nm~C7OmpoCV(=0UPwwEN?KvMV)vWcC=%eReDU#h9JUAIsp7G5#$fw<#S>6 zLBM?);C`CxB}V~z#m0VP<_gMhol?eZ%y>xyWRaH?O}f&b(LR5-CUrB;M69@HXuRl@qp$G=^ym7Lk5&iYS&q*w7d@sPUZ%^uU4?ve{P^Mc%b5F} zAG4%>EV-}qA|&16u5J5&-<>2cAG(X1fi7%#u$+qvKF8;Z+wt+$>OZQc>pZsZ`II!#RJ7q6*B;qJ1g#W%1DAb?nfU zx+r&e5{_Yi{kioblTy77-G#rBo@EV6pSy!%~7k0RkIcq8Zh?1d3Y*E(qc zJ$SsAo>;*Ao^Vm2Y>E@l;;|>qp05V*3eyR~tz5gbK*dlC? z@SEl!FptDs4S`3(6LzpK|AdJ&aXbtc+gCpqqs2XuG_~oXgw<;>_2XZpJNtJym84f- zK~p4Fh(&W%Jlhp^z2j4|&0@~TLycnms{~?T*rwcV_8p8Jg9_zo8C0YI$i04uA~&~P ze+VaKb^kOGIGjViO|k?2UDYX7UeyPeBYWfP*6d1N%eL8yo-BrlWQFAYa+*o zx{__*fqnU*i{E9ahb%W|1mO4bWX1(SyN~BOUC3DJ2I^mLOiyrLFyH`p-`B=iW4jK% z<$Aa=PxPjO*bfE1v!%E1I`8->L!@_}*;v1o+?fa#gQ;(@c7&RR+=8?M4) zq`o;+TBG=|8U;OvYyw&w%EZhg3EsNky1$#!J`1k^kCAN)k5PV2c|dQWr3{I$k> zb&t7JH|JO+{%S9f!{Kv2Q$#38ue&viC|)CwgC|$ht2YOh>UWKRXSQ*(1~Ak#>=Ot` zz?XtLFF8}?dv6^!@DzcqeD^cy@RTiS2@-v;i2aJooKAYbn8?*2mnkVj><0#c^Xq|Z z+S8Q|8-;OC$uUUo$#~}Xya#Z34auiHO!zDo`$X=O;%X$(P~OA@C;1NGftm?OB49et znqUtH4b02IEQ4lhPk)+Ch??jd$$n3n2Y64MTZ@7u-DH30vjXe{3eiFw__lm>g+5M) zdDH}(F+vsL8p|vWi*QKhiDMN&qAF+qTnkDsH*20k!%Av8wC_y;Ksg_sj;+y0107te z?+znNwuKONACi2)E6LB?v@LLawjW#QVvk0yDXI=&&fN$eqThV zX{XL3598Fcgv6GM*_0lZCHnZCArGOD7v@6xwMAlOdV>LhH$O_1WEt^r>B~pk)xeJw zPBNwJ1uY z-y8tK44_+l!+S5Y9@q zlLY%iqpBR0Zf-lDV3|bd65leGr;P&k3e&2yd{K5YXC3V7vmJrVj*!z($HdbKfW@JG z2d}0PW2wfy=INRTIs=2ZrOe3ivK*Bpl!!LjCdHc>=uWK8!`tL{ao(@iiL5EXhTmc1 zkn3GNSVJcS7bXWcbISG9qHqh(>q$hWG=mox5m20-qYf@u%(;-C9Q!67_t!QiDgN#T z8Y11+Y9glzCqIN8q&uHxUlND%xNOYp3YfkwSSNA&;BKl zHfA!el9T|Sw67DY)V1i#EATo*685?~Ib@;l*SyNg&E7Mn7JV7M`$=FHk?$<-{sFbR zA6DzSqaP^KT4KtyNS)ZH)Gx$(K-X#ANRrcX-{)vQDhth9;Jc{zU8FsiAyQ(NMbNOo z;kX&Nbl#oc4TJ)Q8rXD?SFla>U6A)Txq1S|{-hp@{%~UE-TOJy*^?&pQo@^EH0r@M z_bn^_8Fo<*FrH$keYAAA#XI*7GGn##l$hkxSDXs`mVwDLZ9}vQ@!`!SyQ3D^PrObx(;_V)&=rTL>*M2%uZZt4K9kvCnreNap8%m*}KodNmD<^%D&S4 zq4a=2LXx( z#^PK|nDw zNwcKj)WF!}g7+UQZ|$b`A;DZNkE3)YT56{&-)Quge9a8JHX>fthO}>d1kOtiwEh;z z8?_BRrSH@@pDA*_0PQ0k%_w$GSG7o2j0&s1gplS5Q3UuXKDv#ol#2-fw&V*AMNqOy@Yg>YDau; zA5Ip?JX*iZfi3ZMNVe89PocE7lnAXAk?-O@i-I9u{FfzAK1ccG`&r@WSS8GDDly1q-a=B@8aw4P*=w?uN_LeT!bN)g8Yda|A~Bpd0p==+W$v*-s{xudennv5kQ2d3!1b+!c% z-iZW%sZG`RV|vj~P|E`vLXy%deJb{CX3^+yFc2|a-+nBi=wQc8jL`YyFC&U;Kg}jU z2!w{2?LJM*_<7i|wgGGDi9pqGqmaJM!~V@ zb5V1C@jbhOhSqmNxO`CSQ6e@!b;4w483M~63E7M=3--wM?^Nl1w`HUg(@`r~gifWS zgy#rSazP`8FMXasQqASMKB*zguEiT~d94lo*_iQdy!Y`ol6Fso$zrJ|+o*StAI@~5 zK~MH0lL7h}7&d)YV~~F-Z~z)3ulwK3ahkXFTPi60>wnij!$A+$|*+8`7?Ac3f>J@76TAW^#Li1)?+@rs0P;U=O*t5o~ z0s_vJi%`p%1ycCWl>t*)`mFokw7LtG)Q{Tolx&m z5B?HvP~;dr^X_8DSf*B=$!WfQ&_Q}HFaM!I(-iw>fAacWgXAhXO+7Cj^8`fop@9b< z13dA)Pka5Ux_#IO7Y?Ft_UezmIq>uDRAztEMDNVSn;_Fe$2@?fd7E7xe&4T`_stO; zN#tEQrN0mNn|}N*bx%acYa}QIa|lF>95eDYe+l#5Z*9=^zCVSBm^vV2E2?+De17O% ztEiO^VoS9zhjI(pSv!-IqR~2m-LpUu9aSR2smv#oA`*wZe~i0C02VY|7>{T~z6>`f z-T6^3w*1|f)r6-c?q`oSc4g;{Yx$N#1NiUEoa8uU(5n(4k>}>HdC87pjS^Ao(3Nh6 zjG!0i^9u*y`wBqpo9JgPRo?*Jk-dUtmy-k4_jQ06cV=j>5F(V9><~L%*?uaddo^MFL5@z*nAcrrfp;^D5@G8R8F+#uKC0#FiTRD6EIxY97}G_vLDhIhi%;PvNk8q z0(mp79yZoZ8JX>ATLpQHKFzXeZ3?xq7cl#%c|R>^C+29;8<`j^`RuLYTmuF6bFYqc z)a;byXJ=>-ZV&glLK9;G)VFug!3kp@!{JWfN30Ing^oMxhIT*6y7dk>b6v zM@OPetj{Gl!}#dseb#D5U(OIP3-?vRmVA%xtC?``5*1y}6mEXgIac9l7V z?U}ntqzLWUg9cL0_eF;$himVD$y3W|3ohzFsOHG(eI2}It5uy5?()i+svk75-_@^a z@3LvDnG+Fiwb%}x*HuK~yx7Y9n#*|_H8YLesuP*YSMrYp8+~$dw~zhfzE#h8EQccV zcHwn~^K`)Tj1iBQaWOE6;yC9*IfjEFz~iixWS_?i)N7fTsZJ8mJu&>tm75t%HbYN} zz?veBl>pX$)~_1eYIlp5fTcbE5!%G-AxDbpiqQr>uiX!#j6p=2^a0Y*R5+hd$0X7( zO|V)#@Pb_$#aK5LooX>_Vibple5{a=*u~O%D;}m=Vn#Z2ML41+O#J$+STwNcbZm}T z-KbVPA3TS9;e>^4w2dV)f7Wvil)@%G4outn_!CY$3_%lQaxeQkM;BDQm%*2~mtn4V zev!4tZh;RUqZ!mB(_c-1Rxx+UW{9nGUrQ7_ci3%Cd|-zCSbj=i$YTR{(`MR2#ddm_ znSHu$Ekkm~^n`5FjZZ7+flY^vqUT%F{?2EdRR9!aP~h{57r^K`Y$4Nv-O=`S7SM*U zh1234)OYLeWH!l=YOW2YHymgQQsKMxbsh@lp3^Uobw-0Le_)82+|_|4NAy-dfrJ<2 zC#{Hqr1e$tdHxM^iWy-}86y^+BZN)nCm*w%2j};LSDCYo`XaOYDB+f)5yK@R?XY;Z zvUYRjwGbaRJEtHAH25o`DPKj_(AufG$*%>>V1Z9!JNNiBO1f_ zj%q$Ve7&1Tu#-XxsiG`qLTSx>9Ro3Wf8zkOSO@7QliFXwHax^PB7)9`dCI?domYHO zj6{JsXAk4eggq^61^>#oS61K{HRR&f(<#T4enPWy3C)n@DM4Olcse&(0 zDYLkg7ep8q+Q8>9gmC~%K(xQ5d?@fk3!F8|oe~90JashBwpuWcwi1UM?zR#j$9fgl z4iTK2*-M~?F>yD(2cqa-y1U2spli1~CNRF(`HtLS0rvHq!L44=8wt=S-{yazL5Bh9 zmjFfxdwC7AXY3K0h}o>&pgGQHOWTqEGaXL8pEEH(#^5>Cg`ru6&M`*`aHvi&DpGRbA|^XIG2f_+gmU>D?F z*+iOQe`R-Lh>CxzGFt-I!kwY=l7va82kMId%(Ud(fLBr4%2QbCpMwg5I{CsuoZ#b^ z(b=zV9)V{-kxIanOi+?sKmVnx5}oV@h5P_cykJ|hJOg)#)|6xVA^;_vsbIilum$s@7gBht&bXuGGy3fY2)aDX^$C@X0&F^) zv)D0_gr!pnPSaM1I1br=oP2d>WwE}}1vk9-2HUm_d!GDkP(fqLCpEp>`x3yJ*fg#= zdHDQIeJg1$ZarzT7K^q?X_iURC*QtpTWcfTvuoNlIWs)syPD<6+PnR35(Q_vx`Ifk ze8hg`OK8JAJ@aBx`bjwreuH%Lqlk`RA#P4%LJ8@B{Q}jp<^AV*8Fpx%_s9wk_pJxGx44}QT{iH%@&Zf-lW5emPcDkVVLxK7Il2>q1 zZ*yigg1c#m>%qbg6=+xtr1XAuO`}y~*{kXtxLuM|Tp`m+1_(TPK~U9%yo$Edc6;o* zE7W$?tK^dRH%m5-r|`5WRmC%hL`)qD=k~T!?zg)E0fy!^5&?!zMbC@bLGKeEI&XSU zySaM<9kp4Y}($t6ho~PWXLI2lpJ3Bv`-Zge=QEUB!>D^o>oI_>g^A4*1*qwr&1c$Y`QZ zUefb`O$axq9T10eUJFB%a-O%i?G8T^TaayTI();i5B%uEGw#Dqm7fl?!Sjo31*sqA z)sQ}OTUP-a`W~FD;~o$@SiYZ%u6TF16J7E=6`!t1x@^7svTt|ado2|fFy}MNd*>-7 zqdwfS3gV^uGTxx+j(Vti>PM$WWMuL!V6z<@;~-@lH-#XKh3lCU%l3en)tZ1R?-HZO zspY4e^Q+Sdn03QuSilCi$*n)@08 zBvQF5XVIK=+H;VF3P+Kn^~C<&1jkzI<7c!g^Ok%+)&6ySi(nCeUjd%9@K0z(_g9X{Ct^5Dp zbhX02v7aRMCy39BcqQ3yxt-v}6ji<+naTah%3Y99@X?zzSdqM-0#3B4kWm-~#Vmc9 zYNP@%Dl2b(2lO@f&qN^Im`U^@3?({c z(h;5NwA3O$%A=Y=@mys;sMPzm{>`9_bOE@@*3mrZ#B7YYBQZHQ=(pO;Flg^)#}(4F zs9-e&fSzN_g8GuApz!$>5OpYd0g=_@e-lw66o9MW(`n`Y5{ zNTah(gwwfiu;a2=-kB@#1uBr=HxW*eOHdq+`VV-?mcvZ-EFiI^}pz=A=^nXm z&$YG=UDfYyRLM`9+^N0ycO8C-`1bufB%;W5ZSfbewghFdT{-v_`2a&daVv$+BuYrL!fYxN=Y9}J zWJLQ!Q?pvKBd3LIb+Q#_0+6Q%-lZ~pA!w?%3mXPW4R=9BsP2dNN?CW)Hx$E3KRQIx z;;Md*0{4nj>ULtkELdQZwMuf@M5R{Gauch$*^4HZtsHs6y1#$sL^fxy#QD_h z;HrpdzFnd;Vk>>ZW8NGnwg=S=F?c43su@FZM$PXqH(oHru6xXA3Tj4n98+$O%va!c zIwqCt=tn4!^WaCWazQ{YtpXBL6#G;dEvnEGGhcWrSW$r|WEcG02Vdl-3B)$VcPWM7 z;BR|6sI|=^l7k6>w0hI2v*5paIN@T0q7mA2XGFi|1u#p%ZTY*$+jT@R75Hoi_p}IU zu}MBYx(iNSFyI}>d+ETQN!LL1as~7O*&sz;#}=r#)IT$DaC$rLkgS+K#>EYS0v zHvnP^i@JBs!?Xilkvwph8B{5(MeDa2TX>ZCJW2&OE+phXPZ$KEfBz&9e1V6k_;6FZ7oY7Jp$ZaUdpq>h zuZXuaKY03CpNAulm)Sc6Byh0R#9vdW@$hXtpMW6$;=rpfF(vT8A3kvlcuq-n%}rTS zU7Dj_mz-+=$TJ^VufGrCkQqi^l!*qXBY!^m7Cg#{9*ojIE)?}?#-N~U_n!oDpXXX` zdr-G&44Upg;bzyMXLnSg7ZrjFqmzD4n8dpl=NV3au)qcOnNWe*mT)O}W`muYWb*ZI z+KUo(W<#%NjuW09OMgnDDuGT+vf{@B%5j?P;A*q0v~ySGsZV|;Kh!FfZGK9=PZ4v| z({)L3tn?)$_W8Q*2FliPpQwpB8!o;$$XXW)1*hWz6`9ai0ZD0K6L)%X6Wgqp4Deyk zF~=xxI2E~<(@S>Wnu~s7n<;}^AuxQ^(;bYvvqG+p*+!Fj;&UC3PbXY%BluV!9rEX3;hmmUw!bb0>%;@p+ssoB?Hv52ozDeOOWTePjKuXm3GDRT>1K60jac~e#sYivyFl`b zya2eWhUKtJ!eN~DBvKgf&weZxQO)w1Z94E_&Jyuj$8spKPiS5z2<+Y;CITM+ei}-z z@`4~pjrW~hphsl8)WM6#d$Jm|NZ5?u2e6mDKcEJg8kTv1g!uVZt=iK7ln&oM&IS%k zOL7FPvv+ds3ye_}wM!C1ECnQjK)~DP4*Kuf^>*72{q1jmzD%rMpv-#XF4*R%x4jPl z1JsV+r(L|uY4Aa?|t<$3#Y@ZoOh7kG>cDt zn!Ebp;2wi(2oBQypo`jMzu+G22cqgZ@@q^5uIVR3s(!zKEv@J}&|uvH zkgQ3ks>1;g+-aE$jJXmB>67jz3aNlA7>Wq{39e#HCGB)+kBR`1r%Ogs13MkUz1l0H ze$wf}HXHLp1b%8C_$qQ@!5Hr6x?fY$IMe!pgmnlzvdN`{PEdI@+jNZG*eIkoWGg3M zx2603Wdp-d zpm1Z#QV_XM4ozIKwp({|5=B=JXKa0h)yFqTJ56iWmC(%J8QK2nd)IM?+Q9Ak_ubTo z+Y{WiyN~IOT+e+M`C7HQN80sP+#OpG>AzmqP8Ml|RB$(S-DH$Gp-Fq`tKitX9L?{)yE zSokR-OMIG0j0Ok+FA(>aZ|JN5l9o#$Oz2!q9PiO!*VsYjXkDX#2y|DDFpoFRlJqa^ zC_7sJ&`|4>c@C}!D)RdoPT>-SUFT!lz4R%M%)%jlgy0khe-tRBzdEXcI1iO3N zh@}CrY_vAj8iTNH73_oX-AlpnZ<+SKqelzG(9Bj80%iV%C=e)T+*PZ2OhqVnl0E~( zA|j!zQ>O>nhD^flNZ{UU7RXraPXj$AQw!H}q)RwMyEg#-Z?FHo#MJc!Vc%18@0NxT zgycM3^crkS%}-UI*O2#J-OPRXUV7~vWC(%ZwPlIb+UDAVvP< zyJUaE1LWtzpaYNn_r#B2lMXg8DEE4TBury;tL9*J9-$pL^(PcLs5vHG733@@YYa-u zP9FQ%hobFX3*|PZYu1mV&j5*4?S3~y6$#hNFA5|tho9bc{aT_l=;t?p$muNE&v^Hz z&?G`WUe zHBOZBf-NoleWz~TPe|{+Qz8bk`vUmY(xqJ>oxJnrR*&GFH~)Cd^b8iDFLJg_7TS%m zaC$x^?j%cAEg79q^$rXG^+egh6R^qWMEzLQ%fs->9Z^L6*Mr7%QD-xNi+YegifI^!Xj6aO3&x}GS3=JNyYbovjc;;$aSJo3xlrK9Or z5^U7Ussw-#CS02BUUByjQCzfcnqUBSSEQuse=X@icm^Uro~J%NM9|MzM`f@rxz*2Db{Dd7SyF;lEk;%p=SJuEhLC~-JFVjyKX8MbxPcKZ zmK;#3CzFJav)~{sblk5`i0;)qNqh(ueec%wbVae{1hoxmuGaFLOa$DnJ=+4MUF3WJ zDO@{n%g-12y)^xmX-m?DNhhO+dV3FXUVmCvvr8sbNTzzStRP2ctTr#4b0(E&z{JYY z#B1}cF^cOvP;d8}-|!U~mjw2;3Dkm;jwD=*_*6?M2|oPAf2gSGYjK=LNOctk&%aV& z!G0j&?*|>YnKjFaws)S1AbRWtSJkq=maqfqF+_UtUXb-Up469cz~Anh>~Pze#w{uJ zukW$p(v!FSV9)8WkLIE9E*a^t^(I1ucs;=%*pMH-n^15^HFGsw6NJL({48D)P_%6_ zQA1X(e+ez)8h_^tLDBIR9NrFzT5i7%$|M(TKAH*QA(E;&${9SN4-1qYqZ;x?xsAq= z=ZnxJ|S3Mv&M^R5d$?vr-q_GcAa#YE!SE9K^XGIPRRdLZ39+ z4M+br`zfi)ZO)`O9aKK^;tFOl$R;4ePZEA$TnzA7V@#ta>Dt~#6 zhjl}pJEc|9xC668Zpa+K>>)?7nuWgWQ;h!+Ly*JKcwBxkacLg#4_UY74VPE4q}peP$87V_@NEm-q8(^q`X2ocCUmDM&L`S@xeW~! zjVDwt{wyqrcfoEihn_q@N)4`t_I!udzi+f&U=4RreH#bmqOW_3eq`SQLe)Rm;FpcC#k7aBqGbkQs-W4L6_!Ush2QsN8{&w zKm8Wl6dn$KowFo}!`32GdR-5Z3iD0whg2FHPVljL+M5FX%#Z5|*%Hl|dw#${;*nm=k(}!YFCsXW#3_< z)0`2S!`{nm>tbKOrhR` zQL2a2>Bqe=n3q>@3bjZve&SQL3XX9(Gg#ds*E);3ND6v*{dT}!PO-^y@=>PDhs1RF z(9E|?@lu;*D}CXommLoS=J@T*lA??XJdh6I%Ll=|oh1|Smfpc$O|bHtS66p(GD6Ys zbwu&{VYY0q{60geyn(As0ryjM2UrBK{e>E-@o`y&1KmFGg0C+Cxn;KerR$!j_t@Ow zaj(yoPm|~8_5%FT`aZ+6^8$h<6@|U!_6CMTrl&Cg=DIV%U{~Tncl3{Z((}^n+ zos`Rq`nlSPdoeDDa8ME6F2i&f$+zmJ4AXv81~*r7)Vmq)_ZGWm>JE;)OuJ5|(;0lQ ztM2-geQTn0c2)c`%;k%z2yL?O?z7M&Zw4RNq!I$|_*pQ&;jj~aTnjO`;|kU4&R6}u z%#=jet@@-3C)D?kSGz*vOkWySmNYH3NISXdWxq32o#_3dRV1Iv}^!H&|8+8)yPK-4y5@~RwCSPJ0bbzoab;f2b-vzq8F!We5T%#q zIszoV)7f534mfdGyTQ^^mVEFQvA>mn!=9x;eJphg&^?TcLRvFTV;oG=xk|ow4du{a z`t9O4OcY!+qoZ*g&aBj=2fVQfS%Djyd-N!J!V_CZPx9V$smj+n;f8j~SU42*Q_ zYPi4=@-egnF7+A+34646CELmG8e|Ug;)hi=NcX-)B`6)^5LfY%eF^`NsWB~^9HizM zP?Emj!023LLnSM1yIe^k*iNJU;MffVQ!efjph)r}oVLrUWQ0S>#Bn0{aq0+k%*S@U z0F;<9P*rFJo!h1*@J|4)Ivs@e>lGMjlPDL_H;&5*CCiXKO_~L|rR_`K4Am>fK~MXFP=%{wQ-SgJbWJLpI+z8L z2n_fsn0O<3P^l$DlNUe}yZeOfc6b0KC*#&=;n(o__>nA0cQUZ0;Orc==p+vq2VJ>PVUsD1p=SKfcbanNbbi;#%U7X{Kh3>ioD zZNEz+94`$6HP>?@$sBYFP1ZqI;Wm==&BrEaBhE*qf_2Mg*a@zn~;VF zNqmimX8iz#f9WQXZz@&pY6+C;#ph&FBVl70S2huk6`3o_f#G}fQN%5AEkepW}X>^B8vxUr1Dq>Gese5u)UG=S!)tZEW>r-97cOXn^2~W)_ACe)k;87~q^~x@B0Yh;{yXzdKOl)ab-Bys46&x@c z^x_|^Yih=Qc!b*F%Wbh2pFZ&8tjrb5J%G z%Y6}MTAM+D9MNb@GV2+F-G*}31O+P5UL+a$eg`{fFO9?7d|pq|Nedp=_TPNvh;|EJ z!~Oec)?{s4;1jT7dhGzGur}=yl}PSrlL(TVH$uc~)qcgiEAhC!XjpUAFX}$^l6^Jm zV7Bu++)cXs*u9pv^Vd$UMz#I)FmJK%Cmgt@XF^V(qhw-1^?u*VE3_R7beGiqr08am zCd9ipR%*DcA3)4pg&r<}SJimno}a0UD>1ue}2m5LjO z7UufHY()EF<51~F--yTFe~=*)Oz6VhZ@abnDTpi}_7b;G?8M6d9ssc+6E~Qh=1a}* zA3u_Yr~#KFeId3_j_|EnAR^-TVLb5kaT-f+VK&#*l~VD{21)mUp1QN`6O1ai96k^u zpxnPRdxF#%1rd2y{QfKtCGYu^S=HXZJrx+?j@xCO1mZ2rrH#tnZCz8UYhkkw)2@JNoB4y$=% zf7SDGh3%*hs%C(WIntz#w=53{+!`Ni7oF z%lnSt*$kSS8Y3T*<|jN9Fnc$}f*o{SqmiOuiiOGIDZoRXCo9lJ)`nn81OWwWTUOb* zCDo}hQz1yN6(nFWa`%+O1uqR5nwAYq}icDP4V29ry1xj@>NeIgqDc z$Ld1QPGEjdyI?jGP7t1fO3&%;-p2M+xTBeBsb-ykZ06%$-mf?7?dQV&bALGy3NJRA za@Kw_F5!0KpxBSu(MLWD0v9;-1clT!CEG0IRiF02(VtjZs5He0?!~5r`>xGIU$VO+ z>BBNbXCRGodn8`RYw)nTDz5`~`1d6W?6HDUho@NwqB{(00RnU2%@_|XW4)po!_NHV z5O#Ym2tlI>!;W)3Tzt;s5Z2&;hf!MA+?i!8LQbLCf|A`BZ=PE1?0#jYlG5pV#GCSC zzsETJXH-CYBby6r2xyOWV4B~bFyQ!o9bTF_2m+G~<5J;4N+Q*I&yx819UP_%X`L~m z=4vHgW#hxY=#82$?CMOyx?JA->OEkJ^SCH{VrIucquFt9=DDyH6}Z{H_DD!`h(AsH zX>M%?vbb>_3JPV0)l-1Xv_&vS_7ti0*j!?}hKKIJobIwK?Y%K4-`%gse9R-L@+rf) z0~KCu2~L0^ew!LXn`=6~$#|IGYQS_k#|)H%x+5K*9N=-Oht84unQ8qPaZ(x~B-~7M zlTAUAYx)pwvX-C1BM3y4?{#Mpzb$M=^NF3l1!mjMM3d2A-(|P^wAC7J%gNNiCxmSJA{s&$tqH7Moad2bM`g zpsC%tX0EJxN^z>7e}fk-|9(-YY_PYns8f^$Zp>ukZ}Ct&QRE(onq4|Zg?=HM!&E3iWL`16Yr}TVN18;)f??q6#&W6!KDB09_Z!d>92D(wMq}^(k zQTF%LT=7^}Z+A5AyLiX3sc=}SX_@1Wlg$ZK>H-^NDX-leSfv%XA2RryE<9~-sJV!GVLPRXMOpa%Rv73l_RQ25HXHiI+b%f*mQaXEH{+uyysf|BS&A=rEPaF7;E9E$xWq>&8Q zAso97^cgzJ((UKkgZ*lqP)*PtdZeO)21*-FA8@3)$^-1&daqF3HD+Md$wyG?q2Rg! zpTc#hRwK;nLhfa;uA~fG4*pX@ocUJ3KkU;LZ6_v$OVB9#4WSdFL$w;dJL&r6iBD>7 zH-vD{MobGlmjtvWi=e?7rrV9Pi(bkkoq(%!)M*w1;IRN?nqCyU>J?lw0xvKJ+!)s< zEV#cywHg*>b+WIgU|vMm3c1LC*(om(nmB(DyY8k?uuS0ZZ~Y?s!>Jl}lzmhYk94ur zlz+cODsG`Wf@w^0AXta(Lx`|RjyF(4$tl3T7-4m_8V5S=?8w$_3cD7Z>!qJw%pHH; zNaSym>`B=Od~;6Xl};uNN!Yg70*S7vl1+q{5Fdj%JU}r)s6yZNCh3y)dnB31{NoWx zRhzCGe6NPO3svCo?cG7Ul(>9G7u5dH;uGzA0HT}nfO~XE(o*Z>sR00&ZBabEbl#c; z+XKJvv|S*o>o*jTJp=5nL|ch4yWAvFNJ8FDwB^LEIb%7@yJ>S0oJ{9?y72fElziQe zpg@=4v_d^1ZN1u!La7pKuI)-frQ^BvQ{n6N3k#pMu?|!rqOKlYAW4T?8$ucEKr$k` zqYXCy4k`$f3H#SL7s5*p;l_IdDtep+WGYR6hZW}p!w)j+#F z3Pm}0aR`A|-^qLwfUrnOqy1y(}6w!klBs3wI1`@`g@c#!6fnmrZR0LyBg&h;TDp(lEzghyaEkW7J`cC2mL5!iVy z(8=VG0($Vlx8fPna2l$oJE!V)27yk({rG}iE2KVVb_g6@?zKuRs~R(Z5)ldCCpYSg zmKt~klW}EVjqN+1fvG{qk_)z;*N0I>X+vj0+p}NX(V>0KnHl< zY_Ml`=1%61;i6p9Gn%*{WzybaK)DTKQc|Z~m^4p^&x?Q`4xj+5$94m4}M|j(xw;?4(x%-Ilmh>SgT$UnJI} z9>mE<^kfC=Cr8v1|Ar`vUS|} zeB~6JIzQCH#liGrzvjwLui4o_MGLUq&MZ>$yC|1$9{LNX$FgdoD^j4+=@d~1Xh1va zQQ8p|bzJACP$OpQkTkHzB2`^9%_;DZF|i~xK>1=NChpYFl$PpVVLxo-eSTaaySy`~ zOvaL|+xP~nhannkfUH+b-=BkRYfz25K0;jQ{m8vTz{gUU$8=!q%W}W>3f~to@`~H% zK~3gKFpG4Z3q5W7&N8zW>%Nvw`I#+m*YTYluIr9y_qTV+ZmvMH;z>X`Dqn>C5HrfP z$;5CAzqL)@pzulLlwmme@6pyxEzxl$o@&o}Y`T$avatl{+M@|1NB(Py zcZVG>I#*^@;|8HmkHkX0xgtn{C$jE8F7t?any_y2#*)XY5ZqB^B z;I+1wL1_u*&x3 z%_#m^4{bqZJNaTK*B??wv=^@C)VOwjaKyqH8kJo7vLq7~_p_X~6}uANG_-f$yQzow zy>4Elf~N^l7Dt9ODU($ng?{*Z6Tm)$A8YvUFfWDipU! zK-*~VUzUMM%PDY#Yuv{i0p!DUW0?S1Be%m7TP0oFIA%!WCKU|sB~T)Kn1b~4OqG~v zJsDTNAF#HyZ`B7>*STf>CXhQGh$~4E&7~8rq!ZdCA#}vQ2~r5e%AG3@#KKG#vIyk5 z0O2ujh?>iN{(T9bCmjSPqN3AIV}fXRriLt8v86saZQr5w_Z2Vl2bH&7x=!t8@Dtc} z&=|_QUoe}bYz~Exs({g&^nFmv}F)d`>fl=giz4Q zOCTd8UtqQ2n^o@Di5fF}vpMTFGN!l+suBgDRKzgQ7V=uit|?1C+pG4T4m7 z7-K{Sxe#*AeWMJJFM6ai*KUDR;pJJwuxDjiRIpk!NrUVLzA1V{c*q=NVJ@-Kidb}q z;1v2Y9hlc&tsY8Ms|QjBg8!lCFp$*U#b5(`w!q_`Gj;LM#RFS>rqz?;Rt1A%p50ZE zHc5~(*@JnV)~%vp;+w5o&wgO8H*vTM7lKNJ4KST|otj%GX=i502LM6FM72W$`+akx zPrc{{&`bnGFs^(-res%hQBIvDx1qt%LYo-Ur!FX4ZCg63{rrxJF-cM4|v4O`)11NMSI75^RK zG~F21;+^B}YBfVFEIzg-cQp3CPdyBqheDUlC-99PYbIA4qddWBMOM#t)pk~(zb zNK+6+itq)y<~v|Nz7k>T3IR0Mcsn zxpZgZP-B4Ao1M~w+MqPB3E5KU$%Jfy>}PJvE}uZ;2L2KndVvsqJRvwbuRN-y^z(u} zAL@HrCBze^++S~qNOU07KY)#jW55bJ!9ozoxK*lU>YeB%_`-sUY6WK>PQt402z&+k zxRkgm%`O#P&T2qm+OeQxFLCdOpsMimval|>TrDitem}Cb`#^;1>v5^z!LP%{3kzIA zE)WoKY9)6}X@L|j*Zh_fSaHhYqHolOV$jW<1MQu$hwM#Yaq|_G(*u`!xbVPl73@AG zh6*eK@nG+4H%^*JdL{EWlfBUJbPbgOHm@t$*NryX0=pa_@y3vSiiKbNZKyrlDy-t- z^Y$ChL8L|Q!>tvb2pVP449bj{_CTk(?AbfvkiC;JH9(_PQ)nIr)|6il`~V&5SH8~& zptf(X*=}xbtUtei0bjOnMl#H;Wom>`VsNC$>lG%Fm=Zk$Bh4mM`P3WvWZixcuaB@o z%>E0`$&ui^F|2H|KEn0CbuLG^sF+fkdk@jODP zU(*dThWr#2l<@2dG0zQV%qRlmZ2$|MMj$?G&*6eybAmIzIqnIr>SDD?w>MUq>`U|& z8GkR&8wMR=8&@e1!Y6QnZw)C|JfOYLegYlt5oz!F0O^8s?!GWk5%oi zzzhBRG)vd@=>rQ4BMAlb6Vs*9KN;XjagS!;e0M_Bhk)O}T-%{wCJT4*@7b`6J@GFS z;T+`sBhN=W1s4{~X9H}9&!b|W^9^J>&(%iHiqT(^xCqSgzYbr1&A7pEG@p}#QX`_!1R!34@{DB>X)fEa9uz+TjDyUY~!D#{?OrT&yiH~~o5 zJ4Ke)OOXVnLYi|~(13_VyNHC|CYp+B z^cI%}Nz;`AzgYuOn=Tg$d`Ou{A?DkJ%sh+4hKdBE3&jH8ub|h9d&)H*&=#IP;QReh zE$kQ<%M<{n-1kdpdm>T^f&B9`_ffP0R&CycdZ;3*mzl)<>WAo#xQ{N9oHBJ-E^+iX z7y035mPF#_)Aw;rBv~B`wfP0qLKH0s$tI;y*%%R;voDKQ@ z?8?N_ZQH_;K|XOpzhD(H<3Qar>&hTSZOso-d z6REqMldxdaJ~Q-!%IJ1nQ_X+h=`lQ)3YqwCQ9)$^7OPnTZ9d1JR!Pq4{Y8PqhQXaY z>MvptYBdbrgcHcvsOv)KvqHS#3M`Ev3J5=?1-}H)T|p1VX85WH9dkBRlGL*N zEKC>nhax$ziJ9S&d~s*tMy7y37v&_I&xGpR9tRLOc2=lJVQ(-J5S+CiCTJ#yIhYG= zR~bEIYK&OjR<=?SZew+$=kR{yD79oM$^v%YvkU366%XZGlYU{6yW1lotzIG|0%ptj zDXsCjq7cE4gDwwCei8LX-^!^Vo>iRYESTm(x)bf{)Q`=MU|!HPpbB2#I<^P1C>vKoGS*I_eba}kcGn96e!|fwh?8E7h;(Nc{u}U{S_1ku z=X%csxi3Ub;9$~A#X-X|)3KHMnMhq=8lSLR6>bx&L%zjYoybV}4n`-lO~SceC{Ks> zdD|6#9zBIy7n7Pv_c0|?)cQ7q{y3M|=v5%}yfCKk5DeM@>UbbcH~N}h1I^dYFO?{E z=H4mTiw&o)g&lvI1$g$vf@@*&qvS0RyLlaKzeQzac~Wz$I0c1Cqg@}WfE4nGl$d>Gy!xVi6-lvv0ke+ zv;kJXcc9XFpS&{)wVOCq&Zx13_TG>6mC?YZ2eL{#TP_;TM?D=1%xRtF6^uwi4KtVT z!f6@g7wlAmItx}Er@DA(5C+<3*5aTsPt{`>d|gYd!Ghe|;Z9S+OW3lF4Q#65OPDVb zrb|@MpsB6Y+hF)Pj*@5 zs+yV0@gNXM!o8;ReQBnV#iKwh-0kEHvb=dvaER9}g}P5otay+y!@ZsK^{z*GPh44U zR@qK)>scU`?6#h>3S>Xa{lVQhdjQpU_MtXVWJb9HT$fsaB(5*t3SN^a=InG22tm`% zR$;cftODx^lR6;^U4U5K9XM%cRF_l*C#|N!x6Q4WMETfXlUVJAoJ4#};FzGqbzMz_ z&S$rz{p=0}TRMh=esvwcm zL}6{)Z9+1-1$rk1i_U;lJ)&O4Q6j@pj9#MKTo!OME}=n=yz5UK6i;7vT`RB2s3RYS zTHV8-3MuY)2q2h_`SJ3KhRTm_)aUqeDxunVk;aE@$UnADT zHQK4G>>8(y&nzey@-TY71RUb}9NN8DZBU8Ug)=XP1PgQ~%si3r1bzs+0cCM=@DDCS;`C9xwM zg;D&WG7*Sc13h=!%gG1TXq~35a}376ci~h}ZiYGiOaLSjP0H?&mm@WQZ$cByf;t1mw(IFxU&*bbt%oRNT@Z{2CLe z6NM%Y;5)XbK!@VZWcMPkOha&1>Hx7ra=-d;m~Ss3Enz&_QYS}9$l^a$57hrKp%dt~ zj(5r+X@RI?+_#F(iT)2EAXMnqwH0%x3}RyZGJAm_t=nNNPr7OVSX%g=;Bf}}TbYdj zV4Jy(|B45mn@p@mrJcZh8}O5QX0V8ec?gO%mw9U`yp}H3o3Txn#OwB zk=QBN85uFJ5HEa$J7e`7nkjtG4CK;PYtR<{oYCq^mP>y%uT<%BWi0JUIa#Df54g~symY)d%qPJK3 zJps&SAr-sp4*KfbZAb1AKF)~^Shnb=5eHo!^B&5(I#-Hcoh?|LF+5hu9V2qY+Hp7G6#t6p4I!NFD+F@UxTp;`s>lA~U;GE$AwhCuStT#r?9ZYo zj9XnJKV||URjd8}SI`dI8FzuI8`-zw0TI|?(jc7Bx5uK!>VKZHw^$W6cT~F>AauNh zQ%P%wl6alkO!|fhzLzqS+33e=%=Xq677Q}tuIoA!^mfRhy9Ux4QQoxICw%~UK!(5G zwz$>x0T3AMS3tP(x>@|_Kk71vBEY9l+KHqvh18iSX8|G`7AQ{2_Z;X;S@SOrQ_p6h zBF`4|Nn7=3@}vH#=%GLf8jC^WcuoqCK(}ZgN;-aBhoW&T>gibIL=Q#RWs{%p^{~JP zgcv)S1m^gaJ3$C?rKsS(EgdsVO=@QRDvDFQgadAAagQk6W(vzn{AcOSN+<@ZJG;+f z00Bpymx#x)azU;)D~WjV50~)WQ{dxyJ1|7FDUSxBnzXn&X#7&bXz;CaKX8ZOUZQi_ z)+zv+IM;qIk?b6C4vsN7U7TUVWul=Y=@iA|V_e{1HAE=tDW<~|Xayu3Jax1Nb3GMK z8%oO`gC!xrv|wRmPb)gK!ICEn=|u8_1vGC@!j0?V3@<3~?I3$OCT}3=f;jmCB~m*5 z#g$lZ9Ddz+C1kT%1SHp)nB>HP@X~@Dd2^Z&732l;8{EHUC-&ic3axQZKYiy7*`AKn zZ#)v>qW1})o24p?<^2a#J?>7!AM^m7GLUV@^zbKdQ_cxDaTK(`>C>&?Aog_3P!1ZE zI2X1?_>kxy%NU1_QbQl&?FFNq!Yqo)l5sW8#X!kF_Z^c+;PhOaMFOwWc?z#TAJdDX z`awVqa*|M7%#H^3H6Mi2Y(!ijlf#HUSijj&ke!C)5z8bi!o7IR*q3t$&H~88r3T@1 zk?(EoWJ-lh+t3dg`Cfw1k(-E}LRnGKf^K8I^$_EQ_}J?YP+>%tUUKzMb-~2Q#p08swdvy3(>T6UVOdxByqdw$qkh%LngNYwgXWNEG@mr5y_as=}Sbo>`hm&?_OOM zQ*l$dUEH9~OW@J894@lfU~H5s>wD%4?a^sbDNir8lkDiEMFVxw64RleWW0Lq?I2)! z^+Q2BTzk&5DXXvV&|pQju;h8b7dWl3AooK-iFjM<7tDk?V|$-$HZniFZMAnMxY2JZ zJmh71AiL?y^aRHZ+D)gX=?-MKWM#6Khpr8LKudgbFgCgTTDB)5MCDCVn z$_REhN35s=T^}AI;zOzNxPU=gqTc{yH_lNA4a(pKbJo@d?g>=;@Hs)zz5aDKNoDuj zgo9P{nGNU+=DUD`c@`n?T9{2_!|BvjfQVk7eH;8z8*Fck^GzGfdnK^AxE$KUcS^4%641aI zTVp>3ZILx&DtIR#6*1wLN`43X5^_2?ZxVrP4Umm)W7GSDgkSTJ5KhSka36yaRg*CN zUz%a~3d967 zZqn-)m9qnuK(Nfb2Eh7#s_rL+rd|f0-9aJyrv~+s9GL53_{Wdcb*#Nj^#Z|$pQ@|4 zaX?PiAF6{=m(dp~-TArldv;b7O@HO4%9dQN!s})M zHmGyuD$34g0qyp4sGZp51_F_gFoOyV@*S`#4ut zVQ{lV1)iQOC&5RUB`Fm+SDxD4!VRAtygv#{ePi`}DYxuJ0^mPX7G#uJ@&(E&$I5|o z_6Lcx94f1jZCIQIuU}R!qFG~>tU`C^$`fU>XD#(3Z?smAo-->N#fA}A?EVjxg`M6k z5Q5~&6M3T;p8SV|Wsa4r{MyykbpT~Sm2+E(tJ{MVFOlz+DjV&QLt2GYxZRXUzo>3{ z^BJsdD$&1wQQ1fds>I1ptcX~7ypLsFRxPuPC^IQnHcI9ydkV9F_$pTp?xhbZs8a0Uj|!#-DD zKl@@M3lA1GVk?a&XrHHph-90KUF7|^!TWbzJAx>GA;;F{WXghX@(9} zcLbjb09w9+qIwRMOZpRKAex0BA?L~wb~&@|>z9>5HqAZMv>`fHR-KnR>%M+d+0eub zA+~)Uc|na||D^$Fc$Vuy0spSSlXwf68&@Y;Tx?+37DEojW*Pbwa%D#VEMVW}Axa0S zS8iZFza*o`EP!kHsj{An$E^GMW#uRb7PBN}nEI)*%$lLhy02eWPU2iMOHv^*uH0Qu zdH}h>Dy|D1|_9FS1y8(F-y|p2v>G*uZQsWX~3fTNp}|i zqk-nr&1eq@Z2#Cmb->&->%V^0z|+nviMm$(jkxkKLjNvWmT!xd?2`aiHe$gn>6T^z z%0aGdKJ=EG5J|P0ko|X+rx;=oPMnstlOL*QanPBCloo%eu1bfFlg)Zw!^-15T@M+8 zW*LgtwX9FBlvZ&TJ6d#XM&`J(1h%zQE!u|GDT zT)wjEzy3>u@I$iT>sJki>2wtRE|QmstC1>~_x82~WnbxDA`E3z*w>qR!P^*+aZlHi5Mz z#<8BOR|!*@r7Eq%x$+Dk?+fvDYg_!bdI_3-e^BH6p*nmvZPtDLvU1duviYt_uk%=0 z-P3K=ef_d>(Ea(;0R>++SGP2tEk=$s4UQU9ZX9&z300W|+VH%LIX z(pUZ0FB{lNP27rRxwDafTRp0@t(l^Zn?v+lkZ6I12m7|OtCqUOOj+KiXyv?#wGXHmFmlDh( z<7$?vGWhyUb)!2Q;?OY5&|o)L4k0@U8pK`VEL2A*Hn6;wEYauej7p%0MU_2gZw%dg z9LOKIdUB!w1p%2U=~(@#dXZ>J@$g56@Ap_e3kd9y>v{dM@_RYbG_$ZIg-nR2i8z+1vL!+$*-!l?UiG`mNu0E1NqXMl%1#0-UPaHAV6J?q{63v3<|8@)Lmvby zyH7F{V4cW+z=!!`^&x>Ur<*7cf;d(um9RMLzJ6KxeNxtFORpp~cB*ax#vyslW(g3E z{Hb~b^;w(Ml=bXT-S#_4UEs#xtGgqv?9{`u4KxcVCv#=by-d2=|CN`yv&m#Z(3&M` zfQ&194%`$f+WFpB%G__OCs{eoLZrIK%2j|K&ZMu)ELWcV?BeivTat!x&y}NmF=nCs zU#x8GK3y0a%o2d511pdAKI4k|vRQ_PO%9cNeoxCft0ym!Z-Oc(n-Rn*XO^U&I9DFQ z$XBzRhqIULcY&2H^RXxju?8;@kPTIKq8BA4K7bX9&ao#C9`! zd_7b*ebX%Ae6v&yxScD93m7TiraW}7d8nS#Bnsc2Cf~f`zpNZpK|H3!9OPWxXyufU zF-@vH0KH)KJ{C>c_BmZ%BHkCO{QpsQ=E&0IFmS%h*z;nzFQ!5vPoD077d1duy}y|s zM%XeA#!KTFaq3QCCHB6AcSoEM`V5Z6s_6Q>9dH%(R9I=UdY?h)xwtKu)6bView z=kUS4!_jHSYK34w#0M`DSY1svjdQxN#$Hdj@H2`nkH&*dGb?HJhHdjSqsj-*WIF89>pzyMIW|7HMW=(-3G-uW z8Zi2|!(&XqD>?S@KmX|jtAWe%o@U7qAu)wN0a=*^G~6x+8_rifSqrCVnF=55L=R1} z-DdG7#c|N#R#WbhCdXV{N%i7#aQ^rex|J|Z5oM3(gQpeZNKnx%Q$GhEY#?ogBRYH$ z>I?B;uL*9Fu{29eq%_Ben2g?&>VDi$ zXhI5UmUZ;ce>prZCP%FhGm|%}lE}ZDpn+01J%pqG`GhJdS+9B~I)6Uga>5Eq&Ai9Vi0k9awJ2CIsbeTi>_bQ;HlOS#ZW8cC$C`o{fP zn#y5EZ~0FL_tqY=kOMoLy-jddm%~jOM_{RDd8lgs!{J8%7Zt;55LT@MyBz%Scg}70&|S3U04;G1Z-S^F;mG3oCrsh0WD3(CKEUw$XDpda|{8 z%Z0z_G@e7};L8TQ0{jhe;DZ&KIugEdrVf@Se6dyK2s01dEB`6!`MyBOY79BkP@spx z`7nJ69Bk`~;mJ$@J@Fw%8RuWn;Q0g01n^GH_ExfNL>RMU;wUQgKPA2SE&`WBVTtw1 z|MS^v#;Kv|(+BG5xzN;-Dm-Wz^hy~f{P?8{`up`dEhG(|Y7Sa4Rw0I*PXp~cr1pO5 zghRE`nA%#U<@^UbEl`uDi*L}~JAh%?{RYOp<7aCBkGvXt$V*1$z}G$b<(~&D^l>{q zZRM%$Pf5jh7@$X!a5=LD@%*lhKI|ergCT<}YNWr0o*>~e9V2@gjlC}&q2D#yZ#Mu3 zbnyreS+`&;eOJ6}s~3Lg)E;nkN${lDVaKEnix-U(9i59yP$xNcFr7^r%qv?h7hMy_ zIRDv(-H>{G)bEnpr4QhImeDa@6gKL>K$m^!8g$@xnyS}6;P~6W;XLmQ4xb@M^ghPO zIIlxr&g3$u$&*j0@!}xztkhxmSQ0uBbI^yt_khv2%cx~$FOj|jj((4t>L-IgqQXMH z!o+g_5urcQk{NXgD6|)PVsYo=S8_QTxl1d0CQDEw&(eX1=OP+$MkrHX^;9}~zY47& z9*jFDRhlSkD)|4AZ=86q9^u1m%{`gGBXkR|_xd?K)D}V9^|88n|ca&29+D!-e>v`y3*=WNk1e?#n~HkcuS0*+tjAAool6?{p6?cSgS@qcM!Y2+PiVf%bIO1Z<^RO|M;?5&)PLX$u8XxI zpdP-@!kPTJKKx=8pEJI{j=yJAa-H1EE0a2udKiUTV`!7E zwJ}@z_gUV3R#TJi;r1zAV;!DFQR+EEg@k^=Htl5bP(+`X9aJI7H`Ycy*6Ir?2tzzr z!IR^9;Nk7#rRc@2q9kb{fti}3N9)JQZ%RL9SQ$6x1AEt|@Tre&J;~bl{myqRe33*? z*DSvb51k{Ko#9X3#iuntxSm7*dBn3n$qFX-?pj&l&$2nf3p0&> z|2w~&;>YXS)31j9-C??y?fR8Y7j{t|5S@8I;_~U}?ErsH4)du^_`Zi3S20Nbo-pdl z6V~&QMqCZz+ZzGYI-|%Ow$1?M%t-^-8rEceP8~szD1R^^g+h**S&Ir@g;F+?c0MKf z^k{#e4zKX(!}S5KCjqXPqAr+q53ZX*KCuFnWPj){q8tmgxQ5uSwK@HBU$2z2(~iy) zmbZ@P&oaMZa_1H;@0R1nFVV|M)YYEDzprBj8(CGqTzMeM4#v8p+wt!Byvw}6J3CBbf^%D=lo-|Jny_H#mHWrxruEeH3Cg^jWF4W$6`d)n zf%kOJB4Y8}63g52b(i301p3lrx9ID*;1rxx{cZA~PPG9JXAtGVJ(QFG=|GVE3JET- zi@qJ$U5x$+ul`ZRl{3Aa%PetIYS-(%Eif|j<)oOdC)pk}R6XVMZPC8QQi|I7jhQBN zy}QSQ7U9_Gr?`M!9NZ^Y%RJ{ri>-B#V6jMNzbv=wgrj@^Nq<*_FmB@lgK{HnkvIA* zF~TTX^JzFYc8}ff-&GmT8mcS_%N|?MuVoGW@F?Odu2-acyWrpP;sx!#k=n|E@HaU? zW*(n?ypn=N7$?%e!R{Y7z})4J6=knzZ&7VacmzM4STdpPqT6Ap1*!9@zOw^v;IOnN zCo+SkIcb;u@#_n1f~{uN8qPh%$D!d9tP6O{_wk>e{2c$iaro>(u)&JCQt2?SHne*W z2%T0ot06_PVcQo`eaiIdUdzj(iz6TV{?aN`A=!bg1XlIL2D@XU)yE#4h+b`hQ?u7f z1(ioN)6PUEDagwvU2|jt>?5y+BILEpuJcHGn(`@^7@l+D>0Y#ow=tjrKGzaprMpCz z4e*w87Rc`@Fgd_ImR#h1Nzg{sYb_Z^{w%)0>KQf^@o{$##EUHFt0IJCKT7&ATFp#yaENr!iC#@mL^dZp7KeqGO zWM8_*LbKGs|834kF}SEw>N;MB>%4TPFe~0-6N$zw zHRCB!9k0N9-ty=T?>l~vqq5E4i=l~o=19Z7u7)9b9yomI-cNFEmbke$ow=k}hx+`V zO21t#{mNPw3~hT`MosaiQ`nL~caVEIKg+Tgc;a$6QTrb+$0slApE%8HX+pa*<3e0H ztV;E)vv%F~amJ_i;gC39EDV|186Y!XPnU6n7i{+sD?k_QaT);^d>@hlwBQYp{a;N} zw-3)*u~TMxU9c;fVS(0v3O!sRH-1-DoFm`3AXgKuBvHQmx>na1hzqi&?l&nS6^D;J%H;z)DH5L2=jA11FPE2m|123dZ=X0@TDyJZ@xG<31?~2gL;1bj z5Y)&%<#@FI`!N;2MUS>-%93?zw;>waxoErQ&#qvDxDmFj-kLFI9~~k@ScPc+0Cc^& zTVNv{VRBfx3T|=a8ntY;n&^7kJ*DDP7RQ9H{(RFD9v?mGn3MNR<8TA}!sP^gs1#%vQ_m2z(J zc?$>WFJK^^gSP7bZDxmPevbqXS9PT)AMeiezW_!1vs;LW1No6b2}e7ld;+14<;{2^ zGs?oc#^2#f*lVc(c=}hc~pAkPIY1!ogQ0dR226l5%ve1Y+ zWK#ty?60Umd21aM?6%RXy6F250L+OMTdDZ<8X00X|DaY-Ak2%KO@%dT1G3alx7Gj5 z{+*^cMKi(cm`JY*H*BovV0%+3o{x$CHs^mOw%vroxqtjGp6otG5QVee*$U+C^21*u zA@JSF|IxAsYVf7DpG&P3i}|P!FEgAU? zES>v`Tn5xMeC)tvZe;=FOxfIs4OUu`(Va9>>=6;Jn8&#|Ww)wtlpZY!c_33Zp86#m ze?BR%6Tj)4{)8Ut;nv&mzBb|Rv41wqOM|&n`2v;ph98NtS9K3;QmEh_Scw0t^z(HZ zYNP0)>HN+rKC4Mh=ZlLGF#F_T$}q@TA2c}3vL`%o)PD&{A+JzZA+^v<)&PZO7T5F! ziolgArBMs>KQ706h5Zo*+wZ2?*u~UwMkt(mzUc>|i83y6GPd?Fp^SN3-Tb}1GC*SDrGk@PE%(tl?uUg($Jx(&! z@6~YNs#a{r8gl*zl7H)KpC^UqYCm}%kFes;c@=LK%^BuGVdnRp00FF3p+`{Z-T z;QzMskNb~1hFSRIb&j#|JXo4KYMzshC#&VRD<0>h_Z$LNUjEe`8?$$kul+kD@=?0r zP>=opo!>4#Z&l8d-eGjU)Nij#^=wMN|Is)x*S{x?(;MK=7ylfSM@za5kGFq&}Yynl!8K zC!Eeh`h87+MP#kdd#93iZd9LF9|~4}dd*qfe_3-Eju~Gi{yxCeYWU}EX2nW*T*jTH z=@~@=Fx}6m=Um@vLv_4cMQwY>(6`Sr(r^F$j{f(`6GQFkcd0sWGoH6?;vK!S(+?B@ z;1H_s0(a!844%0kK}yrw?>R$(?cDM%zUS0a|5z=joRu%@M}3EWJbGn)N4^x@{En3G zYo&3UhU?qyWF_BTs-liosyIhTW~~V!;u`Tb=~>~o3BVu;7%!5~nHIjtFv3ztXlmF^ zTK5P={H#uI*k^wlaOID8!2^mW<=eR{P=)XJ%ipm8=E9hu6A?NE#ll*uP}3l>5bA(7qJ%WJmso7~U~VKlfEdJ^%gzweuhX_W8(Vb=M=kz3uQy zg*vf^P$%{7+E+t9qZo|?L+dLbyF?=XhlQzMC$!UdNE6- zBU<_ZCm6l&XC^7YYSVqEm0-$PrMA$pJQfm9YJ)~bokD*J=fAA?)Uat z0XKmV*=wsS^&5t)NkLcDD z_lh&%d``&PfmcffxT7bcPS4Dah748hPe5Ey);rEz0c%tVWA&!u==OHb`up-{z!qQOc{PbFn!ib?f*JAa#pmfyaAIv}w;5zzM>*%> z;td}%vw1#EfMYBDCgIGTJrNJdM65E@_Kx2KO%c`9DiJb!_zartHgeo9bJjlkyzR$P zm)A0|rCWdPpNz+TX5W@w>V)FXLc)I%X*Rv&CN03RZ!G@%KB1g@49Hp9W{V#GIa>Ni%Xor) zdCt1#Mmba))5{D~D?Ptu!|z{+cy6+HXTf)j_+&-3mze!P;!i$0rhWAJwv~>zA)7&P z*5Hz2p0D)`<^+D0+8?{{M!c!v4Cs3oFgpqv9bH?`h-P+}CUI8O#ngoq7#8D-5le;g zRs+Xih_`6cFka4CL63bBIM~>-u(mnrw03*6<(uNg(!V^Ldm}k<#r`@cb&8m+HYr(+ ze7WB1?cqkeTx>gJp}_Dr5ooUGNV_E~N@M16tM*G!GHDT=Y6<6d7F@XXN2`67y`6bs zINZ{A%REmSrDZ^D_g(8b_wK91SXeDx$`Y!k;%y~fhi3@MHRaPa)S6z$ zoke(CkD_|R5b;!c+w^{g<2oh6W%B!vWT?>fmJEJ&6|Zu;n}T0(X0y>S{7@={MJ>JR z4YH;*w3knJEhP(eO*QnM7Hzx7ApD88BG%rtmfPzQ2-oE_G|xy)Bx?&?8qs`RrS1Dn zyDsXg=Dh<U_E1tTCK zYfNzh%q$+#72BNlEbw&|+nTo%WM;EM$piV7*I#%9ddH*PaH1*gzmk7;i7xBdvfhpF z>d^W9d1S6iRS~XrqB--?fy~yI+~!@lXnFVR}7fKA+jH?}jLKL~HygtQzgH zzatR{Df9*o+=mm2_vJ1rtoMz-J91sq4&#{_gMNx{+Z0Pw+i7ED%L%C|8N-&J#l~B- zA@L~|xhxq9dFE%l(WMMsRWh|ROLFo-bwi6%wG3qXM|9+Fn zis%L&{a6i$w{K>hG|IASKPg!#x#w6`0sppbkNSi#!`Q5k4WGZhZJFz{oG{PTa6D#t zRI$$xhjkUYkWJ0&Lgx(v+tYK4diIpCCCQKD<1!y_OjesZ;aGnut*yv$X)2z>u`jc9 zm^qT_N)G zIPh6)=tnJ&UdyMJ3q`W#x@8!TJGMui@uWGZ10FE9W!K*OajsmtD@hiwe95}(DP=D6 zS^Z!i4AMCk5ii6+XAe`9BFR!xZmuW5lJ4pWG;a{ZQJFO3+6+Wb(;QJwbFSeDu%XUd z!{v<)mWT~r+r=%n=Uq_uc}x2&9p!WY$LG^fSSYD*@5s0Q8Sr}TpkV|;W0grK5Hl9+Rh722?=l&;s z=zK4hw5)2k9PtK2BI5((^m`x8q^}l;So1lHK()o|e`!mBWJ=?1(5Mwqu`QYmtxF4k zZ`$zy7|kO8$O35U)^0(~&zdhaOZ82iD5kY^uHSWW#RUQM*Wx?-C3{c^tDnLl`V4%cEOHTU2Dp-H{S z{&Yone)gwR1oOm;E$syVMuK{t?@OH79WRvFcM`mIANUQ&`%O;3KpPP|oa3aQGn6<; zzpvw`*9lXKH`c!=Bp>e?k{TTNP^&frPw@&2>eH)s3PxI~e2?@y)KZkXjLTn~`~5%p z{Q`n^Xqh^nFT~KZ9lGZBrsZ5X_540?Qh2An`vO+MZmcd=(srTFk1;4gkNG*{w7Z8H z`ncryI{be|>hNh12B+n)^^=cfQ@ZC%b?K)m0>5{D8VC!%ngs9?-1Vs!1Z8OT#upwc zFCRTMn4R1T>RkpT{MKVM)92zzoiUR-e_Ou)ztk@0c-(6>9WAzzi-80vd{GS~Kv71# zv}`B3qzhs)FhI^T6HyqHcgA88?Q9!Q6aQmjFy-3jEjh=o^CVTQVSgGFE)r#2X zpyJMt7wQedule~0@QmgPS4C8p%5(hTEw^n4WXv2Ytz*=pF3(=1&d$vTt7w0;+|R$_ zGtbPWk#zLaHg^N;8NDHDl_sBH^r+KwFttNj;Kb_f7@w1(>UmDh=ooS8KE9qO)TbqC z)$;6B+!K2y(FHJ6#>9!qIK@tF zw-s((=E#fM+k))I=ecJ`agoazuJzT%1vtG#;DxDlnFZ$)-v;3h_Xeq(t;;@PkMPLP z7okC_1(HW?n`Hv5tKmQy7=KOas-X4hER7U{J`2Na2y6LtQ95OPR? zw^K1=-F6M-jMV~s+OAtJG_3Q{Gnc=$uNIm2wq5oOHuHHy6@Tp!l@UTbOY5DT-z;qm zEq$Vc-E~?E^*MsZ_N#vW`w3mDkj(P<0srCfMLMRrt?UbWWR5aDJUNn2bFyYy!S|%=q z_E6soiDYBxAPbtGE0Gh-4OTF*Z+=E1Cf~$mdOMVm7}M)+&`--BaqJiA5c|A5Zy1-B zQt+|bdnw=|#uqerDL-xMrloL0At_NHx?J<^J zLM=wlTH|Heu3QKHS)QrFWqcmDoI4F)f_)QN&h^NaU~5TL$&kDu%T%$iVAP?$P;;UOOOTbuqwLYO19NWsDJwiqMTQ1+kQ?b^Y1aR3eUyl643@) zMl;Ng+VSCSB5XILN9T(VICmY@=&i}0%CBaE!mXE-z~QnnEqEO9SFYjw%gd`ua8kC9 z%Skn5yp5GKEjwu6(LEL;y}qB@9{QK>_)z|3^h&Bofh{W`j-&IJFi!a*_bGyo#w#r> zYgV7T6tox9#1;f@=**6HhWpi;!B;Dv z)p6-^O8(7D3T-`IDdj@;_M5^?5`uW{41bPX$oq?a4qNx}`oG!ED5aZ?RD-R^w8>m|bFfdSAB@p=vA?Ot?fvm+LNi3%pcvLswF9qJ=RCuq>ljdL=EbNW>Me2m%xN zmoGt?`Yj1$Nu9$b3f;Kpyy^H&gF}qwCMwn@5VeO@S}Q%n0Z>>u;rz@6s+|^Wj|O!Z zKq=p!)Hw(&Lb+2}L0r_A@oZ}i?D%;@R6!cG`;ZHgfm!GS5`KOot@=nFY!s;r6E>-Y zbi0-xy;|NsD#=lW`fBl=$ogqjH&vHUd#75J)qf5;+h*j1vVQq1 z=k=+rE2)at{#&T?uP@NAUAf;ji&+=87W?)5cBxPo@D+SU%UT!CfHg;vOhP13llFtgd zLV@z1bXnZ0*Rq3SZQAw%@TxPv=rZELSWK{*I zed%%lLS%mq^}kT zNQTLn-#nCgvG?1pOS!yv3%64ia}vZ7^7e!yQ4gFNUD^)D=Ne`)dnPNsQnwS-#)@zP}RI&N~k5N}GbgRJWQ zWkYi$V*IMRf!-ytAGz$Az(jP5`dmsT*1UB9bsBgj0%0K{@j&05XN^_*T*(*mjeCw7 zKUw$g8kcO_eh@8x?x5%=^D1)y^*`HDc+5^-Y@GsoZC~9fk~~(K1^D#FsC6ur@gdXw z!Jy;-5IpS1Q_@cEV|2A>n}O(EZ!((gl1&IX^mmCMzZrVyR83iPnWH&t}C_WQ00 zc07EsaQz1L{&{MDn{;lw{HwQbu;-%?U`Cv~;oMdAZRbe}9Rnwc!;{?EqT9sVZIW-^ zp}^d?oCE#5W_t!W$q1gV|7@^y)Q|jLdQN zr;mVhN#zEMr12S_8F4pg-P#DGf8sr;0*Jxg8)#VWNF^9Ud`}?_>{_TSz3g&*#DX=DAeehx@h4^;*>85pBnkLI}(oXy_CKb>_cUSR$P?KA#B!_{5gBC3%)h z)h=jZNLe{r(2aF?S5%x%-}VH8SA`$S($IvXoPUD^_kKM}DQ`J4Z1M~>=^U4NX;}Gp zXjxfvRZ?I7REE@b9eBdpozT6vJ{WBG>Z1ato4WMqgK07--8V-G*0AghKC}LdK=Y5_ zUc4$wsOgjI>uDY^dhx8%!&HCwTbZPYqh}^zSdS+6q#~PPZ4W3eOEx`v?qP5n8xT#7GGi>v@8J~|`3Wg(H$U(5nepKH~JbX*- zDY2ZdYpL9F<+eEB_CU!{>-vBMI`kDLrQ7ZRavQsgrfa{VsMqR?x41=0mx{nm{tYi5 zD`K@{F{+WVu>M{uH`ss50ECH-hw3H{=UL&I{D>5TTM`oW&H z+?sYwt1}iiD(uzg|2QxCod|$vrwM}-cKi))-3mACSX#UAK(8k4rhd}7CjJT(au&To zY2Ug@qp~A^DJ<&j3ZmB+ys=nEQr`~LyulAZm&V2yHpSVncBC9v}1 zkK}>^2RLgX-mc&Y+%rNigvZD)37P&i0Y9eC)R(5-ZcWM2RZYVmD{<2DB@Vex$rqm4 z%M;Xbnfez;SC*Qjm3h`uOIcfr>(Mk){VKI#OuTAfz+&hXqJZlg4G|Owe^W}Nt!j`T zg25V@pzKF?U5pYR31zlfAfU1I_0B6hzz_(=OvAg(H7p}niS`dDs}SHr6?R{h5s`3k+ zSs3}rHa`t>_S&v4AhDJ6O z2a=0?o*-U2#B#8|-{1d$SV&vmo)`tM{fQ%~k0)zLw+Ds>LvhSV)DYIcVuT(Xmpw&% z-pIVxbSY;kA#Lum?NV2o=y)GHNK9$&$_yF@cAApFG^*3Q?h4DaHz?Wd3`Irt$}&ru z!gvrv;cEIBlt0HQECVV=?-PFT55*Q|fegfyW78zu#py5uu=hA2re8_oi}Ahrkb19) zIbs{+0jC*zcUZD)=im);hOL+(TqgB}ht^>+<{%QxBjd7=^%-$!xc%(v z<}9y~iIYz^-zU+AxUq5%JAzSs@Q z57q-wO@H5(<*2_QrpBsLk5nw9Bgr(=*2T~ z=LYKze1>Iv6QMWqSPjC;*7yXAw^ZT<>SNh~w(D~#3nic4zb&*?@a@Gk#pX#4zlaH8 z!{!8l^`c7TEmLVD=t?$XE?2U+1dy-#9UOWy1k+fG>Oi;{6!E9|BN4X76?8?YsF)ID z&aAhaktOldVCf@StX#tmRt$4>yg@e3t}!<+L!Pc>frk>narRh+H}rpmt9}PJhRQHP zgI%SlI#7ONBt@$*)o!+8j(pRIN<6sD{1Kz>os2TS#6T}QxnWL|saIta1JQup0vBL* zVsBW-EsvFlE&~=(%AMxt{<%;+6|?5&j%u}7c7`>^AS7--XCcd=KMg`6$_;(4hN?`V zZa*1BOTJtvPkdG@1I809c7-nybGzN5@EP{yR>L{WX2OSR_9rx8dybRsIW7CSS*m1S zghxgG;tW_rc^eLQtI~BWrG?k=|F=%ka@iL;N%eg;UZ;Gk5E&aa z+}dKnZmwsC$d^ZQ-E#OA<^a0={QA!;NI$W`T2ESi3;wzFynGsH_rH;j@Ae(Q^DEna zep15^Wn$v=Kh5j@%gL6u%oWBGspML8Jm;J9%q{+RI!ZDKxfjKzEOd?yrX7_jaAO&& z93$|Fwq-x(7IS1W1s_ZTJk4@>i?nuL;fy~myNZn@i}q8DW;IC80H$|KU92Ldtn;at z31t--PQWv4axRG`JM#k`bn$mXZGSsX_>eUFysszej=vx;b7hY73q|@*{11nFma7KH zel23}fZ*Rn2M@XWGUJ8C(PdloggGy`=Q%o~f~WFNC1=F046(@y@Ufh4PRgJ+;oxS1 z_F}b&RYp*c4b?O*43JUL{XN!grxG(NL-3+BIbqQVY9_hH=e{6d1!fB!4$PBUxN%_O zyRU}xPb}9f^+!wRpBrDS=7amC#VJ@vMy$)$;L#-cmgc#YX)82u4y3iQoJOBSeVHHS z9%(Th9xOO81&NNB2OGM*>VIWsh6deQqU!@?y;NB$Ir!&NgH;+mx;kf~GhI%x9@Md_ z=~uKyXPZgb4O>N*Y7HUJTssDM!CS*_(pHue>iNf$|4bmrk{L==s?-`-$@!LPp@)sk z*g6qN;5oTEE*a*c{I&+)npIJQ-mNR5CA{5}zrBgX7tP*DGnizkR+gcPpv4|si9-Bv6SuHp-aKp}_{}9}&M0&pz-c&Bkm)K&V z(4FK}3c7hA65i=w>~lmh;Qz>lO2Jy_^)1PU4W5}L9I0QbQdM_Z4Lo5YBD7u_)*10K z5V;{g>0H30#tINX+dR+C&S9Q6qK3)nOM74da^@1zZkyOA!*_n)@gxP4kkbr$-sEXE zbY{z?!BRd5ezfIq5cY9BFk%nwTIGU!8wk^~Ib~3Zvu&8T;p5;BwThb4vNrvYzZhaG0Cch14A;`qAsq;o}MMD3==9ZGhy8^X%9G3Hr}7 zvn^KJoyB4=Y z4?5P?o;C}MSNTUfUD7|;^KI=)tIfm@HbZs(GcB!%|Nm!MS}}p70feN&#Kl4gk<$HP zw@8356_m&P{O1W|Ro0!ASZ*ORH92TDXOTT4bDt5i?7&#Q8qPadI4Enz+bYynZPO5X z1Gg6ewy(pLWk(Mm@i{ueQ)W>l|E!m89%q<5WlGL|W)FH6n}pn+;G4njZ9JC;O|=X? z(f^br(O9FRr%bhFOcUm|y_}?=|M|JK`x`19i}c$TfxeyaTM5%9mu5DwDk>YDs$N-Ph}}D z&$&q1(^wZ0`&{+|E9;4X2?B=c08K!$zrC|UViMlMzZD9<7~TMAB1T5Z7S}Q_mtp?M zh!dko#!{JdYjMt|oNwhl0q3&y47jX1H`HwcHipxY$FVuwd(*i@zU{9prXzcj} zg#6v~+^YVCCtxu7f;B8fUA5Orp*BmxBp_sr*P0?jd}v6^i3a`ORr`c$8n@?;hf|4N zDGyj#8!m4aE?Z1yn#dzyn#2l7OUX! zhP8xpX`%UHy}uR$XD=h84Zce*UA|b@O-TI1I!%j)JKUNs(P9sNq+3fU7eXud`h~yE zTk`Fc3ptkW?bNJJoAVk*2)J1>PH#Lw?Qn(CS}+DElKQUA*2nCR3OBUm3XgP?MD@b( zm?%kAE-`g)3EJaUl{Y@FmFaLt$hV;opBlv|Xn+}T)0UjkvD}(2i=V|BISb(}*n7e& z8%ZslPr=YboL7?1c%R!AlTN!f;oN3RUoV#iq6W2wl5Y=y0hWe(YGxYq$|RmI_jr2$ z5A}@94HJV5v0nm3pN5X9UTfi)jkVAQ&dYP7qWa@4HD!BS&L~+!l*_eneU7|OHx8kdTU9%9D=gBX(1a1lGUEX*6y`0g^on0ob{apF z^OXd3lZ=uij6wDcN?M`3>b=my^NF{NOUvco`?Taa>GttTym&H?Vwufob+M4v7#14pA3#~?4S6F&^#{4qQM zPBj&`xJ!I*u=Dyfo%blbiSfS`r|tEJ^YFFwE(wWRLkoi&&`k&SICU1doNnihOIRE(@zOL?xrKe1e$9RE8ZIr&O4I8t2Dx|w#-)Xme%9jn zW-#j}!MMx%nAb0p66!JHs%kv@69EoRpCC?%S*9jOt?&VWy|(-h;qJ9(SF2gz5*vQ3 zuvnXaq5Ro^n6n{@WRkxV(Y&S$osdhx!&AkZ+GFeCX2D*yX765Z5yeh?=j8&v3_ag_ zs9_BtFD%CX{p>zod=7@_HwV=wW(ZGH78O6drP}f5M8{VPYW*7)=(O( zNNwQ$)LG4tYpRyc@fBw>+&=DCpJ`9tC2DYwL_kuzu6OB{jaesQeCw?l0I4>x|JEMd zXQ&@xF0Qxb=^;hZbmijSI=4?;$lw|PfmbJwcLk+54RhB%fG|X7xNdN!1=4X16+sT^ zZ4nUwJj3q03omr`z=hn^-GT^dWi&ggEZwFFekwJ)+3OR!J=QGv|T*gT=@%k;^6jHXcNDlv***lGb(;n z7aj(C&9_%rG~asXB~_z;f4+Rac)i1(QuSKBSMD;o|I)`NPyqm*R@-6rN&;kRu9m9k zKx}SPSXZ`B4~I&?FsDhkw5NlM7`}^&>guGUS6KTOYV{beetM z1-ANLinpLY8vTGf%z52s8f7iwOl_xfX|aicBL+53FD>obato|mUnt{WktC!G{{NxF z*edrRL zZ&{3R&2K!lUm8-wR8=a31GKq}(yOTv{AGF?ox+i!ue4|qqIb+?woQpbO3avgmb0rpN;^=JLG!Qxc528>IhDT^%0G>vTuXr)lXDY$MEqZsGhT2nW=4=eV8bbj*ZI5LUwKj2%(= z6U6KR8!Zp3LH{;B5D}s4bPW$g_9UM%AtOWbeH7^Yc&vr{O?_I9 zzxBb&2wk-vZ6@0Kn0*kS!W`(!b}WpIZqk50nZrizL@1v?op><2OReVdZW&Kco*<(Z z_#Y%j?i3`N^L1eus0uT`^nyfmDIrpbFAouh4w2SK3k%IJ0#cz5a`?<>H98scY5SPG zajnl5SeaA69Pwxm%7c0ICwnOq7TC=+Y0`DBd@K(7tSw!)G#0@EvoVY`LU7Ezb^m^t zu(nvJr@VIPQR{Zdp7!zI*S~H1yn${!p9KzcMHCt^qHOa1eeC0Y!3T34w9yCin=F(L zJD%&G9xIrmOQh)0mb;RB&S!^BZcpjw+GrN!^D!{~-Y9=vz6{2x|02`wz_cG7D>ua2 z)R3iX2dH_venbR)p2$=|$)fkP3$|&U615(*klnFai2TZ?oeSHB&w+pjZV!4}ci(dO z^a?M!?N~6sAJEZc1hh?Tx#Pr^JN{d6xB~+9@G&PGJ)PqIMiMfm49&ZE82_fR6i?33 zYwsi~B>R{d5@!j`9xIS}Fo#9%BGXZtEG?HF)uA&5X+2pv3@tOMX3u+xbvkLy?E|ES z>EG0F71KD1nW$8AJ&SHsYker4#IFatYf!1#Ovp6kaUiH8n_hQD3r8vlS6JEpluHSq`NmE4L zBm*~a4V%Lr0Nd|UUlDWCF7pc%r?#DmGD2gxFeAm^fR;>NBKm2Ti4hAICJC1{G*ncr zMf<|WVerefc64xr%DWeTg?jOYkaNi(YfQ%EK&8g$ySkC^vRN65!Z#Do<_=6tK!IvD zd?+(w2+!vt2sti0&s{@{Tg<$KMAS?OvjtIsjDw?I+eOnDxxcId0!vO$qv1XGyP(W* z`D2vGT~LooCs3AbEuG_H&uj-KyCuuS*WoT4w;Tr8bLH9yMC3Suj}+kf2Le#|lBg=| zNU>vQ-v5d(3CamVq6Y7KBwrv#C}a`VAHZr7IAZNLu2ye=G>gH*c~l^x4L`rz z!OwIFhybr^T-uewj@`-Mbj9y+^GJ!^!hTUkjM-rfo4F>f5sk0F%b|Te78jLN%$cw% zxp$vwcfZ$Zwp0F+cXew#FP-U|wHYb?-n@Vc0zP9ittru3{xm8aGIcQ9RhmLA&4kp6 zs{yHCpWFUi?yGk|qPXT!P8GE`4?*xsOvhXqB8M7moE*qba;pr|fq1W{n4OGiRD+w6tnH!fL9 z4yZL0n32uCitN)Vak}WN#7z5z=Da0(_-A_oU~)5ir6QOq_iQ8|3$rLtII6vB?^^Y3 z4s$JevLo1>0f&S92xUn)uyVzh;}3{^zL9GjqQ>qc*;a3lyT97Q%q90Vc>tC}3pvKrWK}Xd(SlY} zp3>xYT~KLQBAj{-bA#36So6|QFAc~B@cA2Rg_o|DFU)8!<4hcx)&J0h!sG{vvS!R; zo4pd(@)ES6q57Ga7O&Lz;bD1YNoC)tZv`ft#)tsFu= zV)K0kGP%J8RMvM1tz&hlR>~Q0iaRR}W3dOl|BR{mBh$N0b@46Y6l`4=fZ}2RrAdXwEhElXZ z59)kIdicxT@DqWPq(*G0J!2^{a6lMnv1r1-hb19H*(mxrZ+;I@67=mI`B+cie?A($ zhsPK50~S0(qC?8NEX)Q6_xA9V=#Ey4V{Gr&B(&(8Gx1-|>crhYdT==Z2Z!gvs5Cna z%37y;n5WqsgCdKOM^mJ08UO2=ua2W5jUrq6i*%pzal_W+cGOcex`uBVLL6!zFj8#4 z0A0uMe0#S3ew(t^rQ_fPA3J^ai*yOwEh*l3RhZ~}nHwGbFcMH%ZGt3EUmq%}gh@a} zY>y_CNy^3J(y}MsiD|ZwSZd}o!CVRaE0cWo%hi1SV4lR!WOAdH3h%u?sT{%l_YKvPzA0d3ZN0*iPCI^dRHBQd>V-ar(Zrd2g4KBk!w z-|h_%zjwOroGvVGjR+v$&o6ad2>{{CUckPkQ+~uu!Bd+n!JRDQR~K6wXct|O%fEd3 zcY@mR@`C@5SkI)uo~e04c);}#YfI|F8pDOs``e+aeQ4GaX=~+#-%vMiHoCsqibm*d z;ejxinUnH9mKFeQZ=YOan5IwOlUS`DpTK{m?7#&zWTKZVB`+y*!A53ZtIvh^W9m3c zO1eGL=btT6q9c7-kE?&i2Lzk!=}R8+71FYvM}KSuGJ3^k-NE)k8OD<9-kHEC~k`E>2uA#J7f?`v#T z_4DA#xwB&Qq!gDZp|6J#D?mX?XzQ+GC3<9gn699pCGlRtP4dJa-L)*8d$EW0vd2_o zJf#iFh_gC>W>Qj93mO5{scR=qL3vnpjdGxv$**x(H;L+bu<1Z#fW9YE__3un)hgTr z)%Aciy%;$4V+|RAH%nItqVMIs&>3?9vzg%8mtwIjk~ZKJNo3&%0utH#1FJ!$gU#e` zdD3eHr~+D#p${Drl?>%^31=A!Wwji2`sF?0*g6E-usq_<$NQxHKE%74waCR%d0Dw* zbD)FGltEuPTY?#SXm(NsC>_Xe;#r7h=Z#TpZh#_HX);@Z|G64{FjJRkmRTz$81u)2 zs#X5pKDMMBVM&|r{F~D)RNxJ$>q1c?#Y!w<6d7Pnm!m%>O+uJ8g9c9SW!F7QL;RP9 zCW9xNBs`mGe_)5w^F$}^oD^102>Q*L8$6yvfsxG~8_#&SS}k_LK?*uH>|C!-OByk- z(p9B$OoN`nELloW%tARI%hs@cg8;OnKLw={paHX)@G>?XVuMX^mxgd@$d^l5wVtyN zDi$(6XM9hKPhL!BIX&1+nIZRE;yt#1{x1^OeYRO=REjoV3&$mkTIvJM??r^FMl&mB$%L_54HbNyezBKT z8GYJ4$*S=fTVv_}HXwISH!jK=p-99QWv#{WMOktOmJs!eKz>uL>3I}2%e;~rJw;9x zp2CN><~8h-i#7WPnb5Q9dW;|JawMi_pdD_A+~96{6c;tdE_>c(7O%-B0Sa9$J54nomka?4F49S5DXXE}8uFzf-!29F z{AH(yYHelf{?Y_qQt#CzT=^Zw?H$@WLq1d7p+b@0Bd!Va2tGp{Dqm;VvLFEHO73!H zr9$fivJs#EKNXlDld$C3aS6Ed9$k?$Ws4N}Hmx&hzFXHbmUG5W%pz<%MxcKHkzgd@@}L%YM(J>wzTckQwSSwjb%CvHpb0z|kw=zi@67rHQqGic-n`MHQW1d(o>XE35(dW5#J$kqgpHn3` zj|ao2Qf?_NphHF7`d^{Xj#-oljb6U9dwI*nxEIQYs#E#1oLpE=R6` zHl8)?pq?R)szU!{j(^apq8sGPpPcgLgtrFwG^6Br+7j|&<@w6xdU5^z6_!7~oT+C) z6v`>ny+PM0h&H(`MycRjNPS3DewvUD`tO#AGNy2;wl!P^SvJysb+5KBmJ}xLm`Axx zeTh%SJ_rPAT%pP=lx^;)iOd7w>>jQ!nuI9fDFjz}lc;cZv+n^0$J2d1YNTN@3svp{ zuERdi?y&wGl;Wp6c7VXs35M&eg=$~bYFuP$t?w;$m)AE{v$8(JJ2{IbJ-bs_COGmX5ueP(?=~dj@7Ri&RudWX3nk4i!#%byp&2T6fZ(il`rLC_s;2Su16i zh0cj5ECNoI1R;oZePn9Y40I>Sne~YDqj~z^FEv-Hrm?x97S!sA#9GrIdLY3b6#6)x zgzIQ86S$-1D&zq>;P>60v?A9js8Ek9Ewvp|;E9SNa%Ne4-JCC-!OFAcbGGTFN$|R1 zdy`tqgz_+TzM(9k9pi@hoB?$?bb>38aYMxJY$iS-C%m8z!J3+^!Can{|y`WhIf!0TMyaZRSksYRNp4sk4s?0w5!4)TGdEj8Chp3$#?D>YNa1s8 zdA6B|4cjsu%sGr4sMG14b%gdpUif5wYm+1>6?*b#N+Y|4;ER^b`y@i8(~)<5qw;33 z^Wn}kO~+daw%X041lMc075Tt6CCeL`Wde7wJ$V7rVwa@SzqCbM5Mz22tYjY#JDcy{&?kHg@>yEYXsHC_XZCkx?L!bWv*;fh3P{ z+{BKEhPhW_UA6SX1kQo>l3VFjqPl9%sH;8ChC!GZ<3Qq2qcjM_yAZc7kFfO50Lxc> zRe7YJjR{?(A$vo-kUDfUr?&VvmFgkG{@4C*ioFGAl8D?}hag(4!>iTFq6X;u)=f5g ze%-N3r(u=>yP-j2q$)K3WV!0&7%m_7QFalu_ZM+;xEb@oOn@*c&6A-&a8L0$M`l^~ zwgRIP%YVr^q|c@Y!w2~KL316Ljemp8-M7}T@v?$@Y*db_dp+m?A;t`r}5t^7Zv z!|J&%vl$lvX)554ST7b({(5mIXy+pP8niS`c`t$!{6o<6)j77mB%XjZ-gf=4 z(=Ky!LY$+l?3fr#BC(<-*0PiKJDp&-Wk3PAPEzIwj&lLS9}^>V#ZYzw*=ahhE1C#? z>*uX0FBL8gJzW~w(?H}TYPWG&JCiX~iY|PX=}N)JG?!hX3$@Kl%xzp2qEP2WW>o%S zzX7PiEhIZ+2D9t24(wWBw^@jIy$q9+Dd_K)zs#2`+FMvr_tSsI$_K!H4)O%S*peXA zVT96T9xFuw+(C^4^VTDn5!I6GQ<=PscuxFb(-WP83g=^rYECF65+iDWw6xOMM;(RP zSHM=xmW4iJMMh`4>qf@e;FpP~>^K4hY_M1uI3dE=|$Wgbc51cU$AT??b|g8A}1j6E2FLN>ac#60=1f@>!7o5)HN&ZW}VQi zLLFdSX6ib*EOSw_Z6Pz6;q%3vkeMeZTqbz=FJJ%3Zir|AGcStu!|ZqOy^gVY(c z>qOE&>Fd>)q!bAA@-h>(CO`}lyt`Q{fFB*m4d%YgM=ZwR%SmIB<8R>`_L^epAx`C~ z*51e(+C$2Irf~pOhgdtaK;p#3JT_8RfUlK=?#&1>UBkxs@o;$S5fX|TFE$!<1=!b^ zu0-Y3%VK~Wt<#Yw?Fsd77`r9{CX7IfS6q)x3$=E#O-2kKxLtS0n}o8{;WT30ECsg{ zBb+xe7_9rq~)zv_&ypnj*O&I7kn=P7YDF3#8wnza#eyu zPsKJV*`5#ifmCwq!csi^AfcgBJ3fa&JTyGujEdUv7tx{~ZJgZtJ-pCE{(!u>DGw{( zFDEoxT3u!h<4P>*JQqh9Y5-?(3kuDW^A_r7`h3qq)2>kt7MNenR)ibZxC{%aDXaz| ztPT%D?fK~Z&xc(Qb72cS*~U6jsf|X1(pbpU_cCi1?=3qrRrC9{jal)Ee4xCX*{Bk& zR8_()odTnczimN5k9*9eXvxNEaz zQCj8c11 zF+5WoS{T`#d*CnNBQUOozqD9PDs8JXWJ%RgFn)Uz6!=TXPdsacGNem<;G0`ysS?=V zEcs%GPGXDmBN%i8YGri^X=Hgl}$GP>3J5wD*fNZh#6ga{D_6o=6 z<2k(}w5TuKJm0qSr{zTOEya=VM~xoz@f~nJ$`=5`Atx(1Sd@KMI3tFH}Bi%8nWJ z8TxoQ^3Q*xye#&|Kbz);ZWYNf*t}UK?>QE6)R1gepZc(-cGnzpl}~ZJ&wkszlXlXa zR2Y5piH}Ht`H7Dlqu2rvlb$m@4Ki4kmV(4RAF`i=S=(@YT{1TDC4U}g-kI!+0UKdO z-CeTdJ3P><^KjSE4A3KjlV1i|Bqm}8`y%i3cSug-eSF3MuFuerY`Ea zq`0S~B0h^KHHRR2ywH#TCt z>5G*IM=np~1+4X=#urzarl^E$I|zKNdQ}mh$nPm4HVq&fFEC3`A)OpmPoxXpLL3LF zUG&yh3o=oNK!+9@8Ccq6fAd+ z4R2pf)6e&iahWHeeLyN<{z^sy-4pPdA zc|<4jzlX7DscDrUR>KX8#Idu)hw-%xv@`f^Qrx07AHvn6uH;}@b z?bRcVP6Gtv z%1><$R5+sB=cO|I57xMuwjsFXaUtTnT?Kf=B&(jV#VAG$T#Q0pAt#)e+)lHPRSf~j zo}rS_12;WHuk*#0IjO;BzNryFhudQ}H+QAngiMskvp7gmk-8zis=`ScG^M}Iba=!U zFgAdGPDYmJ`*e&13BbG?zAx`Ew5+O6j_6Y2$l*W{7;YY9Q-vCX89A2uufrVC12Eu~ zM^wJ87P2Yg&@Zz%yT7&aC+DS+?~#tWcZHED7`!TAAV^FE)YgK8!L};F$8@pB9w1~5 zis_4<7bNM8(H?vRlg5q_DEoOma&_}UdEjT)M5>6yX})s7FnXy-)_vLo%e|V6s=pxNVX9JV4`jkhxkO3-~LH7HB{MZldg!=j-Tc zEZbIzoXs<3B*nC}3_unnrHg!ozi>b_5O4|EqN7j^vt-G`S}7e_>()*Ho?vo{oX?o% zeWwG(J&tR>1T6FjBQac_xWru6o;euMZmWkDpV~Z5^?JWCh98BMMAZ> z!SIupKhwu<8NfnIIZ>qs>U5@iF&C zT*R%ar9=opCk=%Mj5vg?DiP4OPF=2F+tzZ~ih1T-`|zS0*Bb`JQQHbbU&^pJAnWJ= z#6o7GB%712ZLz)rVk;97UW?jX={>pwTjb!XK-uUKJS~cx3GvPo8R)&jRMsWuKGvdb zgB4{3&`x~qK1oH-&C0N3*$^n^Gxl+y_xnsB`ZfCQ)lrDVf%B~gs%>r)g*F?0BCI)Z zt0HR*f~YJLPD3uAqHO}ivsTJU`2sAj^sicac<8|mi5qI=Yan-whjmpN&t@@&MO&a( zk1dnFr{T!~GFt{h)yp78E)(I<4rLBf`;5G$eVugTR!FzQt27`ESUxu_C};RccP7EFag;Q>XGx1PFpEC&8L~?H zH4x{f99b3(inuRYP=I-$$qWkB!bO`6{3ugqV;L|KYe}6&T#~5@lXzMi4-`jKz%o9j z>Ch2I#|63QN;UDFUBYOx*cu>8%wM}`->|N@Yrc>qmVHusQd`O$FA2IMk#r-S3RD8a z7L6WS$?aWVDt*VqP3Od(X+UM(p^g|>V7M)?q1as*BU^3-C(9+dN zAcf6zl?>&3gR3#0l@v$&KA5OzJ=;<>cj)X<>ZvAAS?DIsOcA1lKA;mgpo?am=upDj zaCXs!bei{?a_S>QoAhGRfR{Rj3zKyU%*$kZYQpY}%|xl(ybj+{T-JE!bE%txQl$p~ zq}3%voaEm-)^;H(s)!PK%SnFdVqsjUcqV*shr$dTc^-1E=iqWa36d-}?v15SdmxEJ zTbPi`i#R!j!eADqkf!FJN>m{aVUo|b7=FZ_w>@L(JQvnVVGNan1B2E;SpX8~$gQrE z4qx3L8)~NuC5LqdaPeInC6J`j%6tc6^fhF_Kn|fNfq7Drm#1)|pA{7yiwb->c`jCz z!j}pZtUJ@SjNySVm7h8fd1A|;;yJdI@&nh~1G^{+C3ahw%tmD1$-c??As5r4GGCF| ziK@}NGVV9Tp%{%P`hQarZ6?mBfh>!U&0dLiyCC1$fW_M>b7V#`E?X~EIjozD_@IZ{q)NI_P3UI*Vn)B!C~>DSRoJvkf)qw01}NX(TA3nHv##z#{sZu@JJX(dfs+A0^CfQ3k zX)UmtAYIUma6=gLH)#H8kM>5bdL8s)`)2ozG%NIZBO2aJCB_ z&Y$lRKu4-N4aQ$8prqz(B^)6E9;k|!={!So(EUi%*TR$Pa2vBifgqrT+Xo63mZASn zp@fh{QZzej;fb z7|3qwN%H@gg;)SA4@l-p<^|NAMPP*)iq!nMbxUZ%lUccz46c-we$MF0vM!zunIlee z0~3+`vxoz##{lMPt`Fh4QnwN^Xk;{}Mo*IX+O|~FElozb5{5TE+1oQVvKw@4s@b9v zIl~_OGxcW8GdMOTHDox?GNT$UNUgRh%E0$y>2D=CF;<9>shZIN$(;xU0F*NN-|4c! z-7)GTfNGIdY_O>epuC1Y3l!loBu3zz_attfI4dFsG`nLPor&z65p=bzj=ms=V}#A) zgVj~B2DnIbd_UxRqwA|uJT+zvXbdX!SPkh?j5H?E!dl5})9|2|%YfZxbiDW4O;Yup zZ^xGkA)J$yPtiyhl>E!-ZL%(F?e9x2G^#j?2N8GdgMx+J}0*^`~qV-bwlIhJ{xTMXJ^3l8-&hoWrKWI`_F_6XoXfD$0Fg zuJ_9Bb@-zx=TvfQF+$k-0%+3{e$#?nhGK#o(W@XhDh7^!&Bk}F-K z4wd2vrgby{^RB{i%}$^tJ8Yw|Do{CI ztcQh2p#01ZtJe? zscU!zWrPfg_+Emj4GRS>qyDw(YLvRTj-rYeL>vZEpMRvO=LHpp_5#%=k6-x4ID%SyS!)fcdmDJnTr&Ikxtbpbdi;i$c&fTDB}|i zV>EP9N$1FmQGo31(%{+im0XW-LejGG=4?C^u#Nb}3$>=1_y-?#a!VVSDj~g!m0T3y z0IL}RTVCrx7h1Ik4JdG}yy>X7bRDlM)qWOEBC^Sy>4yzdzsNiJs8e~TITNZr852?j zC)I>xlPV*4Iz2&cvIVR?l5gEVeBWX}($zA|U!{@dw5-8x)g%(QTsI_g|T=c&3U#`pw;Ho}jtU)ww zK9mLrE#arfHObL?$IaSrZQcXv5U16sh3ZM7%5d1lEiZDqePJa~&&{`E`%9-6YU^2! z{$wPGQAL8hga_!*$Fe4UBVskMNwPsTXY*3*sa$c{*NUVuA7fqR2u^x;F zJky<%jlx4{%oRKbUX*g)9fbAN= z0sr(XzRupH=+tM-7kG;G-ANS$Gw&0WimVcxvF$e?2v&u0Fg6o1WatIRSWM#q=$^Yr z?qC}-5#?-T**YYhz?no@ooJQ!lfDE7pboA?9sH}v@EuLHnqix_GGMnT81d||rq-I2 zuzk97X?t{SVMm*u5Y~@^-S+LviS}AlY(=mPiLz;*QQpG5Aj)=d;BegSl-fXGZohU@ zmpcplwq4=*lO$Y!K{79xHR$G8(wmY#?RUQg>7d#eubs(daJ3hpfqWSt5aEq^+C}~4 zuFQ`TELTh>x>|J(MCr5mClv9Bp|aLNe8&+jxG1?mb37+Ei~iy6q&a2;oH}D-Ac7hL z2tyjr!y|-+-C+mtCyNKI0%uSjpf=Sz(J3ZqL{961EJ1Zm=#;AW4UlpyTAocy2S1iV zr9Ls$*ZVsn?PEFVVh>o%>h%sOGbFG~Qh9DKH~Z1Ek;=j+r2<0bMjQakPT)T34GNU+ zy>c{g_RYyIz1Ld2ibN6mtBfKkavzj7d)%2|3`1Uo+my(`${v~k0xZ;DK~Cu7{uIEn zSP_syjm!jL^t$#9g|&)6F6t_S1AEdsF$3_K+M1S3TlzYwTewPpb7UA(y)ufrJC~Iy zeXZcKRIk-lc+9VWH!LbT_to z0Zr-)lO*o@*uV;)kw)~DZ5pZHd%4|KgcgT?UXo?)*|0+8k4%_tbgGB1#=Z+oN%r-7 zYXD!TNzU!N>`d)z^~^;71`~!+gGea5IFk!mJ(_(J5sD{AS?z^jb(fuL@i3~+q7CN1 z?ken?yl)7}c?$u>7SduI=cY}7Uc{&O^)2fZ5;Vu}8T%n}(R)3dVt=(ujwsT?_k^Mp z%46{c|HX4HQ`8#RyHNzdL(Pbe@)97vT4@&$og*nBp`04JEGvu;?@}XAdhcdN(i5L0 z&sRfn^~Q=2iLW=Ffl^MpYcL9WCsXab6B2~kuu^Zan`&tqlp(GS18p(fUQpOv#g3PY zV_kB7&pFeb3xF-COBcyi`5-Ky@_-$3B&!szTi%!Se26*3D8>#9FkB@hT zoo$kikWzL^Jaz`s^0djB_X3Qn(IT5O+l8e0GMq~P*VUQ|33GX}u>UB7D22Bd>{ohG zedsZjS22+Y#*zzwWR^iI;LpzNpML)B6ad~}ZZ4D`8~Z&j)jhI3k4rYuMXjJA_|{Bw zDjuByWi}((rP-`ZHW&6AQbA?Xh0;|zN=stu<*OBElfG$2Z^gD41!Q{z9b6h-BMmk; zoZ~lkVrmYhEq&+Hq5s8&{uJ2}_rh8d8{@0?9OsSxCA1qeOh&5rMM6N3p!Jd~D5y>O zcGk+8kQ9VP+h}1iR8mpZm6j^Ncg)pkDivbe)JK*~qB6{Vv#1nuq@fIvg5?5*!YCBq zUHzk3%?i4PY4X5yV*kP=)5>5p^W#mNIh@uY8|RXhnvnS{=@*1B%n_R$A>Sk!wStG- zd848vUcA&%!f~k=BuPHiXZ9~z00%N({TVh=q?d3xG8|?T$vQK=L*m<)s$r|&X|y^% z?w6)Qz!g|Mjl$0!*Y5=-J(d@qBvSE2hhzZP&HkR079$jNcfESPOy=jmos{CWDL$%z z3CecP&9Kp<7uDR^D4_&MQg+%`nuW4Et)hB{?bFm1^f-AL&|O_^5!Yj88L(g#C6)A&(nv81#2MXma|1oC%W67~LY_WhNY0Gpig9A7j_*snampY*V z+axN#^p=79tnMMyHELOi5Z~+z3UabGyuL({inf9j0Zx+>A_+&;!rP9X-+0G`C`!I| zdE$MdM?@}`rK0hx=ETRFMz#>Iy5xlX2TK!P{u!f_)F*t2wljz(IyApX>MH{MNOnn? z2;rVsc@AE3Q&g%p*Cd3|)~u|6djW{3k}w^ad4h&N|83F5&m8fB$eJ`cPQO(Zbq+O- z9d!j(1p}00T2z7niUw(Kz>?526{&hnt1_&6S$PMVS_I2G-=u=>oy2ScOfIEoGa_mI z;AI@T9|@igNff>s`}2q{>H0cFsc>RMcc@?HegjurCQ=8c0TIqWgt=+%Pc zj(4{4DnzCL9*>EluNIto9QMH}v+PdFmj&58eL&HtXVxLC5o`=haq97WzHvGQ|8Sqo zQ=SkNFF{K!%JNGhM2J9>I@j_3Yf|EzNvnDRH$X#)dvq$_jnM4GA>Y|xmN)icbo8%3_1(U{nKWdTLy!Om$hLrvD;gq{1`2zI|`!k;hQYkT9Mbi5U zhn;r!)zK;yMRk^4D)bw2)4e-J36hqj=KI%4{8g|1|9G~BKl*o4<=>bW7tXROIM}>& zM2oQPIcbe|s@#A@F3ua5!bRH{!%$20nD|LN2?bNL$L>gC$F+*1GMdD-iVz78YzImt z))nVP0l6iw`0GIK?I`>R3Zxm5gA4rL6vMm=0X0RJomxOE1V6XFPG8RNaA`6eXzmn$ zpgxwbX;gR5a3(f2$Y=HWPPWY3TI)3tc(K|L$7d@Nm`kYZFFndNo#3o-!4XgN>4l-3 zQ!e|0;T=O4V#%YLm0ik`J1z`XehI;f2Q{Yra{kYKyM{GP1fixrE_3`$zkf;rb>a2h z&a|10pA1~+x9-w%z4?pIO-U8=>yQNV=E_v4@uh z@+_NivQR3{YmNI~HL(Qhv5v5~I6z~KY}V{1N=vIW7rh8)SP~8btEj0N)Pl-Fy8m!h z*b%Uf$S&E#xDZvk7C4h`8gbvHWf#Scvy$_|MrqDfkZKvo>p*%y z?-JX(O-#X^J6J9AL*a5l4?DAM8YWR;^%gqQKH=dF|NDzDzX4)LTL( z5--+zPC1;J29ICy@mB;+_o`<1U?JoxFMrrVtYBQFBL|h!8D!2I@|M&&)$+tV6+m^J z<~xLf(a05G{GJTkA8&9B9dkB(S^cJ%4GnSpdHnHr9)l{(YY-saws7v;lXJpEO~!nG zaT;!M@iK26aPdN%`&J9&tWG8&llnwM53gvfA$rVwCDB+L)P=pWlQUZB=@~~k)B8vN zNR1HV59?ZU5i{Q|aI45(A3syg?=Ly6a;&V? zLNq_aTbQbKeLXk$`;p-%lN3Q(3;w0Lan&a4W=@HF^80-hb^#S5sgMSHf9NV9=T?BR zGJQs5uUb`InG3V|35vBUEWU2&6aSDAB+zv;Yg-WbyIs8n>`R>iN~~+TRDQ2be1c%< z$7k%2CjJ~sW<%^OyHMz?%SS598^RP4@hUc7!(A;-N)OYX{&AvY+ux+uVCiD*@)lp- zS2-B+3sWkl=e9op2TGVLs5h9u^NkP*Y^n5t427e^XEQQEzANWTgJ+L{H`NpB6*f)f z0R;(cyb}|bOHF8u!gIR-mF#0(URL~#MUu*&2LFo{hBnQ`E}W$D6s#KNaa_PxizkPXDe0dXY+M-jCN zV(U!EWoP_)oGVWNwUHpxjA#T!P&L8+iaCh*gk-kEbg2b*hrr{QbS%lOCPzac1jot+ z?U)}E1-Er}H2p&qs+}_3t1`@`i-&rrK3dFkU87I}o0lSyF%fWLWHl5bwZAUq=#o$Z zb6t@D6tu!A`d;uCNG|ZI>=)KB=_>#cDJ~up$1cW&ARIPEPI;#o0sSAxEv<2-9f8L`&0C zxn!^wtBRK3Mo4<2!=?Nywcc`Ky5!VOUFig9l{GjvTQ!8wA{lQD#92lT#+xV44NPya z@9`C6#dz>XMZO$!Q$-$9Nuu#3FF7JfC)G+4?XB9CA)ww^Q3LS})9VyL+Ma3d?2y(B z0&64btzAm0#a}2-Dm=d>iPDa001hYG5+OJFw!pBsPIsd;h^u(Y^DFJpmf!6 zL>~Om{+dNlJ3fd?3g1!yVeNze_(c^FbLo^Fh`|AQh717h^+3{0rw8*JH zswSWAU~1jf_9sZUU!>DEV-(W|F1o~rOL{upOxV|wMo%uK^7G(KC`pN3L2}8{g5*XI zB*JmVNwP3WkREHgfQO4xknzx_&eL^QFd%Lb%{US5=Vk&V=H0ly{3X)!=5Wo<3AN!9 zwUj!c#0y+z04Dpk(8Ryf0>_SxgLCC|#3$n~lYjuR<5q0q5*>A6Q?5CS{2UcApeCv;t0u< zh;|z{qW84a(>v*rQi&h7(Ep)l zzXl&84v>x*h`Ks`xl`SzrvH+0No>H%EhAe7q^C=Iv8{A2gk;HV9gxpuAuwr2!tVkD zfR)5RyfVaLCnOe)sg4#f%um%w3_78?@G|D3_y6_&U7Rl8) z5D+chbeKpWm>+=Oh$WFL)!>A5(Qb&N8S!jZqFNrLDml!tT75`8;oVjzvc>=lTYE+^ zGv^3egS}`8JI}}@ZSyfw&qBwA&bt}d7fOtFg6Psq6? z8L?}gWueGo1qeS7fr+S`1H)IY`OCxw%|JvO2hL&fc*>Go7`Gt8e`r$Yl$J~{BXEbP zA?&YGCV=jRF-Oa_-wAf40vv@-!gBjeXR#9G7m`HI`(Y%+XmW23fXJ0AqDYI3D_4D|9b)B%c| zmwO?dzRau;O(W=a>exaF(v`oQL|YW)@n*C(j&=4`GDa30K@9U6=MzXMvtaBglGnva z%yZHTMp!=-irkliso(5}f^B+|>^lD( zh^M<6AQKt|n(13GH6@mcnie6*rGDW89L)XvCDNm#Fw@6{8BU)L%A_dZ1^RhANo24P zNtsQF;S6l(EZ*S`8%Wl7mt_O{N^Ef*=;9?jwL_Gv@UC`WsJR6wV>H>}vX=DbC@XCR zB>Ji_be^)%q4-erL~#snhfcm&kvq`B$h)$)%u)-o1SPxM866%mx|m@Csi#GvPt@v? zEAmuF_KwJExyGPU<>kYoqu8TB*Bf6Rg58GR$Y=|(ElW-2SGzBHNhU+BO9$TZ3OtN@ zVsX94XS{@);NdK(3>#I`)ychZ-}izTksZ;@5;aGe2U;ecox3*d3+m1o>K&+QNg`wj z&|Pn&46*d;#6(ozl3|s%76!BnJeX&zh9e&;^O8i<9X7Puhs2S<+0_$#gqMBqNKf-g zeMC(URqh;vdYSXWsWZArg_*5-!{~949L<2a@71;Yel}JQ0VChN=?$ zoiNenLF^@LKl#5%lNer_#A9IVG!dVX!LHD^ol!{?^3KXrVZ}HC84IWCdQcKqg;fAo zLi4CX|735r3K|1d<~#Z~aD0JZf+B-X^7b|$aci+M->*T1&XE~~{5qx!dw0F0qa-Wj z4fL#KSEksgHT8_mP|`x@7$uQD7nyTN8d)?ag-f3^K@rji5n(3R_b5U4k~nVb1_7rW zVeeoC&!~AR#qnvRkh&uAL`tK?^14vvu7Di(Th znTCr|mzfwS4517~BJy+|$*8Tc2X(^G1L}?8W1LwGSb}+S%lIkG`!8Z+UHt1L5RzMB zN}J|aG!aGf$vCtCo%?=?Twgp7lPH5B3YU~eYUDx5MbaJBR_Oe*?+3~P;m*ja;y9ho z%M|L%zwm167lK-yh3O!iaDD=V!qMLho|i`EG_c@b>0V`qaO-!-JjZtA32z}844-B= zteHwM;nJbbr4r-giNUPuQ-N_pisDh7Nh9u7Pk^hGd4UK`)Knx}mHB?BGH)tkP0%>n z1VQ8h>10eb0n1N1n<@=PpFW$XIzaqplOD2(MafS z&|qA+CnWfS7^4D@gH&*3W=?rZzuYR%%a1J>%b;GjQVGu)POi6lE-&PP2+a;B_sj<0>PC6dD8nx8~EVm)R9YLwUmsy3(sH!>HfEyc3%@ zAJnIyQTZ^tz&It1JvC9yal+N;+QkiE^6xHt!6wA-O9@`k{v%*7)G15WUO?XqNiqoO)0wjU3>_}h*gy>0)e|K)!dN9_Ldyt>@a|M~y<|NdY92QvMf8YGGD&Xhbn?9q(F z&%1lhhFJBICvo4y-xJAmGWx6w0ZAqv?&4Aa60T_BIss-B8ML1oq&`zmznpAg?8j5_ z5$QlK7aYTmO8Fc|qXB00rOap zODt$3zM}HEym*kW7dS2oAJ=`qs^jsrd=`Z4pc7d}u! zC)i_QT^`9CW5v-}eT*Z@#-K$&jVc4mkzyh`o`?&rC7<%6ib3dlqLBPVvuD^S$he?j z(?mC^FW!K$4OKlTBt2b7xhYvU;idFH1Am4XL<4F+!*eu*M2~+(A)uzK+aS&C56G^w1RHT3a zotLCF_|B2^19~1?l!E8sYk`pp&!2drveH0;f5?CX znR24zQ&{l9P)S~RB~YEju)z^j?g6P)t`J@13KYlc;%piK%K7Q#F6+lE5~yJ zC!f<5ob>cjbw4#A(_ttKGb+rZ|6GM}xa6bNjT@s3;spmYRIWc+KvO)YvOhzWTOtqJ z*w$z2OzhxAAu6lx2oiO-bkN>wh$Q=gAL%E52`@&YrfEjv8QRi@#3{kL3L$4f!Ie=Q z6J$7dN@EHfj*o9qwo}HqKI1QlpMWD;b+Hgz1l(znm@1@;i3z+{_7VZe!v}`xr-C#u!Aw=cMBTV?q zJ(|J{SfBZbRf=&O=I4kBxRDo6{nfKy9x39y6pj5XFvlYv$>;iv4avio;Y9``+?|%saBN-RuGLaClsUK>hXJAb%6h;Bq9CH>>o>S)Zqcmw; zicAxoi{@OUQjJG)fg`8&#_;mPf_11X7Bgo;^`&AI<0lZ&H#mv`}|7 zp&wEoCk(&}<6Ra`BU|vKJ4Bjg!Cn%lMaTt}$Y&Ty!4Hx;Flui)@h?^%xe{rBqoP}K z$2L~^{7q-T*0Yj7iEwU}aP#Y9)d92|++wZsKIB8FXzc0jQ6 z1m0MdiX$Ou*HYkcwo*E}`6-~D83+z|zw-PwAY>}`HQ@vCCXW!F%4CXun!(7WQ{o5c z>ymal1d&vAGGlfJ!-1eN3FKa=2OWl9sl*DaCl4z} zPb4mt>A~O_{ASCSBj)+|a$eNHz~7Xp3bbV}*SbHCmW?bUc!RLz`yAoV_#C<8%AgnL6c>vVr3s-)QClamt5-TTZ#Fu3hm3TTQ zk9~o28GENPt)Lrk;*m>&j1_#LV7^x$JBaKMiH~JSm`^5;694+0C!A0YsI3LV2Pch*F*}pm$SRRw)@|v zmvvssqJ#2u`w}(b5??6lD-ejO(}j|lfTD{znO+}i3T3Fs)}+Q&4An$o*4hA;iTS3&-IOD3l*lK{F}-SZ zDLe_EvB-@uH3rp^pys4=vr5wNczD{!Y*;G4h`a)BnnEd;ed0Vp85Q5=@XB2C1ZKVw zx5TnLn7;ntiNqDDpEy=3o`#)3gvq#MhVT4jgtYODO6%z*Y4DL${# z$}Ib-^%0xDqDQ*)S464vNESJT8HaqP+_#Q?{y74p(yyW&L!cK7H6Bj`u~jou`#`=Y zMwd%L>W}Z>VwWqCi_l>JRifZteY(gL;}>uY-f}Dyl=&D;8$AvOo1NMYK3)Xd4>d0hk6swz(#r3w4@lBvvOkmTB7L5NI$peRMJHia)Uo-a1T^-E1^-| z5$}~UVxWk-BFKr)`YMjW#>?RgGui#c3($)awz2)(>lFv2{&?orqLt|3Kq_HD9~SL| zbjIRP7^&xXvSGTZjDI0Q`F5pw3Z&X60}AePh4Tvpr?^10plbiKW05BF6!}d+nF3;0 zQin(~nl+D`{g)gpzD5e=;n7wg#8RvvB_AcybI6u_NUDBF@gNH4zhr=P5F!`NwJlWA z_CLt7E1yPGifD2ma&tN4=J9pdJ37A(rvyJU#JeeAF^{Y=O7VxV?$rnEl**O-hs8jt zj~941CGiX*P*K9CN^Xm!L_r8HU@onZA^s=b(ItWwqB@G;Wp;IrP*@%9oN%p@)!={d zcF|8al*>7yqIgOf#{YdvV=2UOTi$f!ffm(jW@G>4t~bcf)B~^S@AtouF@CUQ%&L=g zpy0w%?etG9i|5??>g`y?+a|0#{G}7`S$?!CSnU-W=G|ymJ4Z_%3KaubCFvR5c8;y$ zJW%@*xEa-_fVeGl)_s+}bf;)e_<(&iR zVdzG^oE`Dhjf$l%wRWK`W_-qy7)U6-1{8M|t_(82r6Ojnpx1%WEo!9DanA*P5k*)T z+VCy>VW!Ix&mIQA^Dypusns2U&@5>9G7L*>6`R$QO8Yqa^^-ed~5*x8tBgF9`&*y6Dt zotMHAUXfkPN`cOtv@f0-c~MeKtK_a;h;G06=T4Tj5gcq|_cJ&kf?L1#$Jbvea-CE> z4wC8#|3R5(O`WA=DiJ)%L#_zl87$JnC}K&S-~Rrak0s2Mgr-U?8^U!fW;O1A!HiUt z`$YXNehEK4k!^~}Hh77apEpvt`h70Lr^>5mVO2`2Y?dsmLq+j2#Gmpw_+54jM;*Hm ztSzp~inSj!N5#OW9K08d5{w0`&Y~~#;fT< zS{nLIgToySUg#@-#`6pfZP|M;;44~RRC30o_@=&LOJf%<-%1*mV8nD4M@G`gG#4=m z*_NqWbZi8io#I{-buMekiJ5*SxvXEmO4fn8U);8QthTiIjpagg!(OvcOY7NEds3m` z7>$JB7oQy)(81iB)()#WQDW!-IOL2fU|4u|kwb9Qshg)pf_g4 z$J^=seDGJKwS2k7w~P5JB}pIL?b`qD;jbjUINYtF+BdhCv;Y!UcXUFy*VqFkSyrPj zp&8y?^I2MEgDBqZcD9tZ2z2jtV+X)oXl0xs>#O zSUQBK@#uYbcAQW5u$@)(jcg(4fu1M+{mGNN*Sx6YN+_SkN^<|8W$F? z0(Q&6vNvi!G;vGN05zW?KN68oe%F+KZx+Od@s#@YB;yK zB#$f3_x0;|d_6Y*JAl3~fHpK)(pb@=c_8hU;i}MV?fSKw3A-69FTJwTle(Tn{94Yd zp*mOxrKrdRpGzF&pelQEkK&^$+|K*P$>44oZ_QyUY~0?hBqhOvAz2XTp0$K8mQmQT zuVeibEpeO4Z*T7{5IPrU0x5PTs|!{p12cQ$^YQM>gmGg&il4K373!vf^EpE|o$y3W z8R=t*zH06DbGvNJQoEGRpjNIq8ehJ(U4Gu2+q8x2p(xqTnl_nu_DW;Pi8&-w-}B|k6=4eRpk8l8Z@ zf<_ zIKEKjA+g4}UwaW{Az_ye*e>5aa?HZ z;PD^sGW_VA&iU9C5e_xR;)`xQTlK|C|Ae|RA(bCmFw>2_kM6NZSB=?|R*2RuYbz3p zE*fLHXS_`u1tqs>^(5zgbjPhEDFz?iPsV({`*u2dA)8_^KRZs!eA9Po7j0%=mO^^k z%z}f##xFB9pq=;B`R(tUJZmh>Bxnt+dNG0gyIHj0!Zc49CuzP8wPYQF(k^&NdT zI=0hL-|EY;EB+zniOd@u@TFn+0c=4t1#lVps32==-6K`2j4cUy&p8$ zJ+FfiFGlfv7{w=sprhUrPTw|PrJu=N3W|Z1qXPudPCXtCefzqZqDQr1`U}W3?;Xo# zq{a%CQHyEoLg=3o)UuY*P<3m?fr{3}O6qy1ayz4)4GOLp9bBn~EE$=nSjm!+Gkk36 zvgzXImfkEGo!K|sNe(!dX}`sz?I+-DJ$0nyxC%v@70atP&;DSw_qs~%18NhgIONcs$PkhZd8K=mK&)wfrq-4 zjb;-`e~unJoCPoZr(s8*8CvVglkA%CkomwZ7i8g=@4JadeUWo^k}A=u@A@5AEke_3YIXKACye31?D4= ze|B(zSyDb`YPLvb(0fw;aCi59|N2P|6~`g(b2SB%i3pMFhD1*0Nq93W>uP$ZHLTVY zsZ!SgYfBhTSfS>FLiKwqFIgqnoR6Hd8mS{R$7V;`8=7asYQKUtAa&`FDjD)s@RkkgM7}D~-En6lVM4~eTI_OK17}0Qv)ywt{$D)7jaIdm< z|N2P|6_10yM>fn_`*AeAhv#stSPj#n3Lj_ZYLyP^>f&)4pKrzAp$2xWY7RKuDU=Ku zLpF*0N^=TX8nc#G_8&+@GT9093YFRuyU(m)$2}r@M939ja@)xI+szhg z+3ue35mSa*_6tZhS0Jaa6sK8%?CrOr?fR3_TG|KUJ#Al$@OH~>+w8sN*uC{6%Y9QF z`f%H>gk7w#o?|@R^0L>QcR1W$hm^C8`!b6|xz^%Vx&0!ui&F~XqcL5xQLV>}S< zXhigYz1au)wLl6~#<(X8N*>YrTsGe~NN+QpH=a1q75)pCw6yag(r=$0pM#deC`Qy! zo4z2k&n0;r%$9i;GZ$HyVp)T?3aT%{w z4{FeaVK!x2-WKYQ)EN9&+A=h8U?Tc}qaeJ1c#~=uWHrMvY~{5*YipY|t;DS>W<*RS zo(*dg4{*)Ms1Ar_A@_XwvL7GEduaZ z_{lUu;2STB9a}p-tzUco^{Dgw+())Dz3%?Ftjsw=vw^+s5n^;1dufQAXmIajsdLMD zn>mYma`*Opu`na+t42ynHIUtyhDv0e0CQd@I4b3fsz`oQtV}&Z*i>TkMVWT()>M;j z&Ja!&QJenYQ(wxJfYA?cNnuf+c~j{A9?7aMe{JgPYt1+OdKA4RuOElA=uQifxQ#Sz zOKICiTOl8Rp-7FWiXGbTKLOe}LrnHs+~@> zdopd(?H6rbiaYrx6y)1warv{I-&&0Ss$c(MAlSTJhJvx5!qRS+x;+*ZJ6);%T0wG` zrQNTSFsTa93cesNKCFM(%(V$v47ImLj-4a*tGlrp{A(Da_5ON(2=em+%l_O(_fxRt zBQoW^kuW$!H3DfkQLIi|DZJXu(AHb>eb=pmwJ;M2cD)g@7^`1ID7@25L!ZF@bv z3aumAIEBt+Ea+8TyyyP*6H^WT`lGq>3KMM$Q50Cme_2TuxPJ88G=IFLZ^ZYu=B-Ju zQnCy$+x_z+_0y*~b-vvSiPQxzUe=p2ADsYbUJXSDhK7@wQd|#T4hWTQIVX~~;K_~* zfc;dg;e*@Qv_OQoG1%w3`*9Fgj>w3)V#GRSrx2za&g+EuT{sfor0w2^5e|@j+)|vEA-hQ%^ z@;-v`8No;bc*Q>DJ)MZisP3g~_5-1uAL;wdg+{;6uG%h%NBJ}TtXCeXo-IAOts{eK zlI_YybO5Y40PGQbz}^wMOw#5~Ie+miKVJzbZ+W-S0SXkpJ#-W$7nmauY@%(8h&mK! zI`FT@(Ys&5Re8(kzTRj>gJ%GCdZ6-yKix_TVv`3GMC zy|GI*zar0(UdO$5LPRFJ3;@Sp$z!o%!H!{|g2GSY2^YJ+e6P2lC#=SHZxW)Dr&na; zT=Vlf^+5U62~nzCL%kBpq$JRh3E`IIhIc7aPK*v%(Ou9%5ksk#Oq0bu4@kj0-)n8V)J-l6nYj{vw@ zs(CTM$H6{klR{8Zr_vW3;LBDHLg zw=Ch!lGhe8qe{6YFq!sQeFdeeTB;?VZ4~;D5Xhv+*ELl_v2B6%WZIJ<*#TpGrBav| znZ@cxGrTe&GxoyZzxE>P`_#9e$;hD~Tu#x`yReMKey&B~r6BwkMXy^z*eK6uSVPLE z8iJ?Vtb%LKgxf^f>U}^`Y?8l^T1l`nqGo#~?1P0<=iBX6;mR~3 zuaO+FEY*`#rRpF=QsJxdB$4c6fbq#JTZe3M-E4jh134#>Wo7X`A~H%`24kOk4Wa0` zzXD5+*?p2!R!5HTqzFuqfAG6l(^-?~p%4??XIc<#m=2 zZA__$Tp%=JDUOU^rbhCiHp2g1ZOh;rA-shV8b-iE&Ppv9fZi%)aUVmEM1jO1PfR-+ zJUtqSM0I@pT0+)xN202(kF@HT9R=wvebk|K4yB?zp1!|_`ZzzQWF_Ria^#K|3>rI% zBbEp`ypsj*BzQ3=J%1v=$rsCsrg^u0lQkjUIB1 zOKCmRt6J0=i5`C5y{@NQk%^iCl z_NOOwcI1VSJ!zT9k%5wdKC@ETq-C|J!yS{tIE;XE){m96e=WiNj6Y7=!v@OSFg(kM zmkc?*D$5XIlV_xP4u$&M!HLMxTD0tcOTDwj*AN@W>s+<=g* z-;>WtwJPB^yqZ1Hq}YWG0+37~qy`O@XZ?|kz^pjk9+R*w%1|1T^vnjvG}nY8RBsGV zRM$=cDgGhqT8HXd#aAbKyEYC`RLZhs)dS%BTQsbl@awvFo1fYcl59N!-Wf?rgnd!o zV#p0B#?%x5S5Gi!1K{dCDWr&~VdU^K5|1{LS}gU{lDZ#=VtK`yUw8mSBuJ7)74RjZ zE1xKao(C0sMd(d~ZV&-PVfSVk%<@* z4WvF=`yNt8IfvqsaMY@V{)=x|dgQr0RIj5QsemCa+QtMD;5ns2?ltEtga2`o5bsbXE zv)I|D#}>(<0=sOR$_8<06~XmKRZ(1ww=CChA}QVGY5e4uWnFrsIf0kfnTRo5)*MqJ z>4Sx`&nEZ6kB#aQV{P`%UH7D=UFD{2JsSx^lCky_<&W3sQm6ytb$ z?mS(nf^p(TGCH&M`HqHkx{;(DTa&N=R7n}Y*kh(vPtq$j$lGEBIqYWk8dfxq43={G zGrO>;%$Y@Ood3iFLTy$q5c5DDQU$!(Tfg+q2cp3$of%e5^@uLguO0jx?B|jtTGGmr z^^IPs^+#~POJ?T#Ot>){k&nI4YMe{x&l!i7m0Uukr=NEpJ?ZHcAQxRs7iULrIBmoW zGP|39B)>I+zi357DG@Ijt#NHdxm-@7l<+Zvc39+Uo1;UOkQ&z(Sq3xrX0=n|2!tKp1PB0J}P}j0qMA^gknP<liF1^@4Iw-Kt!KxStXu zt26sZrK(hBt-s*%FsBZ@9_UPTe;bBeFO!`;ufs$@S1wwU@f#vR;YyZy%ZW~o&S)cw z5Xp!{iz%W%ZdyOLClGmdq$C|7}d$$*Nf!G&s#0^M?c zwH|17>^-pS1X9hTgDg0csLRC&=7->M2mn8+QAJ1}TI$m$J)5M5W|g826wCzKhle%s zS?L#-Y7IrJ~@a@p}@d~t}_DZ3Tky@A&-}I&YrDrt8 zAxQb;kQ7t4ml%uFHK5Sjq$Ee&xJ~}>;KBJiN1}sKB7T|*5~Jz65c9l*8c>6&2e#@M z{-NHj9vx5QVcHY%f)L59^W?ykovnvUbXmJ(jP|hD0TA*_$!vH`G{s?%(tS!a2uvPM zXWUZZ$9Rw8aZV+9VoDRW!p2eax)C{aBQhU0NCf8!(LJzG9MLi`e*-g(R&~v3Xi1ff zdS=vVAjN_T^TqU*K`S6uuVTsjRjUE-?$UnHhy*1&?nJ;#*RN5PBb0q1QCBhi`t@!0 z=eSqU_M2r7EE#V^%GpIn%ZRkmY8R&yJ^h`CPvzA`#0LTqHD`z=gLiFcG}Te>+VQAh zx0JlVeOR@BlmAF5R}tw_Nx*=aUfoVZd$_y{0*^S2ETDE z?^1Nula>jB8nZ_%qPbWHNpj?$Td$8L-W+qiwFoTMfoCf8ffgb8S>wn~7AKzhyP>2~ppdLN>3v+~Js28cD80DJO`@qj_9(FC$m8(LKz%I(rjVldVu z)*ff?W*8r_aP%N=Ta6&Z%g7b-P%_;kyj~5=8w1Z;na>h-bw!Z!#Nn5CZw3Db8=>0)Rpe?0 zx96tmR*bSoAU=Ba3(raCwanvoG%|&YG4j1-ol_sF+gAzsRY)@BDRZom*(X~~oZUP6 z#c47eV*-honOk};qy2{+rCby=!BdTt3PFw@Z~BYIK{C{tkoy=PB2zTyh+mQnR4Hoh zba;7XuBlb8vczJ1nrvUFH7lR2WAS3ebB};=U=m5Kr8k4#NEa{vJ|m(|e3U+1^8oUR z=zj&Ip~D^*j1u5p5fQOdo9PUMI2CN2pRHYwR%R0#ISiwu^vkBP0L0sGMh=PhVCRAc zNU$e*4l~^2mwLmY&P$UrYMI2CoH_@b-~lD(KFV6F_Z>Md#8Ty%ON`<@F>|ltR)Np# zBWwr$11a4yNIV{`K>-d5jfxGPsJDIL8KzRDVJ9ko`W!E+H&5SNrj?7#Ca>O%wyaxLL%4Y!@vbV zydZs!^v*mda?N-QYdfiZK~3SFA+@M3T5i`5I>A*tKfHIX<}5 z0!&``l0gg@>YWMBv64#M>NGh8nj9l7T7}$m54A)1ou)r!1Vx5BJ)!J*cLJa$^u`p3 z4-MA<@Q=i9G|`XxKz;i>lPiaF-y(%fF85B~L~i%msmmIEFH9Hs~~QDJ{Oc1U;5|uQwkEm-592f_q>{hyj|hOcBXY z1X{VkZFGu9pizcoAEoKniC{b|+4OIoqK|ZtMU8II}T@|_xu5}(6PxP(+&xC9?Dw7Zps6k-8%uW z$%bG9u@Q=R;i(soy+WS%n8FK#6uY=m7GH(?+M zqD@kyU4$ht3{ej*E6%_Rk5oTUBlct`R`&)QHJj!BluF%Dv7xNxhL(-xsL3B1uLv|q z9<7xSpCre;bF}s7v(w49I)c3u8<@^q2)rQ~7hd3lpc$7z3m1qdy2hjszWC(o?0A04 zWs~};^$~cs;F;uYoPp#7j^8A>3 zJEh}|F?qZ-hPl8-n(+ysPkIBXj@2KAw}yxL_QZxK4)7x#ZrXHJOvytjf|*86JgU=F zs7_aT28neusLsayXfh3uHzAdo6Dkj=#~>&v{$j^4H4&Kw%^6cD$HgtMU@>8GCRmny1=x>y3o@O~W#o7A=~K0WBYtNNVF zg{f*w0<|jANhWqPRe7Tv){L(Gyb*ZtP*PRDcMMZIvF4|FxUdYId!cS8X2!r{tt<1Q zEi>l91LRRgH$Nr5Mb3FC_j_+qXxexhZ#G}j0A8lk{%UA>1a@?hWPOd5W$45`4O_hFunYG<|9L| zPxGu{P6d5LQT!5w??SCF>P!{$B`1-c4QHQV|JT;(p*;O@&Bc zO=V(sqGI_ADR6m~5^oZ9ZgMe^J14y^I=jRshYEUziiH`mgEh%-r}x5dL}JDzBUkWL ztleo^dqh#aY(CzRM3GQ#CogVUi0kslW)oL$~Z zB6@L#ieQFA7>!|1glDXGiJFtW0_7%uGu3#6z#bM95}7q$Yh*#T&Rq!VOJurEbiKHf zdJF0Y8R(h)us^)@n(_gf;Q`Jn>*yNCu76oFPE28XjOd+nw3_Kb#WWHrJ z-BS*;I&v;Z9~1>jfo8ein0GhN4%ewG_RK()lGabz;|v^yDx2ITN9`t5UU=Q+$Wrm> zlVKYmRqpkbV*_u-Wd64sRLnpFiTV5enCzD{j9kjXm*n=vN;IqG%JH22oxO zUtbayZ2Ku+!{U9W4)@8nG*r{`wX_nblF>Fg{fYSX)l?|`%jKAHWkTmMtr*dpI|Z5{ zyc3l^BxJK!7IA1lVDIVD-i%W?DtxXqkfM>JT3tDaZrb(BGe#X@y{AA$y|du4pu*Wd zgej?$xKVK;#wb&zLn@S4i4@``9+RcJkY_sFKzW!#Sy81jClY>4nfS=urOXquGfpD1 zxix&lyQ{-vrw)(qVB$1!OUe;H?DJXg=P%IpBEBv@$N8+G2$5j1MRz&t2Pi%{xn(g$ z&)H=8{b+lhE#y3>u!E# zAyNH=MqGMA&G?A7XUE^Cb!Xg<@>->2%F42wSX7TrYUIA$p6M8@j>G_bQPn0$Hj+hD zFI49tsmv8j-PzbNZRl|L==FJ|pMjW~LCn=YkMo|W_sHv0C7#Z2CVFq^>$&n*6#s!z zNU)7E@Z!%AqBN@FR@N|xSYIv|mouY*@YK+OH)!_Gno0I;H_rqRe7o5}FV`7GhU`_{v@JcXKA1Arv6Fjd65;mcHI%K^-#2|JiRTUt7z!*38I(2^q7c&Zhr)GrkeFthQw=gZamYv%?~x?wZwQ@FZ*P#nu9Cz>~c- z*gO?R>M=VO*}vwQj#vsSZ^lx+)V(!r8yEj43SVBtq50B}kx74!tZ!^=Jhwcf9U=kK z&pn7of^)qTm#wv`c|Y*Iq~0P-fYVFo*4lS=z}9&NaIgW@6T+I@byV88wd zu4RJMFk+KUlEG;UX8T%;|ab3)B*L%Njd29@>h_6yO+C$NcAb!V|3?3wx&Li)a1}wgQmX zc92NCC$rX!-I8mRp&dzL^hnB;nD}7~UY$f16y7iSejA6cm?6Z3wG?YRmXa=0C2Pv2 z>d8H-eHKFwtSBic<_Kdw)$pj<4ATh7Y-sL8C)4jWol?NVX<;)EQOWCueS_#f0*M7u zw_eAdtDa86GiM_TA*Dq*`K|NyB@^F6G3?oksXt1X?k;5qbBJ;iWJmi0AZ9#6R+n?y=0p7mb}EBrhX=xk8*n}sq^ScPDwWgbdO%wBG){kWSrGsn#g z0#o7;IWxPfB1}CfRz|p2fRt6&GLbCxA#xtYP1`#Cm(ni!IJUo`|$=nZ-_Pt%8sB8`>r=CHr5CjEAGMH}MUh0uVfGWNMHT1s7Kj&WSDkXt* zBS;C<$fBqNgrIE%MJMVk>(2JRqOIO9P`ke70J^LBLxJ$ZUI)g7q=2R@P|aJY!Rfu- zDr<{`yCsIBt^sf0-Wh5-O8;Wph#hFU4vI-=ZAzg{d6Gw9cJ+&k&FimgsqdqD4At^& zP;1Nb?TjbT;8TP!HGxbOs_RJA%s-R-Q=z!r}$6 z|7f)Me7$QR<>!ESHd>!ofsTy6(*oNAZ*)%Z$E0X!k&LDlmS{b}sI1SkSflQU^KD5y zU17*d;xH)aS6q9xBhOSkem@}VbXZz4zF(X_P-_|SA2zJ0#$uChwl9O^LBosuW~ZB( z8A&(nxfuj4q4!R4WEhe{8ZNIM;Alwve^iv#ia-_Jl8?~;c1FW3?zhCby4{=7Q9+=M zF?dHoWkq5w8CWMDRW!-JlW26YuDv zK3L!ek~M&gDCM5C5;7qn_uNpPGn&`mvCs?cJgrTb1P!|;Ka)Ye9uYFl?O)3yq%~qC z2`zC~BhSc#RM2r3L8lfLWZx1Me~_9`0x%N`zK@!9>YCbcW|RIcAB%Fu?&9^zX^FY3 zX>wc2m|ti1b!^s-^XnQJAy-f)gry~~Of(2iyW7-9 zeG~9J|J=WF@AkREvybknru0ZH9(bJD6m9RpHhLPj2{Iyoc1fWP+p9S z5RRV+IvI#R66rI%%S+t@fF#JcJBUM#8j^!?sO<5r+A>H(3~_#|+)Kkf9>(T@FNwU*(2l#kUydXAuQq}b(L_n~Ss zg_(@_5P@6Vhp4J;RyUOW9iiTQ;h=;wF8GjSd)j-Ud(nCawe zS&Hc|YwhXhK|vqBZIJh2kulj!Ti*y<);X_7#|AL0wkeV&F!yC#3;0%C*fb8=N=h!QktL@HcD>4SEQV+q2KPza}D&Za`}arL}8eU`Kpk^EAp)rZ7Y@At)`V13`(6{ zDSKg3Qs|9cW0JKE`?opQd+ghrA<~^OHnTP??K|wll^9t|VLED!c5~{v+P*R6Cv1?l zv_=LwJwi|l7@FSH^Awy#o4JS|4;x7*(3wrkp4Jt&G9MMjd?d-kWV%RlLX(unqtYKu zv}J2WzrKlmt#EwX_isM}rl-Et;P81q7Epb7s%cwBL2W5NO-3kl$voi|Gr4MM;j#+iMm~_^J*P_%9JDm8$1xK0ZUE8x3i{r2<1&8KOP2Y5P zv+j@%ZHn|H5WkB!n#FW@?=*+Qo~4}+g{(g7NFnCUx%@)ee;~+$G0=u7d>>en>f5dm z_Z>UInYMKJ{MFn?{91Kr&XAed=U?(NcS;Hy*p54@m_=1mk}N4R*y!CT7LqQUMk;c-;TZ*xkET`AWV2ApeJsk)`*-VM0@Bzy30nm%a8W z_1Tgn1+~D3LcWiG=(f6VLpqbVRD6Y%?Ms(2Ukj(8jfMUp+EU&{c+IpAc}6CyzwmDLx(LI4@;2I8o*6y8$?ediCm^bF3E<_bm~Ep#$BgM3YyRrsc!vQxJ^>s$3=?D zBr-1i=>6~6)J|@pE$A_9JPg?%vnxBgI2u_f+ojMoH1Yn5JJzC>=E=xdVS(18J{Wis zjYx8YwNqo6WnIwn%gp#8h9wWH0umS zpGe5E923EjNZ~?{Y5u;%ueY%D+R}ou<2NByPe_=H<~L%_O(sZ<{X)|}thwzMidX=C zaidjbZPh#KFM(1%+tg^AB6DGDD&;4pyS4#LYtCC%p#E*zT3$W6 zYv{C$ES5d>mf1W7=7_uu+Rkkb1S7cj&yl4Se01DPj;5y9^x@V(mu4B~PqeT!FS@e< zX*q1%YBn7|AsOL?9avBM7enIDk(E>kp14+Pj;5yRkh5kaH!{wjXkp2D_=z?^Gk(_= ze4SxUGk?3~f}OEfFZzn#y8ecvd*?O`7aE`JjfZ)^s9*75{v@Wd*X%x<#wsCeTiqV* z{B>dm#OJ`Gxa}%AW3c4_&Ir^YGJ(ixxzRXp`Bh0IEY5ya5{UwT`&!cR6ZP8503sg= zWb)vAOoTRZ;x3;N0%bt30djZO9|6*L8Qdm}+Jq4>77Hn$kqIolb6{{S9i%YjJS5Pp zGRzjqK+vZNDQIPt3UE0Ild!N447QN5ulUlEI-jYE@XV`UtVQ0w@9cX?Zj&%7ukcZQ za)m5WomP4$r8jAf1A9jJhH-V%(g$aQTc<3O(NX%wVEc zj?yt*YSdD6p4Mt*bh5Z%f{ZAG;P#AfJYT?@B}P^f+e@Po)=*u^l9B?7qSiDLP-EM4 zV&a%6`rrQN|MtI$;>fv~GOlZlm?1$q^5x41JAU%6P%ZsP*T9hp$h&WWkS@5i-AG>` zYSbs?(?fuz%8T40YLRbyFK`Qx; zL3Ddyy{|t4$?$xrNVlBRUS&?(o$22b_j-<5e-K#)HN2_IZ7)8W7$)=N90l#I`4jexkY1RLvg3q!Hw|ccdnQ!Ypseps z(w-@0{lPwToif&k7rJC^=?G3CV-!h;XCauL&jDI6I@I+u6DXUxCeEU!jI^gGTPvic zE|Dh9@^9aVOZhOF2Jez-OXIQX{=*L{EYt6R*t-0-^fn2OEj#OT$BH$*vQBpx)LTh! zllW@+q-*F|zYLL2>sHtsgcY!_Z~gsyw<>GtwXD$t_<_e+z6{Z_S~@>OE~95It@%2z zyd&Fz(#*7mo;QQc+px zeP07hPA5UZ@0- zw&+rfcrPT1rtSzMp%UFV!pUaoo}#lgN-bg5qr$95Eh0FoGcsPHPn0mkABLG)SkPR{ zv)OMjF=FT^c@%d{Y@Z|Z&jUWCyPng3;G5&9Nl2?Z<7%PG!0FWHD<6ytH)T; z;J9Vfe~&1!F@-NRMA&WHpCTBz< z%%FkLWVL)jt&=dFM#yjljEDZB`+EFfs$Am13qDSk`VCU^>-P$IlEMF@Yt~Q%ZRp$z zt_6omA9JH&)Z6!gG10c{U-D?tH6FhZ2Qf6EN)H6gfcOEpWf6p&js_bACX^^bXl zeS2Tn$}~M#Vyn}#%HD2ibU+L_Yed1Q($zq#o#eRjTjjFUU6OeZc+wfg;myB18nij9+`%%!AF->|} zZ>R(;@ac6ad)89gE0xuQeMQ@4Q(5CNETUkj45C~COt-A<2$>4cS^zBb73%9bp9Yo^ zXl({?f#zm?Xus99-I+0wc<$O>mg6lZd=S+7GyVJiKYczY$kP~XE9aFt`XQZZQ5cDB z0tpSp9t>xJ7(dla+$uF9znlz5bd|Xg9^q93{|GaNnL0u27ODBGAVGr$BvU|0CdoO& zuil^37njG?1J+B!sSuMXyQKlo2PfdzNAl_G;YWE!F0D{&FL~nPY9a1(?UfW46RRY) z*CRJ>##a?1Uq{Q;1@k$$+sj-PDljm=Cbz8#UVk`p!qTOt)+q1JYf5}MmiyPcyxz@a z;fxwtUvW|x^8+m#*I_)CVXu8}`NZULc2DCikrztNu)&7P$ui8~hfQ7O>Gb-lxzzxZ zy8p?mJFO%E z`{$5B<#j}4P<=EFoy-~p7(M^m?_ZD9XHv|5wU$ts2>Ubn**9pQSQnZ0ed3Wa12geT z@^BVdEwdp|gR>;FuVbX<<6tkm(|G(knJ-4-pp>c0w{HpI)z)mEiwl_baT&~Ke7DrM z!oG^}ql8XM5aIo!yIiGyTU^9cozaH3{%0wET?^kUdCkZ} zNAQbwa9#59I6<(NXAy`Q9Co$*Bn&HZ*!OCOht4dk!Q<%NTVWuoZ4V&b7@0kQY;)lI zM}ILM@$2hHiVq(F@==SkS`c1D4!XGKEJ~4~>CO9|4e|5d+FFo)7RJKytF@nnJ+gFc z&iB{X)xoA3R%C727pLpOw^G61;nTTH-{s}fdzCA*)$ts+tT+QuQPrs~o(sGU| zE%1OYSbx-eJ;n9Ob~x!_#BC)bm?FMV0}p+vSWtmly&n(x9Wao=KA z8bWmG;`4jfx5*|VPYL^0(p6CkIdp7_aci{q)LCEN@&jdVL0mXFWHmYkkl{opGvFlM zf(+Ng&x9VC=}RBQQ4@9bsG>Ltvf*_@3IRj!gnNB zxc0H?il_D1awUDtm3QX+{4M8JxuJj2%HR8JE3El>BtoO+Gx(@OAyXo)L$b#CakMzu zhWLe?I8?}FP(nzwU13tE!>G({LaIo|s@Mhvn1-UlG*MfoD<%W*~QzW^xLZF zmkp8rE900e>-_&8Be^&1_qLAcAZHllw*i-*#LK+sQ!QN^%~#)?WZvlfx5XdW1iVfN zq?=@I$hGcySB|+{&k){=d_52DCBYABnwQ|8a2XMjHMaz-{yeAFLz;DjUMXKc{`|{J zs9*c>Jtasbx&EaNe`_w;i%h_{$Q?=yIpW_>zDU0&zvvboRjFZOMr}Gs`IM?4U-p$l z|0rpr{6+ovf?K_y-HUcF8;kEh{!}6c$(jW%IR-2_TD$1srYr^H<9}WgrrR|5Ka+Po z)C~Z9U~`>%$SE+L6~y6AiC!y8)%1**{{d0ZtKJKh&XS&L*cHnQJwZCu(PLaxzvn%8 zp%f$H+_PSCgz}z2tBPNI4I=$Tz5Jr80t|m4>E$~zmyIl`B@9SAOMe$u+P>6;`@YtPde`Om* zJD7;3{IW4SSm;OIN|@tCK}qb+$qZy$-bUtArsjSzdS-f;C};{fw-tP4J^d#@ZKJj# zNuORwtEET+DZ{{R*o?(8kkE&PYvSzsazFcFe^_H;4ReG1Bq{n?Tz~Re#L`3%+6psm zpD^EnvP*s-b!=H*J#jWIon9E7{6un=7NoP9NAf}p2el@OgJkkId!nwUyoB1MiG+Sw zt!>*jwm;MZpap`&kV&1Rn)y3pdpDB&C-6O>4+&!+z5FFZQ^MKoHSH*-{qcMB(K zJN3JO|Ktd&#iZar83QHcCu7Q17?PrhAn>`SkG+yt5vuy9g=4qWu%tIdTRxGNa~FpC zfzG<}qeR@2fIWZ?& z?dI=Td8_3jmCHJkoa|>C*4th#INknm-pNrSUH@cn z4O4kZUkD@TmHEWeJf7vt;|;k*+Ezi_SB0#IjLhUR$1?L7$a77WX|uSrFALMYq&H_N zEv0MgzT)EcO3+T~^ly&@of^qqrg;vGUJRRuM)mu{QB#f=<@;@dZ2WbYV7x-w%MBp%04D)@j0L6GbUGT_8I9O#4C9=AaA4&KBAM$xL1g0%v;*0 z+$f7Hnq0D0&u=;^();&xe)+7P;4|}<7sfMW^NPvD^W~LK&|l_L)ePr=#U&=Sti3ss z#eF7CH~zZft4X7zsTJ9^hxt709o?p%0_!d&bMx85TTB8HO@ZAaY;#OsX?SZJ+(S3g zNMFJ&-bkWCNXQjd)r-SbJP=fcE+t|G?b%}DTGO|PB#C$s^UwZmeFPvqa*s0n^IlJ# z(UD5E&EU`AH{s1WyC7guXQYt#qW1DWv0wN;vLGy|_Sxhuqj^t@cG_-UTLxE^cZfw$&;Mz|^zW3lHE|M|Rx6u~N5Vmp>8znC(Qn8n@DJ;ERYA$l* zVsa8I0imu9(ds=WtBE*KXx;_*S6gb_$4a)JN6xYE# z()E5O8%Qfie4FY?gUrV|F^>M^*#f-;1}rR&+ojxcoaZ~Z0@73w^;jnz>D8ulpZul~ zjDRftjA%x@X$d_>FdbR`*+GP1XskY=qHts_KM%CjShB|;McKEsi%x@%U?uB;+AHn| zT~qT*p?57m%^sS?^;D zkSq~94ne&AsPy<+CE-b+5qI=yQjA>aP&e9 zB$8a0HuAWVOrE9IuKJAu{}D4|Y$Afz^p_G1By^2F`@Q+`a^QKZy&cT@?Y> zi!ZRBQl9r*+V^{8$
    v=|WrdA(_*;|5`elIxw8FJcm{R~CEnl=Hqto)a7&3IRZh zIq>8&=3G)@!H;!okX>2jB?+PRl2UU%f~b0JY62?D0101d2$@(Xz6E3T7@IBzNmI`^5>Z$Qh~VO~ z>Qf|lk(>dsAp^zJGmnFmqL4?B8(rBtQ>V*SuqJeS@>1FbNX$#HRq5n<2>ch zbGzwT5-+luWr4(!yoa#d@P^IV$2kbvGB*V|Rv-Dk=zI)Co~S!L=mmJ`nU2 zkzsAfkM$ZwNXhU6NwPISmVhs?Hli>P6i}W?a{Pfv25$#qBJxP#=`xvxU7j^xCrzzh zg|7`gk5TF?v$XTvvUgBi4)%F7X$OJ(y~-1YNn$4a;KNTFOHKiM_4pH>UG_-oI8HTQ z`z-Q@C+B)l^ups@f7TW|*X3h!2^c0Muns6td_|z*a<1u_9(lUbp_EScK!(FeTb>C8 zf~5aoz?1Hzp9)5FX=7`+o*P@whGThNYl1j3d>q4S5mw@N))I;1ERB>s80AXaXTo9G zS-lAp@Y!yV^qAN|>ku zYab);V~|Ca93eTdE&|YYeg`Y9tjgj;lJ~)ShkP_WEqc&znXBKW+k2J6mlO7Nrb-7M%wyfg>^D2S{4$DYBf(40gS@qAg=gE*Ml3GjjPe>x5G8g~s#`AHta^x`m8zNY04-~RrGkH031y#PF`imsG| z&K)`;KLkQXU9lPtdVQaTRWgoNR-@HCRfI&gNo8lZ+!w?2UDi2N zV40uf=mk?cI~$+NVf3S}1aNgvouzbsO?BFuEGQ=YT&R|V{i@mtJD1jTvS{9W{2Yxc z_BMnIAqk)Lmh)Zbb7lF3EMTTQ%U~ddX22TS-7Z7uawnUuTMjs+ zi5NXNlF~vuA!)IFQ?k)cbgwl!U zi0pY6yR5WIOA`lZxPA2`6k}CBbbQe`7x7Uc81FPA$`UvQQ!PK8S|=%BOC68ds5oI@ zke76Ou&C?r`h$M?LBIV#YOkw>x)31vuCf=_n)cVv` zEPil0xTIvoei60ksl-%nr!8ajM;@1M^nX*W>Tj0xw>58^*gARjUQAq~f3`7`#}9f~ zOY$VMS$me~*OE-WPM&@JeEBZCwDoD~8dm2BznA=$5En|FW5GPam4h=!<~8gY-_99s zuFh}EAilbTku&R%yeBQ-{0cMBo--;bnrXF!V>_3xny~LK*(%wgQ5SfLa!AG5pS}-{bU&l? zqMJz!Cm_D)=uGsbRYs91kV(rPm(5sB*?Tsp1Ggu8zpnx-EwG8RX48Xx&YTbX^vK*~ z@)oQ*pgxfUZ)}>pJ_N-HT)To%E*fVL_pG@O=8=+p+!vHK3uWdce#TN5h^e}wX3JJt zR7crM(+V9jANH(8hdgYHdGnbJKlMBB@`@&AYpt{5bnS-Aud=SE+ppd*?d?}ye-SUg zvSD4Sdd(Ha6227`MnD3TBwq)IV^HUn@|&P9Ri}oR^-jaE?Vcfo7)~&>T)vK98gzUh)dHpzGW5#f9Wr!z4Cyi9| zb0cjG(5uBgbg6ZDEh(ii^i^MMfwU-}6?`h+X~5Vs1kN7H34N+i{?+H!oNa*S*~f?8 zKK=tU^;+6t^eY{;9B{I}vH26o=v?M87XFK94_Q`sWaE=>85KLdG&kS+QAuknpUZEY z{`}jb+-2IX;w2;XsIXUnKk3-qB>E9-L-JgLK9`D=vRysY?9O<&V?6lnJ*>!JE z=zKtjgGIuIek>nLhFb7G zG^b#K_V4DNs^%UHOU$N6PNeMNPLP(6#MLaemEVWi2!s;hD(%y%Q;&k&r-EG|8M4{f zW==Yk+vSG=7AA{t^f7^q>C1GM6y7~>E@`jh^bW_8xAsy?SMxOO5<7Jz+l6Z?gxw|OA-V{p@&yw<=n%5t*x zzMqBdjkendH?f1Y`M5fHR#L}NQc@xjI6U>+G??Cc-}{!aLDD&~*dS1@t^c%VEdw&A zHI)sURLt5x2?2g>F{C|fS-f*$rIlJ(D$$v;Gqd=8ZM8RAYX8+7eH?sx;n)}#HjibN zq;Z1%-0RZQOnNFI0(%xawbF{|t7}+iqL2c+6ZlA3Ny{t8C>!PT|3Pc2DS**|c+Opm`dH3j(y)Jymj!eCDhCk}6%M_AeJZB_% zsv*`*rA$BM>$-nEY82J>y38gQg=YN&XM)phzU=UCXFA;YdLobvJtnjuyDRIl$27RL zvi+xe=)XGW+hDtOKS%o!S>-kAicH8tWlf*w!$w1;Ev$-oOnBwK>&2~>cv%bsM8WaB z8zye%(ROJZ`;{HHLw7cRw$JKu7RZ^J{B}l6z2J<6O8Zq(>Y6+jQsx<&m@G^<&YZa> zpFPsl2mDmVKTVQ-g~;SqT)Sl1NkR(L^VaqwI-038G$Y3b*3bGg#i8o%^1BZg+rc1> zGib9u4qo20ICWU3{LAaP<|VsBszwZ_lFp$JZ;iFT+tg{abSfQZFIvkwnZUIC=$OLU zyuROywlNEvMQtAtT~0gd9=nGYqt zt%ye}zM;)*ldHoJ7B=HoGxz3XMFn&i&z(&Pi&vhNw6MnJ=QkG_wYU${o) z^YpPFZ?~uxckZ%pove3uhsD}2qg}}f`Q^O=C&}{hFZ&OEGY-}I*P2MqcewotEEih% z&96xn=%e8*jGknvY;*ltK{@4H0B~*17=d=i2uu`CM}r5(mb#8@q(h-gW5jmvXG{B5 z^U98=HvlY(W$ct7jhqB&*vXFS^Qh(zI|pVAnlEHgXlDG=*wJ$Rq3xiID@HPGNx)eZ zYqTty^WM1F3eErL(tOMO#SW-EaQmg6`LW(6v#ZxO@B}9f2!e;6d5fEvx?xM_*~LSbNGv%BshuVE2yMUPXlW#dn;KIPC2K zp<`K@RBH}ND1z!P_oJkZf0H~oW){9uCZXTk!{a4FY-BrAr!kVN zdl_d~ncu`<#tf>Wmoupyez1x|naLE(qnh6aL)=aDrtlG);bU`n+HRG2I6PEVo)JS_3OD5$ld5+%RLNOcZ(EE|W+Q8Gl5Xj|4@}#k6a{x8Y7_Rq~ zy{cTq?Z$mt?_C+=e_l?+?OL-exVtt@$?e%tJ-q;g7O)n!K1^K{aU4JG(>9&oX$bG> zB|LCm)@~a)5cIzX&ZdRS>ORI0HYDhl$dz z^ERausHa3D8AEEv)=TKsIKLCmla0i)v`k*49aoKJ>C5`^Gra{X&AUj)+7d^)ZD(yX zjtLn0VYai}!mn22DZ?q(vvuZ@)uK}OrDVI9$8Q_i?bzPSHdsc6?x(l&5-7j9+NiS9Jy|RWHaP1w>>OV`34e+W0fc^ zjJYalRuC3Xh$m?p0@h^yv3gUa;YgEq4+LSl#5yxAT|!5DnJz7>9=Mn7>oxVPROdv9 zCyCQXJ`4Jy1oPUfQT_x5+RK*%M3)0%>4(o5WQn0ykB`neQ1ZPszc?dvK^^T$+7{B^ zp5CzDbGnYA-r z84dV>b+3|sXhtVRbw02Xk=;rm*?WIBl}MFy$ZJ0_$>9yQtPn(-!|3%!Yq9|`?g(JIr(!IOn^(k zx|Zm&{M(GO#hv(;oke#F!4K_qWPq9aZ0q82u70euVP4z{3ed@ zl)6$F#OHs#{2)Z~0}D;L{9vo$OLjDQ%9(Yeg%h8ix-((8?WdX$5|&xBvrJorTeD{= zrb0ScFGRC+zFA(z5_ddfG$mEHef?5@3>}r^pVS)7@)s4|@F}g9I}P>K?GW#0&f7A- zm7@vv`Kbh)-|7>syz8os?ADcB#svY4`q<8KblB z*Rg}QQT|M$mP5>`ePn?vsgdjqMgB0*ymp&9i0(GSO;u)~)7Ua+MjkoaTxEBrq+ZW; z_54bEwoKo<2zogd!44_^dt_J>USPm2OWI-u!ZI1nqR_2G zyP;;rh5DUjrc0)`FaG&$#v`%jMrABYFLTD3oBx`dMlQ{a*UZxXQfX*4Z zC3<3*-J&%R#dNUkTzhqrWpfZ=G(TFzN@{eM||mu$;Y7)op|ul??N{6Fm)fZg=~ zJOMA){Od>p4oI7unRZ32h{n+cgb+U=ZM}qaBCpRp1d33e0~HgpZh(_;=ng!`Eco3~ z`f$3ZMT1gartktFI1`3KO+We>0N!bM#R~EV1PhVcNZu)4vV7Pk3JE+^+kzw&h#35y z?}={V@hcEkf6r?fmO(vT;zax-%HkCl^%(IwX7ajpjw{l0rRR~SK+hr4veb>1ad-G)*UttXfyZj=DTqnRo6x=ELKd?GRlg(T zFd|fxbR<%mVGvSBQ&jRTB)y!-=cbdtjO+}_3LsXyRF3?mI^ji}Sl)JbU_vx$FiU>9o+E}ovUu<8se&uzXBub(|Tt=w2FJX>``$ft;FV=)_yZIZmMJU%Q&7&%MF zlu*Gk#mk`Gjc6tX0Ci6p2pvd;6dyIK$;_pYntcA~?^Pxl$X(ErMVh7EI-~98`R*N9 zO2b$j)nY}t6oTEiSjaXClc2?HLM8eXtF!qS{7{c`?Fq0&k-Oa-XczMaRR5VywG@=8 z$ttky010IU14#EdJJuSLfu`crA|>8Zf0XDKMJIxK&M)A=!|C&?3FhW!XojtiAji^k zLIS|({0dEF;yDBRtm;J4_kj>x=;~?Qx~u0D>^8Wt26DDd(ObA$21T@xrgYkR2+ao7 zWPuCp+SU>R_anl-2bhSB@(<4Q)48fr!eZZ1RdfK!Fbf?~T)!n3yFlyH+$=XrN|&Qu zudp`GAsJDAEjQDWf!scn>mH~5xg^+nw*B7HjRNyBP--KbPmY$G-cVj0CX@@I-V=O9 zRK(9E6HsyvmxM1cTNx8_zY_`7^ zI0-2D4Advq0)NdQ5GL2kGucW90u7YPBctRj4(IQy6zPht9u#5FJ=}CNQj1)%aQJA` zz&M5=6@jF4&nW|FByGrJz-&$s54KXzAsIH!OAK;}0sD6iC@WYF37x4?s=*qgjEvU{ z8v0t{*NndMR^*#aN*KXKfHt&buTpe)lMH8eBQ07^Bd07Kk7E!3xli#i*8XpI+~=6I>-tO(k;!LbRKL6?YbSb%K}!~WdTD3 z-ard%gmf8X@?#rOxu)7oD61^-o4|#L0`HTDImlX%mqi^@Xfm}HQR>xa*Z@;C4uVbl z6)u!5OJD zLF1X4GB*LxOf%;x0_dw%*v$a5z#R0}l`ck$A489WIe`RH=qs-v$ofZF99^>6vC^<2 z1(U?`xux1{!E9>{Sd|;vql3*d^8^K{C>a!g|i!VGJG65xYD%5p5xb*hZ;feK;pPVJNl8lCdDKq4V zbnRIsJJi7pZugvc6s#$22?A<)aL`!#95yZonXqTWn*JahESbA;uOP!hm#ab3=IXD-pqH}dSYHH^|hBy>-w zFwmqell55#W%bc#Ue9-4Yn&BuZ#!bdN^4-BB}RKT*L|{|2b9?`_?fm^XDSS`00f;% zH=&DTmjE!^0ZO@G(oa&idOtE`(k^UQQbU`r+7E+*1VSKxg{d2 zn=E(M=vEw@t;w<@-vi!YGX8mlYXr#JKIW;j33l7y2IOEyNy+KE!^zFXiVIRaqulFP2KQ#)S&=2G6Axd@c@tPVjRBFGqAD>?Y-$eD)w;bY&~3S+;v)ZT>;;ObLI+ zuT}OeEl&;sJSo+P9-1EZD!QeONuX8=y1v6ONbXWO!I@4Q^@ZGrd2i3~T}kZe8QZ+wfV~gLCyWlS1(3BrHQ}$04&& ztAVDYlTt7*;&s4J>|z+>IZoO@`vjQMpkH*_OHBsex!fqHrveR_&l)3Z)5#0{^x?(A z_s~^MO_52oGF<*r>QlGS~DdJ?C8cT-VWX#lbRH;$D7uXj~ChKipR&5 zVhv4>AAmt#?s18W(2(Fgvi$bh1jytaz%hiays$vO>>5IWK2Nk~;vCYs*02Wr>I_!$esz5qrG&46eOCC+LU&&(w%bXk? zv1Az*SG}VxLmj6nHrbkJb%B>IGGv4A)U~AE{pPO0sF)FmgCB1^K>np(sO$*9qzJ`@vAbOtW`)VVTQC~O%mB|`R`S*bu<=T5@TnJ zILttX=lej#jE<-$(d(pRCc5 z&M0zKQY#xjkAib4vx!fc%n~nd7J`n9aEBdxPMyZ0iUw5Dj|-;0W3}JXz^+IWWb96Q zE~je5@pPeP}X>wX2qM~CC`fjjh3?E0DtF9F4!TU zLsRA{a%2--Nv9{AEU`x$<3xB-+b^n(~;bPGk=h? zwD~dcT&B;J=1MH!F)!GiPfj!TJu8pft33i2vrE5cgp>nX`Y-n}ANc*PTF{6bgC@vO zHTZN)pL$8?p}809_sXZ7iu?%WhHqc1lLPnugb#1eGAfC1vjr97CL;3HAb^W#ZWiLB z=FDfxIc*s24*t0N;pcX)HjL_Q68^UNWBWNod&S}QbYB~|W5(;Nxv#OK zD*G)O7xxOyd7`hc6UV~u$j0qY)X-)L#;aA)VcQ@HN<(ocU&x@SnvppbWz8l$7FFC`iE5~}0 z%D_p490;J7m)xuaaJum9s{r0EGtU8gW0Sgk@SrXVR#CRe*CJJ+&xgC&`rO4Cq_XR4 zuok__OGz;Hm`FKqvq!FPZn)Z<%NW0ecl>*yz$m(uKOIC)_<b{)Y+FqvV{hm)&|*yO|{hwf!z5VEzx zdGy*H)9ub6?pq!`2f4h;s2$Dot-4v5VX~t&I7UYLLhI<$zhfcXqg zW0|k`=#bXUYBwq6vJPgkrg^>GbyolerlHbpUt30a}| zdBO#-TSQ(grhr2+;SwlIYINxRMm~cj zXb|)vL-Ze!v2k^j-NA2v^x-6tW45-v4ny*G!AgECIWUDHdgn-yH(frBYxfr z5gG37S9;<{5jbK~D_EEDiwN&FF?1a69bjk>t-b6@kBy)NR1Ki$1q*SJpn-HD~M|IvfYp>cSMO_-&w%JGRX}*DiPL#+O4#Xqqsr zIj@1nXjC2~UxWn6issaXH6`vp{QPTG2z7`*`scZQ2%^}-}*n2;~bs7vhPuA${At5955B3EQ z!2I!i_Z|LRovxN~N4C}iPEnWbxW`+OUa&u04&tu`EXD3J?+EJ$yAZH9p7B2>GY)nk zNbGZ0f!au9lDQnx`dHA)LLaU1U99ZZ&5*dj_50pkeb&1L9& z{mezQ3Z|=hC-_BDOMxM*lNBF@t<{s7p?P6$7rd-oLX#d+&fp%+SMLa;x(RXz6k&J- zpK(}ylOn2-r~Z5l{W5Gs{AS3H8`OF0$-#E;2sSMak9Nka$dFJaf|rbrmkL7q?8dde z^Vn8%jFa!d1MdOo)+x0oyYkDL<`FlK0KwZv=(qQ>z|V$+VrQ*C9v>icEto(X-las= zgmHijr*(JM<1Y0`b~%u>JH!B6psJ?1oWNE#%*N#)t|^(Ljb9V{Nh?)v<^WfpcD3U!mt~binVl741DZXLK7LUDhQpj2r2N z0*+`5Vi!<2Ljwy_nm;!tK_{KC_m(~yHnt!S&y2a05e{y?CbNPk3UA*7-R658&%tPd z^e6%jIRA?~rZuB6YFDu*Fhb=89=r0qo{bw)8lSbdLqwt^15<7WK+U%a&!ydvfC~z{ z!uSg6;IHP1FN-aNa3`NbRT$!x@ zD3zcWQj-X>b*ae!osco2LvODPO|Wrr3NE`Dp$D+z{8?c7M(|^9GCSyVy(tB;8lvps z%6wkgBu75$7RA`nNq-LncAM!RkjN^N6s6PR@4+eWAygDR$pwJ*xXZo6RK(9wJpljV z#D%n05Htk{)@IyZJBz56U@g$}iBl%)L*=h8=+&49^2c7o9Xzx(^n1Fvf?CMIix>T* zD?dMv?U=)qLpG+-z>o02mm#=8Y4Lrse+7Q-;%8E+Z!?OSbkOM9AYg{+tfasVx@|njuP>&XSgaG~7%L(`f{^>;&#< zTKEEkGy`{t1)5{I!&^Ml%ZLhyzRL z< z%Tus`Jj;U{IaJxJ6yGs{o!Bv?aY9cm{Hh;|wJtS(u~fx*9}dX5%zKOsRR=|HCZ3JF zCVp0W7&}6WoA+gaDe7@BX&SHe2BWeH8lBli{ZxA!VJeGJ-e$&+^)0-k+pP#Mg2)ap!TB~k(zE?BnC(yit^scvNe+J%04MK*M3%6j&MfS!Otwuhq9{Vg7ZA7C?lfDM9T(14*h zivP6Taygg>U?pS@pv}fi&F6`NmZIllwr5ColLjte6ypfIk2p1cNE;#)36gE*`*NjCb+_eqi2*Bfbwa0yv0wU}za1?Yli66#|Na;*G2pq#oVF z+l{1-vaco_W$z$5M3lu}?V`Q;%L#^GDp2SG8~u)O_PNN$u`Zi~RUEH~@Fdp2%FmI% z)^j#pHxWUMiojYNFGctU;2}6Qp%^q^rcK7mH_aSu2Q{V%N_9|@1(|s!Z~*W2^vy>I z)p7Y;R7QriN#OIUJXcu=x@TH5n+8&;L>NUGMJ>-&u~}uE80ZnRQ)0h3JSSeT2p-c$ zekZ$e(PwE}z4~Wy%(%R{BJ5bcFu4leTw59UHEmyX92%^qyS(-m^DfvJJXGz{rHrq} zYeAj_t@%tae5wslAK3LazJgvJ$+0+AEe#GukHLY*N_X)AB4OkTZi51CRPF2k$}eU8 zZI}Y?`kbT>LBtb^w@?DIiKLsc1V$&*yC(+z^_Mb(W$elzy@8>Jo>7r3K5Y$2TjY0h zLj;iJh28akEVgqE$OXLyZ!Jr)LnnRqjFLthDv->evy=O;LAha*RyHwMJgU}G!QTV8 z;5VIS?A;obf?Ucl6?O9Fj< zCJuNKYW)(s*~A6Q9$6AQ^;L6)O}sDkfM+elvSuqIcAD{7=;nr$B_sePYI(jxvk&75 zK?q<*OTdLBFb{?>@HzksF=!G}G@r7Xw%eW3Lsy$_Sz8AiTG36m$U?wR$nk^-$Aj!# z|Esp2Z&ykm5;QnQ;}N^OUWx^dC0j(($PN4r*K)`!*2=&hd3a})mCo=&Oh7WzH*v-j_;_ZEL6K(@qM*gvw@S?0gF#B znTWKM>QXjN*PD+LY-iB6?H0nuQ>v;BPv%P0Ji(hFQewbt!x()YfP*_%DL|&^^Eia; z9PyA|Th*)@EqJI0Kk0R%AEd3BR?df^w;dr_`|7j45f(JcxtXQg(TOO0b=t z_>^m$0lO}vqY$ljvBP7rCCI*H!xs6_Qw9(a7oa@G%#f6R{gTIXoBS~dASoj51S zm>0R7@|JlCs~HEI5ev#>OqFQ`!lrUBRb^Wx?Q=Vt{-qg6aci};^z^g>3 z)T<2$d_7*YLyHmSXxN7>L1d~3K2e(RC2d2RvOBuNzi*6EXPx9DgEU#HuaRhy!$0eJcypI2xyHgwFWwyov}bRB#Od{N4|^+vqX>W;QcU``b*If zVDdyZ;3M4b7)DkH-MCYYug|=WeZa4+1(cJ8XZ+dQkR{KivIv%o&b}KNg<4-+dpxDa z<1*38iI!LdtxEA?lyLwc$0kn04O|6D2T9u?iTu#f>l|s+qlgD(7+9YHoWTUoUb+#& zB(PVhA*~n|zu#=w9R@r?r$`nncOp4WQsMJ$wTDD%MNWg&`tywG`<#v5k$x0jeV2#g84GHYiqi;PQ=SZq>Vdlbt~Xnls({yw`rsEaO|8DX9i z7-Vk9N1{Hv94pZdp-vK6}v=3A5NJtH})u=SfG$ZZ(2|ciLPsqH-hoT9irfHEIB%PVZo)5HK7(0gG_G^ z?7`T?OF^W33EbmGX!!%O%Y6vJ=~&|yAE5RRbx8xlEWgR zC0wSm{ks@rBz^Z2ySePvJEB|~AsYlorQ2Oq^w6fw$f zgiYKnHK?$Z3a@5xbFJEC<3;>)(MCcwFWGpoS4;*E=Yoa>-V6C%FnEans}-<-MWYdO;|Vm;Y|l@L4v|% z-vt=8AfuNvzB{3+_{|9%q$K1U^!=ACsdgGMW>+|2mp8{?7s0z4BO$hGLF~PVU-}V` zQLaKC;~y3JOk3G&P7R<%&7mRV8flCV+79RQ^3kCAP58q<|fg}hXJMhKblDrw*#Y7Qfg@t2j1g%Aq0LKnTq1Krs zfdbn&e$6$5jPRVkX2RFlPpwD`BJUh0I`u#8v=A>tuV_?mi~$Z}9|&bRdmAL#nqV24?ZB~l*#KhIp0)zv zSU_dVLyxdQ?Em1&RDxP;&!6j6ox4=<$3vjE3930R!Ft0^zd@U!*(aUkge*NBX1mgq7<*_>^|ET(n>-^DMiAxb z*pmd{x;tKhZJtO5=$N}sKitEsRJT!PU7YH}o}OE^8~4^clYo0drN@xy1MCbJGWYVd z^Y+jW<}x|1Mz9IF=gvX#mLQuL6>x0I&da0MaOo#t21%e-f;AjMH(bJ zG@t>bhiY<8uqFWk7Fh`b~CGmNMyh4WbEHWM;*3jZ0DW* zROQdZ(*{BPwo^Si)`<*HT9%`gJO+7XQ3?J$kL_$!56^1t=x?q16v@Tx3r&~C+QqU{ zD{?lh<#!$-;(jiq!5tY?)d2I1e;Uf680Q-&%L-frgZa*<)#+wmD>z&m0dSG0CoQy# zNGrRgLtTEDK4|;cPF;R}u-z?dv!&*Hda;ek9gYi?aqHV^s}g? z-e3ok*eEc(B*t)VU0H;Y8RjJT6n3pQB*oTy6Zw9!x*Sckfuve035 zT^rEHPGW%S3ynTA&`7o4c}$}HF2er=XE}ZfG{i9vZqrqT3xylFl9G@TV;Z#D%ER(vy+ zojqer+8U8KghW;#he*Oi1SAnv1$xY6JHR4(Op^|mdXaFJ);v@uhY5ZrF|!oWrer#m z1_@H)JW3c+aqdFNz28(YmULT*Vo692Lq-WNMb`=gR*K@%7eXuv5Hg-_#ocBbQ*d47 z)_S(bQ2BK-iMNwUL0D-m#g&DO9!IxZ zR9G?AqUywZ@i zx_#FS!eVfk{pVi*0U1pqbYwOtw9qzT@+Ge2bv(}d=RFQ4+c+4aa2QO4p)+%Rc<3r< zh|uP2ybZtCO@<%(8JyJO>&E2HrHeZ=NKq|D%wLD0ONjxN0$i%7Pbq(ik`i~Na0)|8 z86_jurLl$?Vc+#+a55b4UHI(vjZ$vg6CiN*=;11p_Nqv^^NgW56r8@2&NT}lmjxuz z2#&vxq#i?R@9^aba&^d4h9T3%+2ff>EC81s-pl69Y`gg;vq$?=V+P^jjA~||6-hRx zrRhysEQ2F{A+7En9Plws@4=H)gk)+X${eCm+q8qUX$SEeob>qh*8N2o5q>AZ6C}>7 z)rN%I_GzKI9bKefH_k28fE~m$4aZwFOB=p}S)shHAWNq~TjvVrC#tjxsiTe-2LcnF z3QQbJQXaqOHPjtzi@yYA7Mf|#e79M#7!Lhd1U3L;4^nRlj1T}@;)G}3rd;wqUqUqn z4apvvb_-KEVoDg*-3&%!l$S7cB^)s$jG~B!HZ%^YbJ$+R0h88Z70O5v53`>`Ks(AT z#%a7jYBO&U*&BP#`q7u#G@?T&RPHz;?RcPjH~^JMD1%RnHuiQ~jhJL{ zRm+Y+_xu2^hH`c)3cQPg5}>zqbE3`D%pdhKKkigl7;Q3*D4+;&RpLvVkZLI^nX zRHz9uPGrK!Ns6V@^#Bg95R{B*Z?Vtn2~fm{Exw0BE&D2$kj7Zx}Aw^wFB{Aj81HBD`YnlBji5MJ>*Az4BD(-fS5tJ zqoDZPbW8#YW%9dF5P3ma)``#@0=BJ^LC2e~HoTM^vSKw!c&a#+>eM_=DmIy(7-cpn zXjr~On2>w&0FdU&9?H(ana%z>{jR6#{nr&a6tf6_3&o~(AB5;~;Go+1AMR6G)fIf%Ah!`OftCX2$8C4=eW#G2)m~%}8pandwi7_UD zj*jejAk!TK^Thx%uXS+{Y;9M@2tlGb#hUFqeO`BjkPZzUPA9uSVvDF2y1xx|4(YI^ z#9gSPMOE`!xWJ4i(_3IXGB8Vv;3?_=j`BM|4(-x7kq<*TSg#9Tbx_`1aunPfDp*kB zaAZlLs;qbEt*oAsW4=0Im@yV@@-eE5vkKc7F5+2AMabMZI>&f+M`{BrSiGn#>j%_W z<{(lztFn@PA=(%V&cEPv<`c?)%`}5C&b}bY+G;5ByF~QabI7{I(RCxGlsUP)8N^Ne zz{oKPoK!im&P)TsR6mo^t&A&GXSgY&sqe{ z-PTbvK!hIo_x4lYG?d-nAs3V&nR)powvRQcmsR zMw%V?*-Sf6JjCp=_q^>;BLHEujWQL;baZmZTcXCLCLk=T1+Fjruwd7*Kp-118iyRD z>gk_0iqKzxu3IurKG?|*$0j7@V+sh?43v4jB90zbT7(=CvJ%LB#bO0H1<0a=Qf1S} zWZ~E86*ZW|<@DqDYq@05%3l*#OBoMveuFj^Q*il4DRDSEfo~{npqJ`Uo(F_<&F&Me zS_JIEP}Ca=^?I0XW&gaRRu_a?%}b3jZdMK*S^h|eOr4VH2uw(C{)T>{TsJrf+&R$n zkY25}ZI(ES`{$Ru>C#(|x4{OJIJDBY5$b0NKAM92b&FpBzM}>BZUasmAV86LBc?P4 z+O7yfs7Rp>LCNP}J@iwStSGV&)~@7F_1UXCNr%8B0HiTnk21<`M>FR%5>2d%Ii>a( zn&;aASN=|ek)veSA^P4ak{VP#lXEJaOK5`g_qLwTPKSmyk2i+~epNdOGmt$q*h@pu zOpP=&+3OwGHnlXhaIPfG*T7;9x-XrhyOBmD#s>C~4dUUTttAvn*~7_|~JPO4=n5rgK( z6EuHy?wI>;=Z?>-ia`hmfj^Fz_NYPmnHStSAp!TY6tYogIl{`F8f2Ab7tsLM)EaI8;-Df67RFHdt8S-`#9+Qf<)(40)sOxAb9k0WgVDjWv<=ZRm zU}oeXoD;YWX`2bzUTN>MxQ)uQF?#t_U&_ z?EUZ3ZH^4@Vz?UGV;OyAU}G@bh%y2H9^Pd8^U zQX`F?X}NF%$4=;_n=7U68IhvtE6p@g4B}H@r!yB=53)2WK1b?Io-3FInrgC?Mlxlcb8{ z!Mp77>-lDPAYv}w;kh~Ju!$`B_^vFR#`s1lkJ zWxlY*)B4XfncGIs^1x;u0LpsXOyL}i@*Y_?3JKzMZ%E-xM>~TL8_IRd&PYe+cvX$X z%6dK@#&SM+jMKNVk$aXCpcLseden96K`6y==E$X15*j99*r-ws>s{!fo^K}YG@oxm znT_Z3?O=ol9h0Xc+cVUvH z{r1?7k6VlS>!>%N3WEJ<&--t;!Hwa<^c>uyrqUEI+t3nxbV4(&p^o-^F#0|)#{#N( z2rtmc(KW9H`MwjIRoMCq#PfAMB00mK&k4>KwXF>GJnmV8Vm&i(+4+vrGvS?f{ zy93+@J+AqKcPhmPdHC{WOlOATJA$*9G>WJvT&`@=0`}htRP)fbuQ9m&>+;ndS2|nG z+wNY?yb+JD^ZrokJlD)G1bKflkS$yMvkv$g#d(|jfB&EV`G21!lzy%z+bLA~z`r-g zqWN3iidFp-0h87l?u;#zDEjwGv|8@!`a~X4X?WwE*Rb(hj=7vI?}GvJEC{nGKC!YI zpwtXkO24&2V|yWyPF+Z(w-#8hiKnfc185L;6* z0JOe$8!)q?6XXTXp^yTpu{)imoZKYd9|0npq;(9+kw=Fg1Raty zxl@`U*cuuxI=hUyB`jjDO-peGJ7nyKStZq_c~kH)HDdr;S6NxwK8nH-73;}YMYiMx z^46mY!srajZahIL+^6P!1%2&idEqfA6Blno5Q9ckI-a!M5;s-)`N8fwUZlnhLrzSE zn@67J;~m%0tI^PFAb1r>lVl_e$@4?-u=hctjK@ZryU;@;?qJ9}Su;J%krIMDW+@M` z#F6mE(QJITCSE!%bmKth*^|`faD7(z(W*`0Okt!h1LShYq4OT>af}6F&O4R!!Oxib z{fI&ziK+>22~a?oT7=cM|D}Wm2r84J{wim;HXx`BJ{oP}5OEQ+I5lqkUIIK1tkNtv z`~dDTN@`nx9rRr)s*jD9`Eqt~JoyF@z`!rvA5JJb^WFD$LpTe$o|$Pj>95e8eSx5_ z!kQ#U@oEH!w-_7Dfvd1X_STx}Fx6;7bBPJAFrlm)(oir)$1#2Zj$cF>3;27T z*(=U)QP<=CdCzbVZH5DC8)rDCG8C{1-jaz|E>vJ9h1rvbzC*kQ;aJ9~6xB{T29`%R13I9g50%0yzF#5!uMi3^^1sB7w9VuYBv7qlyf(R5w%ed zK_n(xu9?J!X1Iz)ZmD?yR-86nZT`UO^-`lXf(O>sh8iQj4Id*pid(&EeoqY?M09gk zI!Q82hUDp)b`BvVhBd3(d0X_tI0mv!cUsPT*N-SO&$Cd{Isp*tqU2ph_zhK|aID&B z;q4Y$yl_geahT~lL^#Fd5?T7Yk?2jB({%g4%tzR5d!_(+p4SP|JlVp342^0O(r2%8 z38_g2Fbi>BqL9Z-NIUyY=yMT1Yb+vmG$JDN7_DBjMBdh_k}uVm5*$db5iY`oTY`zG zDDfCy8_=Rr`B;V)jb|yDN1Iqrfu!jae=yG(n(4@u(9+r^R0RMoim2*In@d37MAbHX z(g1gaNX8SR5oCtUwxzi?RLkI48!}UWUJh2emts*QU+$*(MxlkREkV6|XXsn#+4hnM zEQBB3eR9wc$_J5f+g{u~{(|ZW{hB(_K|(bu(y+cz{}JW5tA6P3p?A;}^Iu`yxn z9`!VHq&qY~+MoemAcHp7p?3NUP85SJsq#P!hzK!&^Z#Ufs%b(K6KC2DRUEo+-CwB@ zh8O@>6i3cHCuw7BB@#S*ES;Aw4(m!)Ofxtduv?IC*GYkc()K_ID#M)}ZFR*vF&=?a zAdec&dAn73Mz~td?Vf?uE2$A(d)ufHOOaX%DE`DV%tEwIeWah1?AWL-rF9eA%VDVr z5ZfW_*bXB~hS42cx zNsoX6#b;U9sV%DO+}b@gnxVNo5$#6iE7Ei3=5on!0?}UAZOsNv*u@ijaXy-WwhJ@Q@(%f*%*>&n$ zPZeD2MI`v$tlVf6Hbh<$M$DP7>9Lq)u1K8OX$T0MtJUtP^lSNk0zEW`K6_W=4XL=s z)xh7m=uz90j@+auZ~dUy8A$+jJ}=VSkh3|F zC49r=x`mEfpr@~26N1@F6Pmm|9IvE|0+~z+HlEgn_Is4z zMZkDfxv7RM{X_VSvIm0tNk#AMR?99?@Iu4gV^XmLTzCxvYdkf=g(@7y$wEx^oL4+r zqPeLmo#5pTsSCvnvRTKHD5UNr>AB5p?AXqZGxn~u)A0bGX2B8^VsW@NdgUp02Fa2! zn=4K$3K#Q8z|va4LtJPEfgyWT0&WfzsU7B)xaV4-*`20I|Cr(Qm1b%)s+`I6IdYW8 z;!X+XWj|J(bP`UwNcAfi1$?)pmlXTqv)S z8q(Ao-98h?Stp;_teCPBHZ35@TZ>EM1Q7Fdmd~WlRDk){cM)=#d~^q-^Kx`>4<~7? z!%nDURo!=20#$t-K95V5d+v@jDLqO6-X*Ft+Nkrmbt?KJ33wO!Ok;hf0k7OI^l(W& zaHNkQ9W_bA^-DVHGH3zvFIC!oH14Ak&z+Gyl>*3c&8|{yZl~Uz`|o^n9Nz~fS-(*T z$HdLI-#wjylnJNX)mGbri7rPf<|v#E*O_Chq1-5iR^=Xd8V8;caA*U&n09; zwZ=WiGU-a1fN+Pt&{tBIW=;m#3z+H8+o4x}dBMP+U2PI8n$fu+ik|0u8IiTh>@TUz z1?PLVh={e=3g;7kvV4q??y`DyG*tNMGlL>TnNmHAaArEPAZL&_d!TKM65|a&>6+H} zS9^AfPkt&EqJ(;uc^CTlZUN~O8FjD&zYHovH2k_>EN$U;`Y;|0(&imPAm>8(C<=eg zpophreHj(u%96K5xcTJIA}hsolAK*}hl?ebAtsEM$gnAV9VB`D4m(1z#1s8!0@(}m zG&Y*bh^mV)1IfS0oF~MR6w$1aGiF|!ciaKM=(Q}rJHDa$^lqISjcODUC`X`WBUkH| zFr19dB^kG5`bNN{W=+h`Vq_C)@xx94fb!&F90EWxF7(_PqfLX(2ao`gl?A!Dne$(X zlE55*<8VEEyzpD>p*wipNE}fWR=)U+BL3tfOzI%8<#ye)bY(=Zpg}BsU1UNRk;IO%Y}wxi?(Bog2K1qoaHCY@J34J_1AO_hy$$ zzTWanq0PK3qhsJ9*nMM#jyKgz%5RXkrupOoC@0&L3##1PSGNkeeRCt|rfCG#6d$LF zdUvKG!>B`m+>x}$IbfoR95pnJ=4BT*1?(-${zgGX-ZP2A1+vSw3367-D=zV0)Wjt& zB>KwqpZ`!O^1I3a8g>WjA_YOE_v-)>lV5)jA(F)+n0n;GyR#--BrYfRvlKsC`4SKZ^4-?wrI;0E7=#9R6N+xX@mo__pq7f52GRfN zDqAg!W;<2=s@04U!<-}bJ-rW(V$m?;^Xi1HlphK`?1az)>VpWMl`sGK0t>#|lO;AE z|6xo&m^PFlVPgGKtE67Im2BUt6;t9x2x(-9z*69mxrm*|#m)xuj1FBj)C;1PZ#DC1!-CC!sWmygDsY`7ynK;Dx(p`MJk$c7KM_hj ziCinekt8@_nfOU?qQg3QeUMVNf4s0vVna)k)M=SneK0eN7C)ghxREISzb~=dpdzgg zH$mcJGvb3R4{U)%ZWAQQ8&T8&6PqMoywK8}R?EG?G#eyipTg&GU&_hef9*y1LL@D_ z3a6lw!)-Sy?~WCp*0oQ`^nB%KUF()hCGr4vdCKjhT7>Y?lt5vQ3&x^^lj7ryf!ZjU zB8zYnG^pwd9yCHx~C~wiH2Z-kp!skNr2u4mP75{fW!m-oZmSN zP!*UvSP^`B<5T1Jj76!rGlNrGQ3R<&*1mE- znW~1KpaMct{89!8=}52yU1G~FC4&tTd~sH@mDwZeVldgjQzDO9h8b@w2uydjOo%u& z-Z!-TF+R0idpvAJXG=Oq;fpp;yIh!Vp5y_zUL-h zj9!rQl_YgdM-3pjBFHKFrU zY~s*4EjG5MK#uGcG)y{4#TM|Z6I*OUyArbP4tn&ptvRAdUPQSkv6yBOf?!G}<2Ze9 zZ-SN`n1s_U+g#H_&htL9=bL`&VRawPr!yG3wl{uuj~|R2$D6cH@;6aRonoWKTaFEi zxNUEAY*G4$vuVh@YnVitzjUUJEuPt=x7K0dADxJUN694IShS?Gbi70RO6kbP!7@VW zIA%oi3a8BH=;AcnGQR2blY2E8=j#|t(PFQumT($wt`Da3VC5?)gM>sm!<-(2b7%0y zsir!T;+%lyYhl=bz8VMLN92CERP+a0Hbr*Tf_XlM`lJhQvM^Y|kY2%TAEOY$#&1O< z!*8MMFy{vgv$uP1qs@0PV)X$aJb$gd{kI}ZIc%Db4c#D`nSfN_U1m)qenvo=y6kYP z+Wrj0y-eT;oAP%qq8YiP5X!!S+j<%F*M`8{kxixKuR?|W%@-A(=i4p`IqFgw8cil^O5Yr1Z;(wQP!1Vh6A-B64MAE<3Twy0V(M?vI-StXD4r!#bW=o-Txi%Vj9>N=XN0)t_``40;dR z`%j4j+r*7_`6Tp#9zO{4HHX99vS23bjB-&5O;?Mz!dfVST2Z9+CUh@jQ0{aQ2EE7C;j+a>igq#q&A$H22*rLQo*=c755-%y2wX_t3yZHc;4K`eLG2p zk)L;L#&ITa`a@@)r^(!@O6=q8k8xgaZ>&csdkTe;P4`TlJ*DR}d&+DlO`68@ANqu{ z!1ONUA9!q;m<#8LE=blDa0d)t?ttkWvt_;nhS$FQMn5vCz z50DTd)(cuLAb}#_!?dRz_vlC7qAe)NAulCiU721rmdjMom#HvS59MCuwJe;u7nxzX z11d@!32yxx1s-B-RmTI)EBSy zktGju_k6D_cHmfznGz4a7YDT@yx^wa`R<^<>$;}Ynl{P23=_L{rV<6OuTq&_jb+&z ztB(3E$())R{J?SV2+M4YSTZOVL{UroRMt3@6=fEc?KLf9#yjuW%#oCpqmB^6c>7-7-$~PGO7A&u=ts!TKu=r2t9aa}wkEf@%&)A7Vu@9v4?X+J> z!QV*S%#9{aHSjt1(UP7_qACKytoqflaDpuZ07svTg;pyyNFC}$m%gb(*6>?R{P1M9 z)11ifE})~7CxpCS1H25^an4J|k%(zC&nNw0W1@}|mEG`5mD8pT^eZ)7De*!fLDI(A zjW15ATNp`dN}zefZXJX;3h5%;NlcPadn8x?8YD#uE!jwmyBQ;9SbNXg2MfMU_4o^b za~_QmtYJy*7^9uCAZL!oINHQ_TWXTpmtxiSj7#`8L9*$#-;yLNQQeDWtA3+3j>DP| z0Eot|Wiw_>J&t+NSA@q=M&tgK9aG~(Xmf@;>E^>k4!Qdj7 zlU&|v0(cg2;8_^nhRVjv3?X9t!@9DNFfIcH7Q%h~M#OfVUA#|YZnmjc|1RsOAIZ28 zEx-kC5EEjC=OpWP#pUK|b*1)ewIw1_t8?C7XqQD*Xbms#ZBEgOi8t+JQn=PB69I`^ z;#fs)2@f$-<4reOg$%J$2@UA#Ea)$K-0EeA3wM5G>a?oV>ODACC7!v4Bw0UNwTMeB z03jMP7D2+q>1wjOs&Ql_N=*<#zfn>(loewn$DwEqY(cWz0I)=^@VRvXq)UE2u=)E4 zkiq)&ku}s819n^^12!9+-;~B@l#vyEkMMi&mwK8<%~nSGu|F@*9jq36!ln!C@p;;R z>P^s`)fFJUmfmkg*y}EW9ExNvKzoJf$gK!a*7+n)k)9e|&2tHx7TVItK6}5^IxL40c(dp;CnF!7h z0+VD(IVP-^xoU4+q(jt*tWApn&a1!>Ef9Jdc8 zzoMH$9djgI=Llyzgrw4Mg@|iSnQx^pM#(m+RFzQ1`maX3y7KNgr`{zYjvZhx_k6~B zEEJ%uhqMjF$Zn@3sKvFug9=IUR*czzl+qQ0^Um4(ydf&dG9_Z+jroU&!4@DR6hAIDa1eR|* zl^rB7Ah9eWRDv6^^x5D!FW<9QfhthQlQ)|bIOSOn%5)~$Khsj#$4G8D=LWvL1g+1Zpp8lM&f`>7yimNMEMzy?wtAq% z)%26COMQ^@UksW^KBi0z`L7p4^{Zx3_#xF*wJFRvfunT(E6I{O^Y#;p;aP|b7Kdrv zG$~-X(%H6hsd@~ICZ#Y*A50TCL{RCV(vFE(A~JX9lP*LK#ln(k@{=Dd#5$;-+xRin z-^O0b!oerKnN{zFmmk}p`3@ChP6?!M6-gKsn!7?$WAdu~H0oQmeXT1%E9*iK!^8Li zRA!Jh_R9Llr^_U1^YVa)50kK(Qfl9unlepBCP5l=0!bo!Op5D-Zs$vjP?jv{C~ymg z%0o1XK(|Jv;h!}@@&ADuC)NF{LW={}W|#9DSyytMq;am?h!0^>Jt8(PKHf4Fh09Vv zF(gf$J4mGr(&t9268UXu%*V%L{>ye_HC-p-(ewAgX!kKb;Le|-CL)$TdGiGA=?al; zUN<^kWetK{a*>+V19X;CXE6zZ-EWT@lV$IC5t?6wwNsY?c$Q6UAJd}ic1TNZLcURe z8Wg?=-6^GjAsdBG7KWiE3g^iLR|^lizG)3)^NhFVl<}@_a@9TG^Y+S94$2z&L#i~E zQHk^&yojklakJ}X2`XP`^;#!u*eHlrM45#b5}Y1&El+=!C05QBR+4Qh{GIqd zxM<>9TM#MZ^@|$gUtFklP%rXcMH8I5H)8In+IM@z4bsuJ8BhZ93v*_vB{$4sJcGLX z4c_7gQs#$XeoROq!B|C@i(poKpEIh1F&)v@(kxsA@j(OK%&wmI z2?C%nHi))BMDym?|1?qBb~M~+-7i{FG*4+WZUsFhSG?9r@1$*dCMW_|`{OSpQu7K) zal(mA+WX!zU;kC7g)(*j?DUPs+E#!9*|pdC#0b54Sgj1#jo5I>cfq-EQ~Qw4u2MUV#8WRM z?!QOGHThBJ1r4g<-eaP4enCuuzMFEdmsiKLGneZbZ=KB1j#1~4{!T1#mm*9Yywi@I zrZ&6{_d!FOZTnI#4;td7;`fkYm9G_=*X0qh*1O5RR`uZX4nxH+IusW`87EFiph7OL z-rOV#=WA*j|CTB#zM?D`L;&EoQhx!Nhn_}@ufT62G%=vt_jF<(Qi{(vLcJ0Ctr32k z_tx*#7hPiRgOV4#G5)gZ;Pg55dpZ?b)O;SV4F@5OB4RP#E6Zb;s%2=3@wYA@8^3MrwiLzI@MLcM4iOH z0GJ#d{M1;;=zE*y`fzH7_xtBr z5#t@yVzBnYY?*>j%aJdZwtWMFMyE+P9a@V1-t>23QnNJ0(SKVQ1gMwUt(=eOD2s-zF;K4#(knkEj~dH4P*S0R zpL?!e?d77KGH2FJ7IB`>Yc1SU3XqY%m_@3!b;T*z4I8 zHA5NI;E42e(zKp4&V^Gt#<8Lfba>6>u!HbFA6uEIQhQxwU*|Y##6ZhsFLG^T;crCH zH2pr8FTei_mf1&^{^Kzx4GsaHIWj8&lZMi=+oxzI0U$(!qnj$pDVh ze-xZ<2`j{HQZCm2+X%jD@ohwIOTa(rEpEDlH}x~n#z2r z@+OTmrSO`^`Q2xMk{EOpauq#i9*s677++BBeUJ{7X=u%U8RU=pE*Kf%&RiAf^RVmH z=5&*i9~dhxZc<+xK%P1`$vyR;R2Ws?@cMJhCN!&)qkcK1sZi7LKk`TY*n z;T4L$#x;w!j`b+r4XV43`lR*PxZj>Q!xy|Ev5ergioz8xS0|P?x;gOx57(pP+C+Tm zo6$DP`aU)K<3wQk#>5vHbYbEn|M-17qzf-glm>gmI~+G95+uCyh=gYgRmn%D=1hNUA;ji6UO6*20^&;QVfC9GUSN~o@jkdpuM z**0A+qdyuBc+^1s#r$}2X_}=Wz=Pj$e`yTTZS?=8fX)^^kg3?eaQoke2kPV!H>~QS z9Tg8zEc^bfHL%|ZfUUW>U1mhMty5?|l=FE1O18k`>uptiJ9n!pU1lRX+~bvl9yZ#S zb@+qVzS}wj+C}U0>;YQ%a)YYhzHSO=IqA?6@QyQ*H`uJHs#dT}%fjQ^@TJMu0DOPG z^{Ft)Y=pYerhh$-QDg{p1*OD_?m5fEe3I6kA`Xb=yhl`0D}j>5;v(%Rvc9L0Jyn0N zBU6C>9)<_u_&zU1gsppClWI81@`sR%<$L~=w_1fqO;Bm)#9Y;v^F~P@`1j`AGJnhG zLsfstLf($c>!q-@DkbJG<8p3;eMD`Kv#s~6lZ)6RUv-V62Tz0c0d z0=xtB^Q9{BUXJU0huA4xB#flb=S`cw%JtVg82a?JopiLb(8=Sd&WsiXb!Hcl)Y2%^ z5exhr6Vx4p#D;I}IpiUP1OzH&DiSHb#e{V;Id8_FSCiiE#F<1%D_>8i@=dXYNz<=l z!%%@H5m||58hC3zN~hIp;eyJ1q9>%sYSj4q*ci>AQmMv-FWKg=qZY0_RE+kshFQhv56qLgoUE!{KavuwY2cHxAENY`osIg4L>j#n68UZNb zLeXc7H>9j1qau9{$w4GkH)a9Mc>cl>d!H4ePzi@G>sv%24b8lB?CD`1$wC$E7!{Jn z-w6Cl+Z8A=y<5o>j}olsHsLt=@)AvQV?k5sW0*Nt z4JB2#GdE|W7s3ZoRDZViV;S#DhHa+c&Pt)3_RczQyF)wgqbXbN*QGt=*=!PVR`Mrz z3$ptx(NGEgwKO3LtXp|XL%m!_cShn zxyO^zS~w^R3ajyU8c}V2ooS9jR27vVe@6r5T!a)H>@cwoa{4-sBAcmno*yUnm3yKtiKS*1Re8_VhxKg_Jt!=L{ltTk{5=Dx=<8`n>99%f0uW8MjBMjTU8If&m zME*e>Fu?<^V{xiS?{soVK-3Nis1<-V{uE(awgA=@ga=a28GvE;9Bb+{OT3>mXR!A+ zcA^%?O7O%IWUfb|z0E-Rj;9cU#YL z{_S2v!Q>R5uR(u}4&nasXKw@J>u+{e@N~gy+A%f|B=-u~+C$?d0>vdXs0-aL^({2Y z3uVHT_H8`MZ>bZQKoNY*^E|atd}7pxypB|w#`S#yV1mgn0Bb+4Uayz#BrO0-FTM57 zo0MrBf|dj78-MrlIhB~+J$1T4vW&7LbaI-}#f`gilPFHTCKIE}5w@*^sgmg>6(mTf z6dD;6@Khi~5F0#GW$y|^QNR|4;aPujHVBYi7GZ!48GqN==mew$jF2XKo2&hqXwJHc zd%~Q|HdT9|9BMh3x+zJTnLO1!5RAqU>Kno zmICKstCqbiKUSX|r{J()0h!&1QUwM4D4?2s_BPvl0y6N;t|}C>V>VNoYCaT;aS#RM zT4S>@{IlIo33}l=7i8@@5F1v0&@yiZo5AGyn6e)>;=F@udm(Hk*0fjO7m~DR zAiQd_&&Q`nsT&lD{>+D7?8J>3ff?tFKU2KFg*aw&b%@z2bQ#~xv5wJ?&D^5&zOR4h zJ_BeEaYp`~j*TJNipX2h%D_9$FyW09cnR7yYbn&uNUZ6vq`R*cvB$~anbNa{TjY+LCNi1r9 z|2^9kvau_4CW%>L5BPDEC3T#d4lFS@7xB7Y&H9F6-@f)Tiu?{q-f-A8RN<=2M-?%=>)rZQ6CS-&VaY(v!OK zZf$)=h?3wLNGK*O7mEY@>KRZjqVIgYmv^*7j^}Vw_j5Ky+CJdBC=(MW%lj-K(O0Ui zT6KPIgA)Pqp>NgIF=V5@derAxp3PQAda(rBw(6#ajp}w%U_ngEAqCHT7h~oU`6$v- zsaHVd7`aiK&23pbYsW!an!BdaLq3Gy%hH9_@mvmXq2;9#&Q{Lve?hnZat3LA!60>|UShGcyite7Aw_kl zd)8r8Xs)rKLpSEK7g_)k?Hw}^*~k3KKm-FsUv+<0uz^1dYq^r@VCLaYE29EHg|7K`}>6d$9Vwf)i_-yG`U*`UE(!VZy4{O>J4jOUM@2m zcc|S(jkSG>0IN0DHeRQc!k-KEUfDbZh~JlqX6KvC^6qNq=F-m9cvTfqRs6lpqzCzc zwRb++7NluQ*u-epXtr>>aS|-&d6-@xEl>kL+{^&Vb{_Wnml7S7U{^eg(ZHMiM73xK zSB$R(&gjqgHj^LZ^DgJ}{&@&17{Y2nplS6rsD;gT=8rIRf%dZ3;OBd7VK4FWRQJz& z3l+7%j$if+Eu)w1=#d0l=2v@t*nG+qMOi{`X`RR0(MnryZi6!2GXjl8D8L8fQ7Uf7 zpf|AS-MW12S5TI~Z>Zpr+GVb;;&GWW2-TfNm%2c>LOlY994Tt3_ApMbTIHlHHEt{Z zpdP+OJbgn2&IE+tTTaq8Tj%@WLsx4H*9V+vo{7hNTgMiDIA4LyH9>QX2;!WA6yW-N z1Q03&A(KwhY^-flI@H6aQe@Q{ZS61Xu1nELJBlTlzeCBonvtv)z#CSlx+=p zegLi7!pAxNyT}7LJ^3-tV5#og+WY+AT*a9_8*6Ii;GTi`^DIs@wQ5Jp%DZ+wKTtzP z<3&$8NLD1MgLaI}6jpO;BGW8Ba{p}VO}ZV7jgE_L3f{b$%rujOefno*CG`%?I{UB@ zb*cE_OGlnyT;KSS5TIG6c&++72i|?Z#4sJYv!M8`#~h;VPY=NIrC}J7m=ZrC2}w zOxApqV`;T|VT8U1Q03TIrk(DrF!FezLU9&)xi~bqo*cd=+_ZOCZEczX)=yff3qE3ei`Xi*cEXoLhxEU-c)|1Puy z2-1FlMdD>Jxv~feQSxpmN*!AgAn0MLS`!+A|!qh8-#MKNr8^@#VliKzMke{SY;#05>efLQmV>jHi z_mgbu;u4O$T)nj9p%?ockg(kc`Kw4+TG|u0QmjS<4(mjyGpYDPR>CA#Td+sb%S}8< z`ZZAMOG;n3w_qD3{jMizf5VMSu$uysN&Yg}?5nkg^_@eaXhS^vsgj&7+y;>oax$@z^Q$QyuXPg#l*E>wYP9n_fZqV6mDxj#HV*v%3AZ z@vxA?iQK<LFdsD9g0l_@}tD zhXuQmkS`UH2miae@Co$w`t*Bi>0#0>{&%0LXH#a<+dXA%CTl$k?jc+Xva$zj^oe;_ps=4e*&{4P>qOjAH8A9_qDo6( zzfV;-z|F)J9_(Ian?LVYXCNseNf| zdpn1Ucf_1bQD>#VU)xAve~1Sanc|sxqubBye{b6#I-fFRARED5S$pq(u&UL{wS*QY zYXH=bjj>BH83w>b8C=*xZKxdLuiQolDEn;0Vde-BZ@jFUE?M1vnQLpQ{#QD(NdYl_ z8}KECi^xYbfEEze#qmAd+Yi@9U~Ty(fr~`lcf~$C^DhcHBhi}#4sqVpG~X7*p}nYt zp5Mn{EBPq>{X^3JRv-5%LdKQiA2S*2?-z~3qbFN&`QFV60Tvi{FoD{gt!FjhFF*eauz_G&7NO)cwS2E@bYZJ&cASs_ z1L!!FXx<|ZxRHxccqogdFvo*CODfXTzo~6?$RD5Q35f!%lL!6bF=0AjKs3;DfD5g~ zCV%~I#kQKc$W#yOTVc3Mv|Os2;`XqiawzCK4&NnIP<7>-gvyuixc!soRpRy20aE)a z?{bwloRAwE7flWSQVRc0bUERUm4DXOqgywbA8ozJ_gE#c5cOm`WMA;CxtFOc$m^fQ z{&p%sh4FYDnw5QoK#-qLm4Zxih%SU=kfc$q*I`iqFxmUCMQ{B1W1|7HEUtombn zK^vRhUAFDp-8zXT(r6@LzTimL=NvnI3)6v^JwF&9+kT-L6W8yf6rQJ7(nQ#o@s!cCM zDKkhp9f!9fT^;ousj=wAi9z>trZPG{tn=P(V17o2v5JjvB@f%%p6DTJW8dLFU(SY)48~X?Y)OZpx05j9R11% z%?mG+7ETdzwub^-(4Oi@7SRNmjcGCETcQ>RS=KXnnn<*={8P#vE7o?%n>&cf^^R*vB|@Sf+eyW_fo1TM69zxn%PnEA(KtzQd$fxSQnm zhM;0mJGDaY%38|+t#4<6ixNYvclkx`cI)j%8oQ z32p{bO2n7Y;NB!#zDf4BddU)v8>)A)53PXGyD#tM%XWY^KHSxJN4Rd{V7vau&e+{$ z9K^GA1z@a>ImwQPEF22VFG@=VIV!u2+*Nx=^Q?{DOtH`bE#zCQ#WHgcX z#LtCkQsTI3bVeDN2g)rFh@Db_L(dp{Jl#422~3{1>s#&gGP3e0Z*gp$2aBNaaEFv7vABN;EJSBf|PHA zTM=^=OqiFsdS&4@@YT-Nx0S2fe_{CpTIu1G=D!&_Ax1o9p8M8w?W#6RjbjVed)yJf zAS02#O6W4t(^V-O?x1s$?W|6&0+m;KAG6V1{(2*;Xx-S*Tr{fEacU4?@> zGdAlC>XUOvgW7XFLFmz$`8_Dq$J;%xIHnC4i9Pn|X?vR8V>?b=ew_K_2)E7pO4ik7 zGi*DdF>w@WJ5nCK>G~P17kjWthjor%g7BO{!CSQRIHY!TCGngyV!BEnZsdLjq~zUG z+!?|&uu~U*le3XViHUN2bvx+BLr9BoqY4W8Dp1a&SvkE+x=A|w>8em zF73Uid_pt2Ho3ZsKZ{^SsbgfC6rHra7&+Pd380*Imu&jV^ik~a$tIa{o-kucCyHM{ zpXoq@CniZ0$rm6g%E($z+S|9S+rAu(gi)+oPSWVN6szZm2_yCi!@mla{0@i0lA8A# z-?t((DpSQ%*j?eDLW%rJlkwlBQi=RwlW{qvD3S%qwmZkTz{H>T`z~0D@`ja(o`qFt z&B_kin2r0(&;P<%Ks4`G)k95|UlMZS+-`Z0?gc^6dkO9K**zO9TKXF3$+L#}&6 zyVjgsFU|1YgO2i7#q~cI$(FU%RevdAg|JpXpKgqu8lwt;;e2HV$6Cbpxyucft3wMB zBl#*HI6y+_Um6N&SNB&G|BJIX+0kX!xdY#2k27&Xy)-lo4}PFf1EZd#V86d(k!nbh zvG2VeWDbHK6$gMnw+EF`0+&T zYjukLDm*82D5~aa75J=O{>#Gg`4)erb!Vivpq*Vfey^Ku&F1j1WyL)dKV;?K+Hd4Q zjDPvgUw;?4x>~=+)o@47+*O;?ZD+6l-irPGKKNsI(SeIoP(hT*IvzXB5Ig5xMdP?$H4Jnhs=O*?#0P`p;H$#$m zbH@m4ZfQ1xczqV~lYVS42Ex@hYk`Wz0HS*OF$fFvyf4SZPyt6_MOF{VG~GS~WEghL z5i<&^>R_&QOz!vyFe2Ru+m(c~2gF&Jwu&7Mp1btlkuBmC|Cmi_tp_x54=2^_bIFSj-bp?)_q1rA)%pB@#1z{Af^n`D$n&z z_@HcqmnOLWnqM+_317ro7R0HXA(G|o7mlD!CzBPJAXe+T-ygqAvn_BqpSl;Y{P+5WFAdvlNCfx#V9lr8_}Y9K5Jgo z5IsZTtDmSux7!Kkw)zzu_Jhw}61?}sGR6Jl+9|AG6y0%B+`bs!AJo>c z`{yr>=hfjuXRb-UXtmK-!`9CU{U7w=zvz!WSpN2+@UPdDdv1Ka$*Yv3Gf$BD;j*?j)QlU7o?=fDL_F%e!m_WLJcplaxis|2ePO$DH z_(qnnkP9HbdZm_!D6)(jT*2nW#r-0T|Maj;PjeW$oJ(P0S46_N>%-w)?|I{#s*469 zbdb}0tMnk)yMpi)O-Xemz*Y_`YdEP(C=zMkN5&}MS!OioEpM%|L#qxPl%yrQW_>~8 z=3#n&c*_kDPClD0L3qpH+}Z?&$}s@iuD1flD}d*Hdy}H>;V2)=H#h=RDvYQqwcnko z!z>*zQe;;0!PGf#&&~((r#ljQckhQ-EvX*so1HgHs685(je!vR#ewt%~ zz@$i8bOy$r7Uc<=Hm+~j@bW0v=|I-X`_Q_p5QY<09AtUqX&Y;O*v|U$+)EjCX?7}4 zmnyR@u`Sn}BFX$nD{i7NEdwjtj&+)&OUxt8qVhN%V+@z9 zMS`MtkANa!*zlC6(|ntfmAUp$S-w^iYLe#A3O?Na&0A{DE>I+b8+|sW8n}n;rv?5r zYZvWu`n*3-T9F$oJnlfiASjmfA@G*B27;n-z(B^xFTtA_iAHfTKyOT&ct)}g9T;QQ zBsxX5S!Dbet}B!yD0lLp)(Y9_nm{A91a}?U8%GIpF`#5Xw4;R;eJ3@yhuI|ib9R+i ze19<*61=bnG;j!7roNc*6pI9hOLW&e164;v(6}0Ii9C2d^hTu7;npN>y?p86yU`j} zZSIfz@-o%VsW#|(93>K&7tuFm??um;I=^>I(HE!93#)2yc7nSCeFBJ^qV_JNG(O`s zK)t(Bk!JAKfBnDz_5XpTIfR>NE-<=9_DCZh#<>E36yg(N>A$tz9Mf zf)GjJyy^LT6P>YvT~b&XL-_aD#&`8dBI^kerI~qb%o}$rQPf_hZBf6RFgNUb+r4@R6f!VV~Hp*0q zaK$Buer6OBnxqqgwhnm{fed+3PlJ7v%g?F&l5fxE;-IG1J550aSjJ}pwQ@Y2Y8N~1WgVhYE_h1 z9E8lwfWJ)(CsFiMMWIFEs}lMu_yvMso`uToCTY#tkMmYgH3%7+8y~htKD;hyC zZ6UsIti9bR{jIbaUE>$`>y;O$+J|J=?j1yZmZDk1-W6wrjq2L82e@xjmZGMvKjXw9 z4Bc%0>l^#|J^22%-S%o{%|AG(-qi)xf7=Gbp*xe>*u43zEj;-pIhVTk6W=e>vi*&0 zt)q#j679lfh-aRtq0Tq&u~53+OQO)~6@x5q1Rw>%RIx-zCESAfk*`Ku9HBwN5s=Zr zv8}y}Qs09zcGY0ms~5n;EKP`F8}dEJR5yZWssrdpOzwe!5nsFm18g;8S%sucjIOF9 zIyYI^YR4XxO@Vpi`1Y${Bn2r- z-y$4+Q}$(zb^m;cJT=_##?w`X&Dv_nobFs<%0t45j4tOBt$1lTq3nT#GP`D8%iazz zn|-9|7^JaKU8hUwWPOYsWu%fm$aWewA%mpG8AN^hk-I)ZP^s%14{EF>MIQ0#2t5{u zhCD^Xay@p=nsN^$To{rH-dYulbi{Y_8pk?7%LFH6u8-wT(AR~^YmiHrI5t9na*w^o zgJtTHETjaBI(8aWk|P7;Ch!iLML3a6x)l#SDi}~p^%kGOi%$(cE$uosOYo!-v2y3` zSQr}#rRQ!9PGY8V*_1{picM)A9x@5n#t}8c(bycQl9dQH)6t4DnQlMi*r`g=5BV`#wK4^}&T~7Nyw)!I(Q$-TGV$3ukfZO610BS3WYiKh&_SV`nLr zr5AhHyLD;N*?4;1wA1+te?{zTu@*}#)*0>+OLI#R%`33GNHZd4TXIzJ>#`zUl*aq1 zfmEV{L`Xv08?^gnnA{x#VT=`wqjxIUY49%RY@;yo(4@EbGyLGHBWg&@C1$d6pJ>@E zGm9-BKe*N|G)bw&o2`Y`hvKbWV!D=V9F_%VZYudugK62SWIsm<{6HMpG6vfa_o+;` z@-j`5o~VC{C^kPkqVaIjx7A5|lsRuI>P@@G?_iSmn@WNF#WM7Po~&-phaxvHh(bO= zTbD5MFJ{GVy);uxlq4hEEG-vuk!8|6OPSk~*)VqjQb!@wo6A z**#U`uG~~}|M&mrfBd)qNr!rzYLvqfjJ`Q~hJT1|!~d!@%ttA%cjQZyWBU+|M@v@o zV8t2br&=dHeNJcpP?c_Y6!n(k=s?n!f3-@tKDW&ric-QV{ZpmWkT-(;IaU&eQNgn{ zN&dNHs8wGPAF8xG-lZ<@i7M}diT1LQ?4Wu`_~&TMnt>i=xk>b3gJi@H$>_n8;0yzh z_(^Fu6lk!U-9t}V=hst8>$Iel@Ou^+jlQGTilk$xP&zcjCF+-Ct3yv6r74VHt(}Ic zM_r5GvHm5&)Q-Uw)hYV@Qj5MU|3y}(%&p_MTH$g(Yni`G^hNozLGssER~T?pTw3Dt z%#yy9ln874GS+z_w>;XZf+tCzlKdg*rTIfJfZH#maOy3`GjhPvG8$i^GDV+iA4R4q z`zq2G)vprCg1Zgg(t=B_DA#@Um$W{DZ6*NcmC$mI2o-61apdKV=(nUyhl3H+X~{c+ zQgAn}>s!TPmn_xqBO4-E8%d{1l4kGlCBbEo_)$eznN$C$<9CsR z%l)k7XNeyoSVTS=qlIV~Un3t`WYPV(=|#!^Zl%JR5TH&1r7)XCq%nO(YeT__n9HR8oQ4 z7FuO=`FoulWg~mZ5c+qS9EXcen(tswf?=o{VokC%?d+JU5NyD?^G-kvv-?_zE91LI zDbY5r&=GN#Cs%PC__klDc3HiMFQH*;t}Aa#pn;TZx5PO>y>cCB4^Lo?4m&u1krJJ4 zX4wsDlra}?)v>D7Xyy#s53Q<1`+GOhd{yM5nO|Qm`6&9FzqU9HD@KH(X{9!b=-z63 zs?PdVZ;Z*VulHBsuX$b1?bqC)bh^IXwZNY>t>iYl%2*h41!Q}Dw5FOnpKA#^bxbIYKqb@tC#%l7+NGI&h8DFYQas8ia7R} zHFLUYz0T_dx860|XtX$-X+2ZRRm+*yqL{r^6LdZ72d>EuzxM!!Td@+Y7^gHZt<)ca zvKwx~vU7Td&QluI$y1`>tkHsw&04*|#Lm^4;9#4eyS_#EMSjybz1vil*Ekq$Mdeov z?u_KHB|nK8p;|x%#QHwVBUR;g^Bxe#PKwci6I|Z=uAIED!WSvgY4g537*!GJ^+ryq zYLOVw7F=F1jJxfmht(YPu16c<@3kM&$t1O6&ny697$;0bfrbtKnrg!uFdh)`P;FGh zXgpfDa#epTJ|j-{-XGS(hHEXu*y< z*?+XOku0@lovt|c;-LdB z9~|nI3ss>}0Eq&pqwXwIgIASqHeFnTx9zHD9gy9-4#+;S2V-aK=!8Waw&LSt9#Y=s zXi=wa&JMvPdkivFV&JsTC{hs$}baR$azvg6r zwUx9KQDW59Ko#1Py>I67vePAFnW>sgWx`YZzS&eJv^qT4&7?9xX{`9$Cc{h~SkdxM z&l72I(}>oUnMyPg8o^n9@fuXXF26ixc4)C&e!&AZ#=KyuIER6=AmUDg6Ai~(e=`|O z(3(Ccd~Z;!Q*couEY=>Ti9z^Tbi}pjtmly*C+V3K-ghmCTy~?<;gYz0mF#ZBVfSh5SNiJiqMKm$*(=gbz)5bIG)ytC3d--2P$p_cPP+dDsRpD z*yT9F9XY2JtrKOAFIk(Gr69^zp~d5l;*Uka=#G<7uX6bSeGCVBwRs}&Cemrp3Ew1t z(YcOyZ8sVl7bXpLNJGT$dpKzJqDPJ?_>5Y#zFHti<@IGvUiI2wZr|nv(Nh)6LGG0=g``j`%Vi5QR1&ov6ZXwe~_D}p1X zMR^{FscYlgbxFjBv6#ALJ7dnjm^BfcAohzn>JJm62g9Q!hlp=*u1QPD8$O5Sq^UIe zcmBQWS96l3QTx1gr2PQ-Ob7zEN<__4mChD?lt$SwTyc9GelPk|yW*wL^tf|ZRBSk` zz|US$BoG~Jz$>6cvak>XOUOHrut#NcdzG4f6T3ogcg!}46f$!*=Pm}5B_c0ca_nwJ zK$$lMRR>DJ_o&#ilVTeZSxsBEF~F1$kh9{XIY8te1<4%k%*>W9hvp27vfGQ z%CbuU=@ZvkKdBTN+?)~G(sFko_yQebTein4&W74=Q+M%q9oq1G=`zc~@P!@EF=W7q zp+v{5c?_OU*EtcX=0TwS zqJCtW2g)&SEw~|k2%%CkQ6$CiQ8zXfbqCl(AndhbLsAjOmlyVWQ*p5|QZhreL7cdT z;(}VMm+K%dsVauEBE!(8i!-=EtjWn2r^ir1vWyc5hln;MS}v+|0^wfy#bKKcMQ6Hv z!aX=g>X8DaHMMSyK@V>(bf_?=?X~yYXkf0;Qq3UY8o;o3nzlTWgMm@_EHuC!QdoQz#6JH+T;FsQPZ~TBqh|c<0cm zf%7hQjq+eEKQ9tsGvTaO>+Q`VK^8x_`uZcBAb*4tP~7Ndax0S5gA)&jlb8paBF9P#wa6LCZL&c%$M)xhUx(~ZAr#?4dC0yalNt~j) zf~9DTXpdsK4a0pb?k6o3m+xF}3>{eVr zalv%!Pz%#Rnp|894a zBrR(M@kjGA32LNVJa(2%*>uD5b0274E^)WO-62{}6yF~xx*L4YlM92xa_ENhMD!)Wo!m)LkF;XXp(+y8@od^HMeh14?42%&JapzY@9|#?W@)@<{W+e^ z`J8v3{T6}5isWEc5MD9tF{cTI0LL4!-C==UN@5g6UiZg(j`x=uXkW;4HcRp}s>NZ8<(`M|W$ ze1q_>{miviMIjp3Vnp=vh5#TRbk2r+9j{PDm$nx7-!u;oGPxVZfH>MY zAq%_D&omTD-#^Mo=R_@wdOLsqT-XkNHqyI%4BuaxoB^8svUuc|IAU?535RKeRd+rW zOE#?XyDfzvy<XX4kzgjIL#`wvh0!#r zp2ilD#|5Z!b&hk{L~Vnx25$Kl;A<;!?9Y|+H{gmniHoRIHi3>Hl=+P(Iy~axoD#bIJwTWtA?+vJ8 z-8uM4D?y<+MoD1W;`U%;mWY378MY+F#ljtmKIMv>bTBnE)FH8$z zOAfacD!C1kbv&2WK=h3h9`aClO*K|WD2)ZLR7bhust`Ekxd|e_rg||JK@=!sEc)XM zs3Y&*p9AJ$p96nvmAmltML2@P!#T^^JVn8IN1)T`pNo@PzW64A5tpL70yl0F1cT?4VUN4wtp=PXyRZiOj;D7!9|62tI1MbK{*1{EZ1^dg_;9)-(68)Yqd$rn49YM=O z3&a>&uI4Hi2t0*Cb#N*A4AQoHDc-YAQMK9;)LiEcy{dT58yZ2oe#%yhs#68+!hz6b z@)uhSH~Qe^iK`{(Aa2B6*V?=frV1L&A1H|rzThEe(Dma@84NuoI#Jwf##D``&@;`m z+MP)a-vf418}&s;3)Fu&qk;_}b=V^tSQKdIc9;m}slo~S;LZMRs2=?T2^|Eg$0Ks) z_0TwX0H0IkosqV46;jcOGPP)T-`a%hUd*+?&Z#Bn?rcYp0B;w<>H>_vbKy{gJU?Sz zc0@qtz|~>@TnKVRtobZo>=Jke*;Wyv*ytMf$58Zu>@O_WNmc;Jxcu$gfsw3BtrSoM z7B+~y1-o-Ap19!J?Guw5FJUb+uUh_s1}7j$_>jygFC)((u1k8;(ID?*X!Pd9MZW!j zyJEL^l~5x&U!9vm11e)yN}OE)1J~aLP-9l= zHsB|Gl0d|of4pUc7p+*cT1O<~QGL{UAV$4QF(Sz4%-~{Ht9y2fn4dxJIFDk6n>Xg_ z24seDfCQu|^e0S=7Ky@|koo#SbqZ_r-cW`-5XGI8D}DT#-8T6w^@ucY+h%&6BR%{r zBHa(iL^D!JtP|3+dO((l!_kt1V7da?YaLnzzpoYx5(pkhmZ}DQ5K0@uw6+VllVJF2 z%U`3CYvkBRPsKb3m z{T^nge5OE=c1Fkwg~FI{u9c^4`7%flHC={~WS79@VToT@aa96KtRPL5;J&3=6|8NS z7ioII8S&cKVDQ}c=mbhr^jw^{oqFCdz@oJ%pKn~xMuCIHh5$kdA%G>?tNp9h7k)^I z;VKXsHV}$L@4qZ(z&<#{Y`LHivg7+tLyfLWG*=`pPIvr}$Mdw@ayJD{q3o3Dj1_PN zxjF19Lb75sr(}U)B5P7c(I9!mXR)E*#+m7(F_9vP{@jE)@R#4DILoSHnRJ$meG=bjuADUIq(57{d7MY1(SH>ME}nb{ z?S|&?L51E@Y)Eim53ZISN~LfhswCbAo|8&3ep@218JnOWUKJrNFC06JuW)QcYHy~Y zB{^dV~o8lA{a>*=I^o5(B%%bmW~t|FoyO5V$je2k@`4{p%X7gZO8V!Go^j07wFXxV=U&j*? z<%QxM)#acprEZkUKDfym(7Lb>=S2>EJVil8;>)ba%)Cr$QH5Z~bJCW_CaN;a(j}tD zm2oR_Hy`v+1C-=IYY@p_(bZdO!QuIvLji~0n;&p@My{)qs$Ny>$>y9kaGY?)Hh4W_ zzeehL(@a9qZ>sTYf2K;*)#*ciY+fI0ZiG3nt+vFbw%UEdEPB*sDyGO}f!*Z`5j!d? zW+V0F%6`kI)uLwjoI~NL$$mq+zT0Zyqt)i%xm#@wE2q`=xN=&JvW0D{ z9iD*hHCwoTzCMT>nWpJF_3kqPN&lEhPZK!zDrfL90ad*~M9wHRbeRBke1DyFitTdK zVfIqafu)Y2MPhF0SFX>q07|0lv{t%9BZ;Rfc7A1Qyhk`9Kfb$nr}xVc`3aaregYj* zUs*6?=Y^*tWxptj!k-nA&qK!Y+Z+u_Q_r~?6}+7Vzvlg8>6{wxVY*VK=JVNnpe>|y zVw*1l5}FTD3s!U*{)7q0w&xfc3k(201VYa>zyPF@cI>9Uu@GyQ)ft38KF=_lek&oQ#75m9-3B3hJviSq(uVO1IuN-~ z5Ks4tLs5<>JP5OU0QcqiiistlYT07VNwWzVM&PDtBud5FliO0LN>4sZ;|b4Im!w!J zpr_lUD5?r-*iBv(sgaz^>@qtFe6V05E>7}ncn(=`(U!a3rj|`zja4uPmn2WDbpM#W zmL)JAo&pl6+n6FkCrR%r*bTWHv<`Slm(b$0)2}y4haH~24+yK)1IPk6RyVMb&^iEF zy(>Z(kYKP)!XksD$Ul&JhdQ|I+lUH8gV&IP0#bG9cuN34K)=7bWD7JTD?Z+8)DUiI zXBl!HaCEfTM9|vA$C9!a5BnHafQKU-3Qu`1m?a6pG*gAgyk!}wm@4@FOV@TCz;Ly8 ziL6PyDoi(#I?X_?Jk-$t_HF100JkE1y1`5<8m+SWAuiV-~ zNH;qip{pRfmVEl@=1r~nrs`zVo|I(6F@4gA4KuY!N}k>ciS9)Cyf?x0I$}1WsxnAJ@ zv3Cg4LSe&P2zp)BzG=Jxlnok4d#O}-oiTD>SzjDGMOUjUyB#q{6@u8k_w^@} zcz#n8?g7BIZBp4TQmu%Pcbl?BYBmfX`B=y2%@O-EpJ+5#-iGB!Y=gCBtq3xA0pf_A$Q>7Idmltk zTW$Y$rMWF$Nmfu3A*qYXLO`j6bq>dt-esgiUQQc z=9L^BszTgBeMYAcc9)aI`L4T}aMtWy2YTZKk!59-M-nxmV>a)@@VeHThqt*utZCBc zhc!lW>qzw*wnw10>o^qm&-)%K&!*Jm_tlL=sxQ%ri0X&Nu z9&$r~+fyTW>_F`w4s$Y5+8#DZB<>*vcC*Jbj`Y=DDw2n>0|as6W)2(AWijYpiPhWF zfQG2{G}rHJ;^pafP!d+alEqfoDafZ)6?_7L`4B{cWALHRE`~xT65}0j?vf{g+VF;3 zIJGt)4ZGpjhZX@{itWIx`I}qW!Z4gF81RPO0h|D|0UD-RY4{mz_^fX}nX_n27;843JNbNpcn0Sj6WM%NYx6m4$v5CD2GhTrn;_fLi%D{W z&bnn)W$34>mg-#nIl8@=(G8vTztw#-bSQ|S)2Dj_&Er^F?kQr3F{l_Ol|>920J()P%7{Ny}8VD>U|eiV3g=2i)+J7Ry-nmu`gm@ee9asQvIOz4cqttHiPIQhclwpzB9@uaINT%-dAooL}! zqSG&9VQdXav^Wq9{2p$t5`I5cEU?l6=`m=cY}HZgz7m~v#p$DP5cAUb2qHXqX?&-B ze@z~r;Bg3Ba)ujv%p&vhaGTRj0q`QcDmn85&s#C`qh}5QoTD@Af(nK1I?x_SB_!lU zYa0ag_92Luw!u2+rdI4VGYuyDDCU}3$G%*ZCM#=;uFsi}v&{&E zFFJXG5h86j@7o-6eEu4?fr7uD)fh$315$W9$%%`gSlQGr>7EMogVo0hsEg=6cyvU2 z)>tM>M>Cht4}?X4c|EMx9S2;ThP7-P62#?dTvj-~8JIpL_h!3g`^*mUEU@Xj0nYx# z;txf7Tpjd1D4p9;(cknnH|cx#d{;9QI9kR|c8=lJzP1fLc~NyL3mS8`ehdP%(jHi< zBZ0RR0v|_>k9g35Nz1lfsf2y+>bmY!Z;DqmXWOvHn>jl@>dUf3fBs&>AUmT*`I|=j z9NUncp&{FY(@Q>%=49b|Gn!HIrVe!7EZvsd$3kz%7I#yTYe z`AIlPf7;nTLwVNXa>DJ5-E;>vCo15N$Lu&cT!yF^ptj=jH ziXzGN*70*QAUS!gUhN*rve&gk$ik`JkXgZ~0|Gemm9CG6gvDfbm|0qo3C+u79k{UH zJJlIaQBq4@CS;_)58jlrCFGTCR8XzlKa#PepvkmWlP>?C#1kg_bpseCKYlN+_$6sEuB*NPO46L?R>z5om^ z1(tZWkzPN%(8L-x17I{~7(Hb|F~cWDk4g8>kqFW|3ifr#Vab*^s+I{tyzuP61r>DH zIU2)Lqxx?+Fs(+W4`jAhH#nNYjvW#^=2%;!t+N5*0*&^;kX^pY+KpCXUw=3h~9<3fr6o_26R zl!!`s7y{2s8OwF=idj097ygA;DM+1sF;ZGUYbw1Q4tr;jDm{Gcw57)n4ZAm=F`Vv4 z@Ydy~M>^6^9zDZrU%y(xk>nW~j=LiH0$|Geg2bD;b>Cufs}p^2=nYIjs_cBN zOXZ!y-M&2209LhHSF$k~0_<7f?L^k$6r^&221BLV(0yPC960jYhfy0EH2Azt@DWHS zD?ts9sPTkno=GRP;fd#;uJ1wxEzmF&P*i+e1_LTjl1K|IWU6~{sKSZ9AUb%${9T8_ zpquYX9-JF^3es-ED7Lr6EZ4M;3CKV^G&SGw#3u+|s!%FLSD0~oPg%SX7MQxtA;wix ztZ$7O6zu1eX5MuAZ^zne+`0*8cLUc20u?Ime0(d`ys?kB7d!U*Ts>-XupZOYVNmCO zF&sdp8Uq~&4h{)R&Cjhh0ic|h!7M#rmhUR2?vfwOc<^dM#UU9Bu&m~0Y7sT{f&AoC zi*dio<+H_mNMsTfK&5bMQS_0eal>Z|z0_APaxJ9449MmH+(@35Xh3mr!_&TK1*HHF zjmjE%Pdjkl;lew+?J46r+*Rf-6<6PVMY^xE%X!j#0gB-bPAq$8lOE=3jg?$PSOuI5 z$KkJ*pO}`TSkf&)Be4(GD6}*j1#Df5`tADtV$;-Frj>3&4ryPgKW*Q`iegVnT@`hH z&*`y7VbNGBwk4#aX3d(k7*1N8hu2%7rFOA1?J70r6)^0?1%NGI@z4crL&fQvEu6sm z{#yv5PM^{k0$tF7!29|<(_U~^$BMg5-(ll20G}k)ll13Hha}sBAq9a|d_npW6!#^8 zD`o|Wc!4~X^jTQ?`bzr#^!b%eooCAT$}$ll6%4|9UL&#WYx)q?2K3eyVWf1HuM6cV3+>B9nuV<8$?t9Mh~z6Rfs*6yTOv}Q(h582 zBI=dLo!94h3Qn;vN%O~QUCGy0Fg!v2d`bRNVXm_eL37J0T$V3sk5^dZPx z&yVq1j8BwHCyE6GnTO?6Kwim#MB<7_sqW7af`pUlPIB*8VKut%>5)aZ*;~tH;9M>`C)d9geUp;XlcIbzQ}l ze`>ykZB;h>6NXXkOZ9yz(A3n}0Rt+Fi>cB3Ja1u$R<($4O+6cVrN;Wxqbnhd^v4zD zPbKvH2uP7+KRFjdhB>alESh>&<{&VR!Dt^R-qO zwyKgI9673w_>>Li$4f&u_8VTGid}|aOg>~5_C;5?G{7X_kCCz!y6m_daF0YdeW+d%X z(m&gve154@Ya9})dqyBZ_!7h~LAHXBh>>)Dz7~{Qu)x)ycSFwvn0yUzItDz>nSywK z(%})1JQkFZcBhQ3L&|#zj?WsJ^_B!HsiCpJJb&x9AQOTjp`jEbdy&BNn=*X{;1=Yz zzBAK!>*7;Bvsi&O@NC4)6y&X-(p|=~`@GNNG<7670l}0$^9luyBOZ+f1Sb95h^YXK zR*N<(3RFOsWRlJoeg|ENqKrsHCMcbPJRH0DLxJYSLZ>%Txu@JjMS!>&Pjw4KX~Tjd z4LU@p`(}veUW`s4_|p~BHQH6sN|U(+RX<;lD7>BoO9wy&8QJnmk6oUcY!LYO0oM78 z#GBM;lrc~6ie)_d4U?Y8zc($Dkds~)&6;ciJVjB_hP6|9A5D;+IGccu)_TQ>yAfRB z$2yf+>aJicaT@61Mm4uD7)4jY-6il|PYU-t<`{wKZ2$-K5Lp$wPkV`X#ey?JNRU3i zB|B9MADaOQ(w88A4z=*1;b0!P+-=t=+Kh}8HE|?essw;XA|?9w(L+4N9KfS zHt?Rx3~`ZQC|WzXp5t0%TFzIAD6Kg($;e9`L5og_BkgQRl`4;lphTB*iU#y>Ij0ue zj^dnxMqg`(l;9yr|NQ$Z$opXxPBByo{sg9D;lJ>FRyZl}ufhsu;Nf{F=LRQX3Mo{` zz9jzT);GzyJ#$*78f2TO1v;>ag;G?oVvC!NPR22I@(gZRa}~)586p{5cA`qaBS%@2 zk2Q#MC}k@aR1_xcMJ?Er-#yamX?5^(5_&p_UVT7v+`USmu;!qryjoNV9>BFa4cK{ z^8h5WZhKpvZAPG!j^s}MZE_?l|2d#y{Xo1|1y1#9*~>sop9quj&f@An&q)WCa2Lti zo>y5P?~jDuQSA}EF}izoSoILyw%;NL$V0WQ_5#%+frHlQ1R@faO?60edYVe!{9-K& z5{1U$O4!ICa=Tu>+7m>`@kBN+GBKQHwRp{ttaw2M);yBmaR^UxL zm}ur|Gf?09QLozkQ*^=%9h2Foc!vq~TAfX8?F50r#LD}ojsWY3JsGP3hiH5OR#PppX!D&OawA|G3`J`x1wuKO!Yq`p#JlJe|1XLhby%n#pa_$tea_?%y!?SsD;C@gg^O>({)vm6) zhm@G4IeDXvIE`m%5_h@u>Kl&Uy*0IQ&KDB-nK`SAB~@Bx+o~h#M%rUGN@i^mWTc)- z0iKFjTs3Sf#nW4}3put+SB~w4X25N4F`$7vhxFiD>@E(tJox^L!^^?&ebpW&fi{Rl zq*`pyCGfF+EDS*)qLzyt2aougaD!70K3fDy_| ztYPoz6RpcX5JMrtb8GfM@n=|5tywn<2Ls%w1c_0Vs{tQ`%7U}63VQHeV`vF*fEJ!W zB~_CM4yE|4(#ow;$W!J*&^IkQb<1mCFS>0gV#Ll_d<)gh&e?i^`_-I9rB`T-9UQns_uCZ)Y^4u__9CNBm{U!8uJjZvOk{F zaZ1omih`;%Ml^@OnQeu^njE~xx*$Mn9U7n0?@y96+n>43?zH%1w5JU%+GAsa!&D7y z+w1^16*I$TV~~b5|K-qt%NJRH)q*tQ^Lf;mB^_~&rOwhWm`?v|AlWUG^!v?3KU2^w z564fv=Abf0Q3C{TpvPjT!0xlv%W}YEn3f%$G&~nXZHn{^93LQ-s1`sBv>YFNXfYBX zxyg#6=V>3TlFGmuFl9#L+QsvjR&cYt^}>XY-PRHo6WIw`uG>p&E0$XAFmiwqL#4DG zI*~HHQQo=l!=Ab`4YLLLX6sdVNQqY{cU5d#q5Bx`hz5!$l0dm7n2yJ;0?DCQSUTAz zN3PLZh!V%in|zgWJOijp0+RSekrWMO$-XVMNi$&sH;ImH*`i93%Vd4J_t^ZLUyqDZ zS3*yzEN1wWXHPsvt%74e!?$p)Z5PF7ek;FBf#0kEYW>*!d^TEGlBgy0l**d5mi)9> z5rIwXq;cY7@kPa<24vzIfP-1OV$hS(LT{2J(61kiGl1Ga(Kqt4euQC%8AlnFt~z+;s+WF^ zv1y{rS~j_S-onxrsLty8i`3{R5T&5Vgy$$vRAosTyk|fbO4k(N>IHfAX4aIhN7F)h zpI=48R+F{_K%@$R8t2>yRdFB(PW3AFxd-{P*?fg;aVN{ zhZ^uO-`A_d#oeB5lNefw(~hmp2;s)}oot%99+FOc4aNUN{D{}R>y$@%%=StKEh=z2 z*Sd5PmFf2D4wA)((wI&ss|3lZy3!$oMt3bFXr%r)HU(k}7cHA~?F2}Kz%;4dN|s5f z2sfrgPMIC}8}wVKCrZ)p-(`t8k*-rc&eG8Vo|-127_xV$-*t%LnwmbDI!(=k_ga-> zzv@{#?m<2rs2XOK&l;&_h7URzHnSz@`L6}HK^@HCKjf$^ z+&G}K5g)26kUypbRiNI3;aEgI*x|8ed@MGtNd8y3*o0Cj+Hfc1t1HYx*)bb4Xf(;; zWlbEf(j?jBPZkR=@HmGEvk;dBVB6Q3-5|K;$VvLh=R23QQy^9g)~A6$6C#DTOLguf z<~TCNrWYeDT2_au5EmW1)(NA|*t6kP0);he)(wP+S$FK&xM~5l?%|0Qini+x1Q@h- zK(c}mLN(qhjObjQCV!>3rzp;^0bzKD>{jP|of)Q`^?} zAaaa*FY9xKNJQ^ZbY6IxVet}HNDyR>{kF{w*$mLOEv^&p>OiXX=HOs4dKO+~jV2q1jRDJqljMB}-~%aG zNM@Z%s>Ov`Bc-|Qj0^t^TEkk9u&*6lH;Fcjg#}Aa?biPnr)$sKz%ZZ`8XB8qf?d9dtDG@=@zUnZ*XyM(*Pt*| zKXByC9D1lICEBRVadMh8k@hGF0h#k8=)C5S%QBk3)MB7|i84grc?-)nW7+C9q$1k zZ^Y1=WXs1NVodU4G?CVUv?b$!f)*z`5q45FO4Z9#9hGVGoJ==pjXE}RsW@U);1Qmy zlc+M3W#0;nb2zFX3w4Q-#|IUx(|18#foV;-cpyZuF?yrR8s zt;cUQmOLxnRrNDOe<=@zxg_c{zsw_1U-STqL>(GEL@U8VlK%O3RMxe-xiIH=&M@a; z!}e1-QyWNi8}z1X@#umYp|6y2NL+n_TyE|4_=rFv}zZS_Qtd_;@NklNyha zB*OuV>^IF}Nr)CmBW+#+Aob9AY(z6<6~e;n$j})W2u`l@yM|jtl=WfA+RP3ICnUtd zDcM73+DEp$qRTEEwueQkB#*_$U4c2Tuve2JtqFEK63 z)f&dLxxW^DCiD(c?_RVK1Ekm1 zW|Z1HqU@y{DV;#756)pKka%%eG~L#X_7i(ugPj!{k@3MolET_+_SPYJF%eXn=_0GMK_iwDQznvA$O@I`-qW1l7;DmLb_! zj-*)1vMp^My|ZWssY9y4egfEIU#gDal&K z`aTY;mILtV03Wa&L)6^w>!TSDq|_OVEh>VPcgV$gf|KZG1ST_a!ctXRp`jI-n_d10 zRmpU=UKBLaREDQ0saa$xx?pFXlY#{X*Z8z~FXbRa6fgR$+507qRy3+jJOC-pDCZ`l z0myUK-EeaF`-~s;xcsCyP|^z%lUhp-nK_tnn&sGq!aVjSwZRbex>Z0yL;ijjqaUyO zbjJ0xjRH|hK{m=<0!CUup;vS5lA4Xu9er*hHcA&-qo=*5l)FUi|JH)YD_9>|c8VnV z^b;w=4bh6ynWuZp8~woQy?0~kA@gM^r8(pbC(uJeZo#4rExb-uOQg#Kw3+O5NOD=L zp1SPAsC5^&j($z{RlQ$?!(De?G~!;TRNK+3NNac{7`2B&{bpdxX?L__2 z6UFCXq@i5axa>EjV<*OOlY2wQ+@WQg(s9JI_6B8;!rl2DD0W&B{`6|tuBopZWyn?w zBf`1eF69TdZ<*Vzc50-N54dwpThN6lu3@gCk`U|6)Pjy1FNj#^t}d?l-VmzuGI|lo zowo(7;Rrgh>?rg))M8|ZT(r{;-W*gIa3p(CEFyey81dQFFToB zCGISQl#4#eASES#+5ysKWui*&M9K{)X+O6RHY8UoB8JoktpG{Vme z`kXbJ6jG5ymNo#AmZ$y5#9$0U+|aUJ;5g`rk4#;Lj8rrYz-ABF`~{FJ`^4Z)-qRzy z`9Zapiu^u`{ji4XPORiqa`!%>hh3%^kDc!5aetoT9SgIt5WBrw#tEU`4VvFzDy4}S z+3)(JKzqjQony^H%3kIBs=VIK=yQ>Y=XmaLQo<=JI)OUS+b5~0SilHqUHBQIW_{q- zIU5PC)VOI!pGaawl18~zaE#<<6*o4Csv%B~e$+vmrUi2!z>L7yZ^q<861G#ctk4jL zEo|FEN?fLhbiX7KA)9^4D62__3aN)Xl$6{_NwaI%aQilRQgV=!LSuUp+56vqGUuWg zS-u9l^vza=K?t5ADG6>4m4S&p09(UwA~T>zADsFy?CMoH}$6@{z-19*az zDFWz1uujRi^67b=8=MGX+5IZ%{{7yzTT=3iu1@}qb7Kla1-VAj0R z8K}6?95B2%+Y#fhrR!x2G&66ZcpZwf)*TjU^Ugfs059VP(_ErpF*x~z^D3oj$x%p} zjlE~huF#!PwJgz3OFxs=tI0DyT=6Y=>_05ZMN<%6+(>Lr6l`0VIW^fDL*V<+Az`2V z?L*IWn1N}xdT^nD3RR-*k|(rKu9{ptQgSJf3SIVP)9j(s$x`35b;NcS&%vmU(wH@L z>$9sN_(Id3o!Sos5)5Q)XA9r`^iBP7zYPh*$iy9vsU5FFEr!K!qP*j0?YtwmtCEnf zOH;dwL~-8LjuIaHs~w7Cwd~d8j`pA3(#Rb`;aPI+K`WI_I;eZN;lWR@UN9~)j*^z` z7m=82-c=}AqWeA3T-g|2Y_%zDvLHiq^g ze_xcS>i4DrEfUWv=+MPJL(i-uD00=i(p%?^f_R%54@bkgrW3#3JehHwFW+L#Q zlqOI^lhleiGYs2#zCQLRJxzy^EnLB$nUUD!#BK2NxEhf3wLG*SA!FaRZb=DNm@Y@K zHPhRWj1;z+JLwug$%foFI%ltFHJSK`qVSSo;YouhR!T%>`eF)_5%TdIuyl3@DFHvk`-;i%-SFu+uC1({yRwtwAS- zmAb)`s~84#eQewxyBhoWr)&eYs&&@kGSHlxW*?mZ8))JZUx2w{K0leSnb!JCR@~

    xp~Hx3PQ0+2fDb`N$m>@IK|tDG^}EFfT^BYfAQy&1&Cg4l|7;ykvzwI4h@q;Dm9 z5jlpM^PGpHDS=d~TCE#2&~AnqmIUC-jm@S_lRBK(K11@vp;Thd3i^Zr1Ls;rUS_L zJdVn(ybz+}d+N1Az5!kX{%>czgTH)&{@Q z^Cvmcub7JIBV0D{JheIqrA1(r&1Hld3TsX#<10FZT`G@}Qv=9-;KXg!wJX`ctyixf z;_}+AN)p$yokLKe;zk@^Eq9S4%KXks^HK`Lt5B4C=txZa^5@#}0eeR#Ga6yS&=OK7 zA>SHgECQb5z}{`hMo1uut3k{5i%2|A|3%#z^1AR83t^u52c90Ryui_UY;XbHlsXyc zY8(d*%gHyA;V)c2_YR+a_=qr_Mt!AC&d<<(>iO{e) z_$0cM@aI`Pa7zC?IH_yTVWQG``|t$8ffQ`EHD&u_y7%t+m#9ce&6lxabkJ%R2mL*M z<5b)X7GwFDRPwDzTpxh+ti&3bi2+mNLS{};;ol-v1=&N65hx(DC}`P!5s7CwliG){ zx)Qao-PQ=(Ztnt8jgsuD+u!KwOz6?4zeRR$aI$*=fW{G`7AYl@lp{nH1v~61@AleF z4G5|b;&pUt7m;dI46AG1%r0RQKmTLNnx=V*LJIE`r^xcPAU3t;)xDJ3sgg7Q!qX%n z1u#BNhAW*fd$@$6*nE~fnfRB}s_fc8oA?kc1w3xEL|VznWSZ=hN$|6kcY{kS>rCd{ zz$#VNcA8WQITEO;@(!UArHta(;Go>0-eD)pDMKl00WI%p3ML|)w@tD*v`D<{%xW78 z&ob28{V!zx!8CW*EAojw+YbN5tAgT&LtTo1sa@ny+@-|y820^R$nNShT?KAflk)`e zpL`{<;2|Zl7(i7>@^lI`35H2<#mmmnB;F;SqM%-!s^xbA`-9Zsw@}p%cw{P zOcm~TavUKt)rqY4hAC$x6PR8Y)qF|ggfH|yWXES}9Jz16Ve)Ro-P6`3UE z0?e$%%xl#K%tS6U1GgWvQ8dJO^v~MToB$`7)wub9*snbz7d!qGvw=25i0@p+a+&F2 zc^k$$Uk~JL{IfjE=2z zIJFdJghm?nSnWx==_s!W7857jxN_oKFShv_i`Pn`uAdmKWXrM%3J6?ED|bb!LDmVk z&bO+O1*r|U$Y*(PM;n*r?9@`qN{2ChHohR)dKW8*X4}i&hr+-fApLdV<7Q_|^oiOn@&?4~+ z#E>fn!SkXH=B$aiw{qpADU1BD74LDdfsp78W2=c)ffk8p9Yk&?s!&bdK4_xq3?jOM z3c_c&0c9uDPo3&=8YCujiq3(b4*N&3t2-v%H1(`yi6S5B){`?a(M^uh+@!HISsvEa zN6E6c@?D=~^Iob5T8o3Mx4LgwJiY~>kWY&B#N3;8&Odnu%ok|~i-6mPJGD6+Oqp|W zOcZq_56{K~X)-du1HW$${3hZtI=I95{lcLIdp|^+87Li7c=|q|zz>rpkvId+S~Yqn zDer|c#T-xZdnea3;3x~vXRs?Jkbw#SaBPfreP<~`$U^RJ>>pe>!GKgUampItBBlWk zLkj&%(%Yxb2Muay6AID>AV$7KEDw!1(-p!xCy4TVy;%>Y4FYA9|RE0hX=nn&iK9gR2s|O1~aF^;&tlHs%86XS!8CW(wd*7jxveWsx|(mal|~E{xrvx=AzdBukK+fXTLC0%_hH z9&=pk?o5kOH_2NRBpj9+yoQvV(+Z+x>D**aE6@r#Y} zx~*wDBx2OVvwi1R2pQ$U-HYW(d58GVy^68~dDMaxV{=oC$Dy-;Lw|}aT?W5Lz^tH3 z6Zz_GKnX!N__As_85$C)4*|8ziF)Yw%}gL1ALr3hB{w3>55yb}lF38GSZ;WDA$F>y zB6Ck&R!oT~o(*y|u#`~h2t;H}qwszk z>jM6$?<$n&!~{Sxwpm@r1aKPlidRu2n)#rC2x24@MDYc(u#E~|kI!r9foEpv2Av)U zX;k7-1B-f!ZZv8_BYcYE+iC==urnZ)9gZw?#T^e2?V-Ge!zu79gQ5$8j zSS{dh?~DhjRA`#Rie%gXIQMbt#p8T$7gkOQy2=E<(b0lN-BuVy=f#|dnYh?&@LC~e zx?yQS5ObOrC4f3;{%}5({rz+bX9+LcGX1!iLw~AmDHM6mhR0>@Rq{F2WvoPfd3zpi zePF2?&m0}9Mv(Ybf+U0$>Qdx21R^K^Rn$`o6D=f5<8vJJIkq%BMQId6e|LW(OTb)2 zBvb(|{Cl%j(KEDLQ}~R{^UaAsk=H#uDM=uRQX_&w*+@pWVAnzA4I_==p^C_h?jq%V z7!MXgaa_SP<+>4jnG{la1f-CTWSziM=GPQyX4yw6TKmCo}sB+1NTeZzyS=zyvT&dP-G0upO`Wrb*4kA}Fh;^A1HKPBi4TByLl zHh1y~;Z-PMonghI*&<+UqSsIuQP;*R`lxJGW(6WK(W$KiahS!#g2Up*OO7$QkufeL z-E3QF&zBJ-VFC^~)e(SQBOJst6^av1D2}{dvQE}^xRr_6_&vOPs@Qx~0b2H=$m3)0 zxhhNnwo^WBu|BQ4B8rICS;d>)iSrpnF-mi-2^*{ zM+Q1YiVRe2P=mk_9&c~;fnZ=UMLyoJu~D5a+K(3P6u-XV1A156=gH$6GHMEly^T{t z9qfm9^C4rVbuSYeGdr zP7xS2NZVMQ%{3!1R4wrZ_^{EP;2jEc8CoVkeEHCZB(h0WHRdG)_w958p*I2FN@S~x0<>!Y`B! zuR3KeLtQ294^0YSCMaDe6Pt7&&MoWig7D-M`!9WQV<#;+it~u%=*?8MMz}oTqdpYk zWRW{q_0&gVcaS0_xh-6wV2VY&pOXmm?xO@ORHFAC-6GADf!@$0Y9;eLbnnbD9f*$Dv#=1Vk}-$xJ_;0J25QcQJo=J9BA3RxbM7zhy3 z5FJ5Krl+n+mLojG&pjX>MqN)15D&D*UM-?Hch<)s^h|5eV2x??Q3uj`P_Y$_F1Rcx zZ_K6)RklAgbG9N$P0NfXCktpHs;2`Q?1wXfD4#pMqj80s&P5_R!YNH&BSP>+X z*dVf&?AFPrb%YAt>@I$`ec$?EX9L2}Anqf3Hz8WNqD2RnXspz@sFGC>??NFhmR*Ow zi3$u}^y%0z`-+YRp`r*bbqq@+^6h-7eE8iVDa!#YZ)tc)ZujWA>dPL&;SxMnfM1h9 z;#_SeP%*Z{<@15RCt9$2DlY~tIzFFWx%lL3cgM~iEH)o1fdYfY<|D23Q9&Y0;ZQt? z3@baY11b(DtD|3wD64#EQj(&mQX@{!_ zS;+BAGctD2+bUkf@+?wI*Dq`gMzMBRli%4G7{P;B2EgA)$t`q4 zEDwbc-P)|_G^i(2Q@S;Dk5{5?h(#M$L5Qk#y9ByIE@<-`*KsJDmx4sa$%_Z5s-G86 zX!kgTIwvIp!v8oaktHBGPJ=1(yaw~rQAeAc3)$Eqp^_4>5YFOXg8GLS)IVl`v5oga zH~@lC>_x8*l5!-WzKiA$9TJs=w5hcaBWCbGH-xH%5uI7eg&;|P9jMSeqpF&T>x3k> zg?m!8iQU)_FQdG$*$CqhG@KFQo5Rr+Lx+Z5~7^(6iylBnl6%79gzNkj7D)~bUP za*%^8!pLEIYr=>lqu&Y5+TQk#y~(*K&gjOp$*$IYZsq{2aF2Keb>uo7Yi5aoWFZyl z_2mn~hVr5E?D(5GMB74UL&LL6b`+{v%a-6jXD5NaoX^K^B5-`wY_@W@j0vUf)s)JOn*A z94ceVWed+tNK%;z&&(6v}d#T<21l%z8JAd0iw5`g?&4OgMv~~+e$_4 z*Fgt|oSuRWYW~5N6&de5Gb*MxwT^YnhRp{y0E8`AmT0)iYj0=N3%FIu}JI$iPiswrdHyG5? z@f23&1N#Q1s-H1!(5mt>c!p6bblv0AWfxickzq;F6iBW$_#N-Sn03&JHlAj_r|#&S zF7OTt!bBDXhy)2h_)%FPXgR8=G$ba0r@?{809phPJ%Rq-z}N~fm&`7 zYz?MBp)v&N-7R)q<{!-Hf3+y}oi<}n<{*$vy?O6LnRwOkmh%Y)KkTARRUr>B<$KCd zEF`rBw!ASEc)4CT=rrCu3O{hb1qXe(OddK47im``cLtCMjz=?4LWvg2HmQ48dBTqismsS zH~^dnly~3mWh4&5_6TIg@`&PC>GN1YQo`EXx`ty}>2PwD!$W4NvYFLUKxOr)+|>4n zcC23JU^ndmZ1noIhc_Srz(io{07(gJ&NbtWpak!J+M>k<-1O7L6LT?PU5 z=L1&F}QnZf;#|23#q8{o5_cm zP1}%to(QroABIT969LDv3HVz(TeWe5Gb><59sb%-K!Ecad)P9(I%c$4U}iJluVX0# zC_gq>16M%k(leV?r+UMu>%x;jQfA_z0vQ1vfqzMWq)hXfKC*+!#s@tjQ8__FGDE(S z0p?s*rrCNKpwX<;04>n`07rFrDlQ3yX8s9U5GLM6SJ93~luk6ylpRy@vrWlz*##`0 zn}`cZDdWsSaSBTyq+AC`<^4xW2)2HU*;|l~0=A{*z$TKE`$7)mP{}OXn+vi+h$#k1 zClU6|T=*1)6*fPN$=;nyXk_pc>!5{JSqA^EkQMs}Ef*wZQWPjsE~3142}3AjcOqmc zx{$mGRgCwWJSY=!q)X>E5=(sSZb(W#Q(SFKgfQx3y^^eyh1#M3TZuBv$2BBbsVnWc zsdcUKIW?QcdnI{h*uGL#!8y1r@FqlM8qj;!ODhxS>FOJ`B8~P**aF!ifzo!ULax{11y``>vC$P}^lx60`i)!wy*;et zl>@060ZXv;SR#bP2bzVXh;y_&6a$fk3p7|9nBeO~p;FA=FRdH9Pz5qUgp!8ks^+E( zP0LP+B%euZj|Kx})ZLl1_UO9v+dQ63Ce5~RJIHLIFOHA-;zG{1+wT^Tr?N9;v;WY=QK!md6@<)?^Gu@lb3q4h3NOWDCHgDC^)- zq!qNyI+&DDuq3Yok}|0FjbN%Qla*4}2brtx9*EC`!!=>Nh$2|GmY_W7HEuBRpuOZM zW|ZtCXvJ9r69dg&oHzqgvbOd1N5rG#tH41{9t%S=IAb;>*L>U$UxYM4*0^eKV~%Q= ze!Z?Je1b@Dx((Y?mM#%JrsCdj>RWbt9K9W*;{`b_J^7bFCC!v2Jl|fR@tym$IRX~GK zf%gc5WW^-*EF+ZO=};F2i88v9h@cOu=j&s0_;5JSN@qDI8!BJlv++GS*|6xk)7z{^ zHIDj`n+eIxA2qp|g5a^aj`s(O&5~5Ok)a5{QcIt2w^mY`jgo@JiP40cez82 zhs{l71d2^FsZtZ^_O_v`hO~*aFEkdM|4zW^g~k%+_u6=wP6x_vHVx>kP^q5jDdO0L@&fs43wd*mjqRZ%@I zOpw4@?>~pfiG2E;OIjQlk9NSia#6W$VPT0VE~2)+`Ja9XsUB2bJrZ4u;$n%k8C`Yo zLR9U3FB}p4oFxv#2!XzD%Z!nILX5PkAV%ior2A}=f^B0x*@6m{gamw#dnba5cCMpL zJ%*OKUzGQaG2I1HVYu(80vjb8%>v74GW!aI!{2(2stJ`3~Oa~<_sV*fPn(8$6RI6^KDT0gFFbmus zb5oky1SG4(cR|}VCK&A4CEJz`p#EDh)jg^Prfzg z8+?VXirPV*4=rN#ahP}k&-Q-0lARJsj#|HR@%59?jM0syghEZryb@|jsVrVMlt-eI zx~1V^NSh~FYfyoH1*YhzEOggA|@O| zu5Oqug0G@p1ybsTlffV3M+Sc*l8fq4(~-nurlW7=uX0wi5GY%*( z*SPQhobQVhT2Ee>LZ9fKX|<88YVeKO|wB&H{7=@)-WwY zgid9?Jzwug#9ne=*1M{gN+#}1cT$`)4@vno^{!cd|4dL6%rkY>ta;=7pL=1)ZcL4A z3FEMYuvMU{%`$R-UE48T5h4yQW)HW7Pgjvp@d#W9T+Fb$h%%qPoY74|22+<+jTSat zN1f-+oQvHI#Ns8t(`egN&ocQP4b?|ejkRa#*r@laUtsG5T}y55h{xcp79p9)Y*w$R zuZ?R_8qUHvR_a3)ncE{KQ`ngXakr1AgF(z4fS4V0f>$(F|3<+Gi-)5QPXJf)x~T}T z7(6sHXTx!|6W}XY31~lA2Q(3=h=-=P7YzO}Hr>O32jd9MCLkpWgHob19D6^YzfGX$ zCkk1cLH|RL*m32edet5e11m zqG+g{T|~}<&Vt$0>iq}0a7S;<>1s@iM^I?gn*985I7xOc* zJ_k!aMB4(~SvCd~YI|D|2s-SApR6(&IjH#UGa7iAUao zH{h`MZ)E`zsIv6>4Ejb~>J&nVZ+$XJ&{hcd+Ud4fPcLl*yo6SRjH~r=dkzAUW7ors zkZYy$$}vWvN3+U1oY{}c8}F9X3gQrrzjqE(Y}GzEX1i@OThs@q%%sQ))~p3`Y5*u? zCU)fGJ^;9FRt&SOP|niBRfle2CfPP|<6~Av)wB8R&7w2kOf0oXq9qT5o0vaLEZG&= z{`&laO|Lvew-s9!5cynns?D%qnxk!dNxWRI30(<*9OQfB8NetoS8|+<%KgI7eXYhyX6fvEEbS z&2_WAC=R#hYZh%TuFa391bywPBch>fM%U)$*F__1G$3V3p1(T1HZRg~NvY53DmlA~ zPMACPa&nbJZExFhsJ%A7-ep;1e4zpIs7z>8%iX@bV0-~=lM4cA!*xRQ3~mbbw2Rwl zRCXN??m>{ZM10ITMB!Cp2X) z_1EjH1H2Zx+iR*RsL5MnIazZKuwdkIwSL5t0`0@i%+)m<7iJ+ojK!2hhH>hnI1}7c z+!g>Vtt{fHhmZ7yDKBHBn_vI=m)y)Jq~a((b+S==|O*bg~g<6b}s&GKG*KoL?^ z2jR2dBi!TI2{N($G^x<(@GhvyTgjfYyG(08;;?2QR*W`7fOX`kl@kNqq0hnw(#L`x z{fEr+qJU9)0XO9a9gAcaJJjolErNG0n;`iv)$7KX5Qsn|vKh$eQq9h{G8ivB- z`NmMw8y-aMibz%p44}CuAy?&jR)+eT-bKw zDECE}pELUw=pKLQOS)*e%VN6az9-A4g1un6fmeeHJZOE*SBGjOClAi15;i*`@O4rp zIwFc~qG2noB7iK!ErRR>3T`&rIF5EK{la2szi0nfEtQvKt*+; zMsAElq;HH!K$GoEXRjcwrZ4$wWaIR~kg6_ zCWZTY@dMtVG|ZEboOle{kL({YbzBF(?;&*`ss)Xj32HH5UO9}27aZ@oq}DBuI=C?6 zzqB4yPodN0q3K(87p_)54%O(Q>pQt&D5s zK3^pTqX}n=jsokkZ7%3*9Xc{xoT)3U7B5dZ7;?!RF2{S`O*3y z{b*M(f*54Q)~UiZ-N8wvY!e)L;pcv$mAa_Tfm)UTrSlLUSm0LOzv zu{L&y5b;Qx-%P$@7sv6v5#U|le?auSU=j56t4P~Y<%F+^mPPYw4Sw->qQ40yk1Z`$ zq^OZOE(9Z*J1%0KYK=AKVc*{Z^(7#jd4NKiFQ@@ddMy5xo#QvI+%(e$#tUZkF>v}O zA*kYs*yFFarph(dF$*hh+fMUmgfI-L^6vM!7{F!E!F&br$ap2?GMInp=*P$>$=5hc zs=VxbVzgt9g0j<$qDC=euf?=^TjMFG&qR}aBuRLU`b^0_MtwW4=DX3A;;^xqDy~tyJbPfxYOwxKx4*RV(#!hIIJI;1HBV%Mf zkD=rE;jc*Zy7-&@jPhmiDlT+Gi9RjDz;R5r$c2CSIHbpx-kQ15SDy1$Jg;W|{NBCz z`HH`6WK$Rv0NK)lkVOw5fxR*BeO#kwz z64g=bMzyRPQlF@K5)2$<9r2zvQr0r@Je7@9*biWxx)Hah*5>ew`|!JAk{|5ELsoZ* zluB)L_{AML2dj?PM+ngqYcL5h!b^JXp^)>^^Nch5RHPRpV%$OYee~-JbY~^|iTCj+ zzk#Aw7806Y@>!LvV$6A1zivYjG$u|tmsc-<3Nasit2~R zPXN9hL07UcG8?u*Q)eMQ>B~qF@4|{k3r{uxTP8bx}!i#JHQ zd;z^FSCo*aFruxRJE*6M8qK+5TlapCOL-8G=uy`eRe`R>o}k@+xr6e=T{aDHS>(Ns zR<|D{VBk>_{9FXXt+x*4Jo91|2pvSia_F82bYY&MlG+VAzrq4GKMAl75sv*}V=w`> zD(+dCXB7qnn&so0_1{BML4bf!o-0as`Xmlm*S*@U_D2z~>x(@OzXpq8uqgEG) z;xU1nw~XyuOWTZ3S)3?FJ5iYobk4E^S(w;zE0Qo6UWbzEJQ1}OSbC(IH<67L?=_54 zz`}*_%o7VgGNtoFc-1KK$#>&dQ+*WqMR(&LbxM6sQ*SlIq9Mqf(OpFmkEQY0-#{w# zI(?;;AZ#~YrLRB>((V}8dbf_=Rrn<$y5@IXK_BaJvw3fr*&?a}o^cSsI#~nbLwMII zKbSpytW$M>k6c}R>~Aoh7&J;>88o9~_+G~YS18JRaZ^@ziIhrhhp-u;+b1eX9nzqI2QqU6V-vATV; zd<;&b2wA*gXIHaH9psA|^Btnt4vqQlK&oOyOhMGKX&&)XSvV6v>r|E4o^^V zj=ryEmI|bEESG55NU|@XGZW^w&nsD|f=jN(1af7M4J>RRF6Uv9bX( zv9^csu2X(6mPfZ*G-1*V?e<@-l+$R)cw(hbl&3lE#KlG;xPv633KocII&=FmR}R{! zkt7x%&=bqQHl0BY;_miZGtq(h3r+_efSx;&`?1T$r-`E3Kg}L=c%JT#onB^~_J!kv z@Xnkn{y{r48&EAbEkx7E`|$177pyS|Z{Dx6A*6T{XbiHOd41iEGj7@f1FJT7*JOe0 zAgsp*Y&-AATe0&u`N@!66%E-#BBfGWU-HAFVQ3Ug=o;2Gii{u=BM1|lZ4MeqwB;O&6^lJBN={w&v$naH{+f$Mj@9_pZ zUgvm>jPY;erN_s($88y2*eytP8nlWL^eT7r)>pwTc-6xQCf-|3#g;%}o{4)FN--VO zsft)Aa2%2`3DTw_a0m)58Hg_HAYZ~QY7`IqkCLFYrLaq;%QuBbW%FLveXbSAcpo}w6+d9Yp0;Z=TCIa61Y z=yJU{7HypZ1iF_*7fm>Gf;b^mo{tB9;XT8*?1O+>JB%777kQomaPk(1e#%agxFn ztb)QOv!IS7yWGctd|AY(8sIsSE!MBg8z4Xrla0p4xrE8?i61bp0=h&o!a$PzGV!-l z(|IRGNCR;yO9UsJSYGEzc+r%%^-CiFLaD0j`y(!Zk*G+#Fwa+!bBrT1{2Yp~KjUWj z?9(I*%zV|A*#)Fq+8Zv$j=YPePwrSA4HM6)6o zg{eVgsEGkefQr?kdmbEP*ahRZaIVv12(9)YiBdiYxvoei3&MgL54@N-4b^*ITu$PN zZ<;I;T6jd$klxTL69uU)Ht{0v^ULej)>}AasLN@9xhm)8vWuf&pjtvIJK3E$z55}~vmd6!&ak@->Ew9I8`fcAmH zmnm9LZ>C_-3f3(1n?|lAZNqbTvV**kzfv8hz;}U4f;c;qt(Rd??-^#(3;_)WmNcNif|yGYJl=*Z=9ZQJk4%GP0w}<#Bjkor8f&m z4!!Ur-%C|CFvXl`Eh^VW=HfhPti+w*(!?^U_rCMz65jt*K}b|d6pt7L#D{sR6E`(cBGIH;?dYy^?{Er;@b{R}4_$=<|YHK8D+E2M`ikEI7zD3UTFH)5|)-!H02`zx)cW|${&wp9syki^NV7B=3WFdcMZr_pK) zuXNoi8nW;ZNwHKng6cxun}%k&M0f;XA(vQ6b%VuJgUO+J{gJ?!wDjthe~Od1uIK z69IcA!2**+n^%sd9I?5z-Y}ATP2<^qGZ)ImAsg#d3QtVR>Cz43q^2%#rzA`+&a|?j zsY}3xtKv$exGKn>iuC>uK`ZxXSr==G@W7cujdFJzr+YSZk-1@sMJ?}(h}_V=Z&Ak@82i+PXWXk*{lG-?z+ zh5kX7TO0_6ZbR=7U2U2*g+04s6sI+YS77iDgi5Hxfrv_7PX{*@i=Wkur6Gz}YVk;2 zo+{^-b}o^H=V2w5swwAP5U=q7Zh5*$YbLUb^8o8yfTBg}JSWx3(!vHD;R zH4p{PEqBeq45YFV7~e#Ts^I7P!UM^q;oGh|AjYd>bKL|I>lyV)K*$)M2K~zmIUT`!|i0thPl0Msb|>n!@Hxb^hs0y+&b}HHGa0^tjDjUR3YW!^t#js%_Tf zwxf~DPygZN?(=T39&On@aDIRM!wZ-skfeuEA1aLcywJpp6ni_sO2|Vs?0Bxu{b-$o zbw(03W$URR4j)V5O2bzWCnDRAK8j*g;xwpkfl!L!8X0a0O!6a)MR{_)_^+IGf(Us% zL5w;6n>M=e%T?^%(-?Stfik~9-n@Nop6a*NOh*0Z@rmIwb+b8p5-I^YUtt(H26|Xw z7*^bJJjA>9@XcO}QJziPZrMq!@<#MdX3;wy#`kA5(42dRD2|}3yj&Th@OE_T|CT!v z(&Ufz+l;&^jfdpQmm0E%L`rkGf*bc_s-CpySO%0Id4@$N!H?NUy1B9uS9R2yv~g5rmc6LMu%O@O4 zdsK<)9D$z3)9MTk-h!}7nK97>JP(I(BsS`?ETTOk`nu6cq5(ToOEAOddC@~=Oe&9H zi)%1lvv{+Kmw`Z}gYqOxzCJ`_^)G9d{N~&ch&NT^ohF}dRDuQB3u{=qpbu6-)hbtz zgQG1tm!%@<53cFRKRgHoN1CWev?fon+t^7vrpO+KaG%}ghj80c?k*mlZ6$}Haj}89 zbqDtIq`!K~af5U*tuExt{pZT@z-73c&Thp++xF9G>s>2@>)&15yx%;|es$#eo&Rsv zv=!%ZwMwf!C8jt``|P?BM<(F7u3Sx>XPec(nRA-?DCz)2Mv#uC=0W4pnOL#xNUUfU5 z%-|{Ck5q^DBBm63_#|Pll^buGtjA^Vmw6i4TO6-h*f#6ATUI>3jrev|wC=Y!giGjv zO4<`Q%?x?nMtqrv-Sy*&aen$U(q>P0?RhV_5N_Qatmn#ZXPDD!)sPjSuD0~c#_pCC z!0*{BS98O|n-R4)BV+vZGlA+68Co+=y2LGUW~RGu#V*|Qb4c!*x~%RJDa}3C-Q8Mu z+aw_o?+m})wo~=C4pA8Q#=0&Rg1d7(T6V36*XUng^E?ej@enb~qbo&O9#Q6(P|=5o z87ooNCKT{0Kw*p5vEivQ%{y&FP-xLT9)8Wrxqz;1f^TJj%eOVyT!JGncJZ7xM~J)A zz1kktUgxT_)pcWxuQ>H6gKWp6zwTet;<7TpV$;0MVLLgKpwN7t)J$HeYKjpM?Ok0X zqA%viJy7~4luUv1FG)QgRqU?0Q+8{|q!nH#w#RX2K6lyOvjo%J&)rt}e3^{b7;qS% zfbyuQ8bcM~TyfHJb`p@Q`!RX{7_-4^sxSya27*ye$5N9M+1239iteU$cq^88@sDD! z@|Q(?0T>5931A|2-ik|OTEw?vm&PKJHkf}&K9H;hjnvh1uVk@TaUoC)SNd9Y3*b%@ z;bpJgP0Ou2T$9({;X%&lG%aY@t4tf}?QtF_dN7l^x^~RzMo@H-Z8~PWUrj3RxEIG& zg6!CtcefuRLxb5j0Le@AXGi7`zjh< zLCX*ciAfV!4N_x33ORgjI=m>lD&aF#g%^p^vX^fGM(2#nh-cEFQMrFRrz4}FGmL+0 z?2|;82#}s?To6PFWQ*w5x!ac57WWm(!eajn+ffyBLnyn{;F91hNm;K7KC0f}4~t_L zY^rsc7XFz-Cb;%G*PuVbX~Uq~D%@S@qq}udleGIOx?I?^-D^%0a@hLuS6S6gNw^|s zS6DttW0MqRmBN~u6Zz<$g&I2_O0ZUk^+BCMx{_PEb<=ZQ&#M4Yh*}O83fAt>UTWMu z*Uigf<8^pC0AppX^iIEV=i3s`!eS6WS-Ow?-fjFIQNj#$ZIC=_yVA0nObo9R8ah}> zal34~5}L@nXWwriCT_7~`_04Que=^@(T~@((KxTOm zRWl@hmq@A9)wkOg_I9C3G9+ifIwQ}zIj=o*3%BaF&KNpq=7 z>JmeN#mn}$iUfw?9LY#J(1`d@6Zv?p_3AJDPFEkcjbIJJCIK57#1`gfMC$7lE76)J zYkxf3-zzMvjg*rSF*k}~^`349cL3sk?xD7G2b|@KY;I2ZXt4?`^LOJEfK@=wia{kq zinn##%|lyGNa5EnHomZ4EnCtQy7wY>Yi)~Ih(R;!-OY|cH#_6TBWdSq)xqL6bDY+= zB%GM?q%7G_qY$B{mOSOP=y-@4;M3PZY$1d>{y|XT{Efz${NDEdw4@_u29wdhd|`9k z@fJtF2du#2LW~rKx4^~t5DN;3RN3;A90{^2pyR~#RwqkPq8)zt-Q>9qEB z7hP{#C!~m5w|JZp)syZ9-fXIC+o5DNz2ixB532sc?2ETU54Ub zS-u3b7XVup=m3t!0G66WiF{Z$_t~tztTf=0)#r=Xi#}y29u<0`W`BtBEd3?oc}Xi0 z2%!NYJn}p8E*g1$PNbI`B`XV6-xC6GNid2!npSxmuOq^N zGI3Yv*Ti9<(N-{2s4z=^j?sx#+m>ibl=;Q~wWgH;Mxgq>d_B(vQTWh$ZR^#$cJP5& zTiI(vO~xDDTH6~5qs{a5cN<03q48oFkR#~FKaPH0FvEg`(y6n19qrR`6#05vzvdZu z7?OZW5v#5Zr`EWOM&Egn_P(o2-(`_qeODh~xrj~EbS_ZAL!3rI$3^L`(5+}AfG+L> zMFmTq13S;~+9jY}m=2bxn2nzzbWkRQ%svxsVf>A47hRF?ONB0N)C#dzsB@k?g2C#2 z#67l<`+U1O-41zmfki+3>=(P3-!U|}L`tQuZt>W1;{X&bX{Xwzj_gv5hQ#pR$1GcA zTl0E{ryaq|k4w+-XxoVPjk_#MrV=U(mtc85p1n1D>$M(PzdKcX?}X95cBO|!VaJoy+_15ug1JQ7V6eu*z!2{Yj}@+7 zHhXAg3Uvmc9hWK8+2wc6{y~+i>Rae=FYNH_H^)||a9FPPgO4OV!-|KcFY(CXB;NaY zY?37sxpu5W!n6j91yC&y7g?OL{9tB@tR8h=#{*|3NPIj}YIK@~1qg%!t*D7kdP|4F zZ;MQBalS$!i_5T&BS4;YB4QTW z%cDOI-5;rgS4IM@Tt(dbe}%r0q!M2R#!LAsCnlkCTL8EEibhSF-y+Ld%h-I^E5#ah z_M7fFz`71>9Ekf06`xN+>Uj#*Y|VksR=`g~D+UIsC9^dKf~a-9u8W(UPE1dMDLFCL z%%lFQ<&gn^rzL%Of!WXPlHTPwNX`(rH6)~pXm-#(clt^fbc(lxI!9(OL%d*Gjtp&U zn<&xMY_@G%%qlMJR0WdfQZ|!d>U7_z3k5_m%++k${_9LpX#1{w=RegI7`oOetGh%> zrM3~ex8jiJI@Y+xrfr++Up0)V^@H3U=%TLxMD*V z9wI50>IN7^%sW&WP|92h<3xO3c`;ci(vNp0^RSAQQ7GA4UP|cSE1|C!Pg_H3OejVWmk;v)En^l6!`ggPyLzX zl}3G)$W*7!Ip_ygjan{GNlYVOFtlxXm@)BNv0Kbjb#cYYBf2a+L{gl?O#ru^El@7G z(uFYL;mnTsZp}q3GxMM`vr|O%Q_%*#g8;z0bVcp17p&weMER)AUy=p38=m=X+;5oT za+&bEiKQcl-{lWX@m1vkDh?v#O$qa^w2=(InqJ^QheJ!}M7kcB_~Rd&{kfjzJ2-M% zP9;h4iRF7Yt&J$#wPjGbP}R4lA>%zEX)iT>%C(gfj9Nu5fn&&qeuBQ^Bqlx zmdiS3_mGCnmvS3*oW3^B_dNthwP~Xaw1jU<*~mfQb-nHCo*m$;y#bG>pdRC0?>tVw zWSxOF*v0$Xx^1iKw8Hb_?y}l{AfD(=(vBhdD5d7L=vr0}iJDD8vpF7JEQjP2wtQvO z2rX@75J&8=uLDBnc&I@oX){g%pid~f=x%-)1ZZjTn4@ey3121cPV?43af;*|k96Wt zciGmBWjt*?$HP!MqdVdyTpxEsfnowZ@N)OKm>&p-KBJ8GPZfaO-sOvzjPHNQd> zs@?>axp7=H$;abiZgEme#EHCB~~&QSur?xgi(;X$~5DRJ1Oz4Zo&I%hv0d79?#Z zMDIGTZ(2l0xHKORnotH!mcAdh9ENnA-nQjW1o-|016L}<1{5FAPZIUG!Ao60ReHg^ z^O+|+N7_-Zu=2XdP_M4Dx7(RbC*HPJg2>J2`CSW<;zuHfJxHztvD;=MR!DwA>}zY9 z+g#pRMTB~w?5XlU*On`bKKq&CoY(tT6XDOgb}Vs&ag7_CxVf$eTpR}rkwD~v z*G!S8(hQOCD-k4;3Dhcdzo}ZgF2JySV{`2*1NMjKB6RnUTDoSe`Q1O;B+for%ab%B z(MEvqK&?P`u9sT4E|!GsXZrL?Pz?Awe_au`g$co@ktQS+p`Ve|ERAm*M7-o9-HkJr zIq9K7dI%7~9f?;bIUpk&N*g=Q;yRHFdlG7xST8f3cAgXzWYWbb$ z22?g1G)$AhL+NVV#s&`)lOj8w)m6=rJl?f*#^sNHFdZY3OhUr=d>KJ*eqmKb zJ>AZ=&?a}kH=K|&uK(D)by(xvvC}Ev@57mvp%ia?q>X7Ad?!_okUB%EONAPQ0jzto zF?Oq^ z8yraZBRJuCK!iJOt81>)nz+;mMLMKC+p6uOT( zd*itu+eLkNyf+?o*fj*utmvSvjiwwoni*u_jE*H34Hh0YC5$elQ zaoQ(zmp?p0V_7PWxP->CR9174?;L)_C4{z1^9a5qY_d|`J0i=&*&>{ui|_{ZIRX;4 zyd})_yL3hQyb0GEN1J*Bp9y}(V(O10KMhwE*b~jD$;(oSs`70|-dy@CaU($xaLVQj^N1i;MtypEfhz>&U(;d~yk zF(?%24~dMCUJZL-%>5`MX6977p0vfx#0*|Wd<$~HLd)we8pq5i($Vnsg5^ax+nx5> zP?OQP#u^8n0R?e$u@mG0Q@14wMPS=t>nJ3^`h3%eWV{Z(+aD`M^M$=BLj)5ntSA$oayn!+unv-t=$9yt5zPd zR!*hjh~yZ-0b9Ne9LW4Z*`Ne{z&J_)fi(D9m&=al4&KJ1a^d0Zaa z4R|xhkwI8i5G#Odjmts*<_lFDwxry=M>6~fs zv_uqBB>^&^!P8>6sD{}oGpmzFR0#qMG^_x+8gxCa=zx=YQTDVYOa^6sVOK5>fO#?T z>pj=YF4K0=1pq7+I_azBLH>7v6Z z&7j=CnsGx*u~Fj8FIbG^cxPbH2#4-%s$CN2JNAjFtBXy<{Y{s>B*iYg z-ZktP>5@3`#Klo~B`o;Dh$AKyo>_4tE4{;(boLOz8>G@s)& zgwX_NKSccV04d6{=%!^ptU0_=A7JfulpF55$h%ReRVew%alW2bJS$+2$eS3*bw5)7+KUkCKpB$26kBX9OMUhfdy)Y9lXuUR8}>JRY> zcN$85tTTQ^(UT~L+5u?^ySDV5V!{)0?JFK_%U(HT{mD!TB6pEYty&(*p>U4ZqVvGf zcWxJr?JJ73_uaxA)3V5}zAO8Knn2&v!8Jk1x4{Ju8B};LG~Ns2WmqpHs~3<>2)kF+ zCMrn$F6q$=?RStwp0YI)Z@~$yb$bLV;p1b*{~nubRTTL2nSsIEJSYf_p(>C(=gxh+ zz5rgfl+8S#&)Sxg3ABTJ$675i6!*%)CAhXFe8?uO3+mi2aLker?jKPWg5eap6K%=h zLi&@);-a)PZ{Rz}OE%BFUK-(a(jZ)NU69_H^yL5@A#ba02TD{`V?|{v=N7VPq!X;Rm*2FbN!ISc1lSyvpn2^;4V=X?n553iEd)~EA(q4A*n(*<@6a0jX-U#YUae+o87x%3tGWua*lV6 zZ-hWCgm5(#9ss2o#?_YafFNvuH{-|_9{{I?^n%m9;N&5j=%NXd3Z)m^P8Ez^@Gh}t zOKl3p7)sJ?vFp0c)lr3dtLeou06-|WT{L>3inRB_;<*7D{bHPIj|ZV9>w{PQ!BL&4 z@b__^z7LM$coYGj5d^i?wCko#6t%YUvP6+wFSB0r%CJsxlb#silt~Xte!BkLYPgHi z%h?y{{f%Ga{t^cZMc5|!C#TNBE>UP5-d0h zW%iKpx;lniCA@ZdjQ7^+2IiM<*IwI`Z6k~;omG3eQWXgnPItJ-dKE)?8WEC_$jXGd zdPrKAFhRN^J4q`hLfL~APXuuhTxP3Ioa=mHorjJy#!0SpoMf5#E|7aek(JD;{3R&m zNieb}FCBfP>Xaw=$R>%d3+W-qq^<~~>yy-Uu5np&q0YNlyr@-Iw$sp~pq4?rIY_dQ zk!@tBOEU~2)T_!T532CE4ZbvT=|V^`oFRvf4~C-rpvU_j>kSK^Hr@n_Q##R4vE+cz zL2sCX+|+T=oWegnL_8k1K$V?^aY3;-)^#*W$TmPJXs5)>H{o`8)&amqGQ6-P)raf? zXm!VAOIiuO&%#(1{*pD|9h^AwLG_)tR|qFoI|%#S1h;d`1s1p*50dLKP2&unc*Ott z5Lo&mS+VMYh{9lw1L?;;UI>ax`_&;_7a+jn1*qF|986afG%5;vO=W(^J z4`G(8wd=R|DY;T~WN-zEZ&#Ota)%2)q9g?>;w~T0aYGXSJw&5@_cvcV2?6&F>3~hI zey#(~jtkmGSX@WLwVf8Y;BZ|#Wv9&o`8vX@>c(K;tTrIL^BP(k!Z)%_J2SY#qKqAp zGiZWscR_!;kQFE7{Ng)_WSL)F5ki*bizHoRcpy!)jcwbuZQHhO+t$XmZQHi(jjfGy z^M3dLOi#@zoa*kUs>WhVI@i+dCnjxSpHRStDCl;M21q&_HD4AGy3Lxpr|@-B|2uO| z(wx<}Ks}Ilf`Jz^qkNL9-&X&d9%Nw#y7s=m*N2zPIyUV-2Rd&MC{4fpX82w0^_L+T!-Dt_bhC3G4 zsNywzLDTCf>l_~G`bLP-Jsy~RVZQ-nL)Blh<>C!c=O!0YU7&vZK>k$uQ)YtxQi-vY zSIBmjs1CRaMEOts4Yp(RjhAIJMWB1`Zr!#nn6PUSO;!jnq@}EmmkJS*nRr$q(U>$T zwT1nn1^w6z>fbY&1#A+&^CcJ$QEF(MT~Yl2EvZ|fmg`M<&xV|+pb)j3w$sMLZ>tL# z{~mcUeTmM9&NJxFz^+5nwJbmKQW;)!{XCg02aM~%g`S!z@qe{;k*gv;|Hi>YRlNR) z*p4N%;<%>C-ks@{h-li17d)m@`=o7hr6S;}EeW&1>4is#A8iE*Uy6FP`Sz3(wE<fO$a@9~m+D?5Hjl8rgY*z+(^POiCd6){OFpdw+ZN|81fpYx7;eWgnDrnzyrO-S?v zcDX!-UGksp9JES{U2yMT!M6n|i+OfXb5h*eCXi$9IoVX&k;Vr48XS(|P-jSoztt@knmS>IdW)j@a2pYB-YB zq>&e{m;;s-pa$zKWXEZHD(NdgVx2ivbgF&b2nmxd%BSZ^*f~szwfK?azB?&WUvv71 z1UQmACr$L@S*S-2s09%nYbf4B*1!61i3RUPr1uQ|V>^Fsi`SFSk~a+s`%uY8KT(uv zt|S`aZ%?m}v|XuC2ma-#E0QqKIIXH{$@6N@&WAXT?=t&O*Qev{pC7!!k3)Xqf}>q$ zI(uGsU(ZwmPW`s{>B+ahM=2E@C30k(%psvvF48$N9sZsSDt z7E_@Y4nH4E!&&g#?~bPEsnw&4{`;zi>j3pXJ@K+-JI`$q_0ag2;f>dRf!pT3-4u23U*x{Vi-= zZ>`i-`aoyx!n4he$2>Ku+)cO|H~yNEjDhY}U@lj&lxnn#>oZ@cM)^n9n%qI3z>P4Qjl|D>$VXd(mro^=8l z{M-_DVg_(yDeji)V*`w2fraUG&2nBEs>b2u*2p3}mz;Ox2J*+$nG;zOyBVrR=1}QT zOs}L+PAk1JT414hYhyl5w0QF<&P6hj#|?z*iXFS)ZyUGXP)Z!aq=8P zP__Z$3gB}8d$~u5TLn+}vwB+cEE(c{`AEFl(5NxC30%&?U|>&JtAd4bw;c6|&`bCe z`shM8QM}6iSC>t_`&;UZqzP$vh|fjjT+gYszb&mQi)meuu_OAamxerpYOpJ9^3l=U z^i#NWpuEF(d>3kh)$o=ymf%+P*nl!1=%OXl;EgBbs3mIr!@9=WQbcItz#XHN(Ft5E zQ_LbbG0(!BS}1ED3YXn={)GbHE4zCwV9+6uIATaV_Ul;Gk;f{wCwYA*_>3hm6f4PG zRd9(*h731z@!@nH2FUx8=CgJBeoNr6KZU^Sux)0i{Y5e!`=@o$q2;=4li$`}bPKKD zPspb>;OlTlUBI-K+KA=C8lo#DZEC+oWU+{$?Qc+ijZjmR zNB3G#x+e!FHNX4YRo^OPPL$ZyZM4LWY0;0CedqR(I*R3O$%fuzM=W1um(8^MUYCU1 zk3+T8*^)Dzrqoy|%kFbLO+ucyr~GWsbl`IWD^6?m0r!+@BB>>VO1n*!v>gTK3F-o~RE!qNjhpin(uDR82DHM<2Y9Ua6%88GEhu2Kh8qw%syZf|SVg@w;lI){%FrKfxkK+6mlTklHVEQR9XB zQp_v_k<4>Ws)EX-Qp&eY_tm1i!~E~l!1AN&tLPb z0=wg6VB_j@d{`umNqSYaSn?G{JaSvcbb?s!qdnZlf2-9dv0s))!PXu{RHn zV78J`hCTiZc>V{Kw$(&FIbU(x>Dsq1}FT}5!W$(W_GtnYB&2L2W?8zo6R1%IPF=j;m+ zE)hPPYqMRTj|A9#)i0W5AvX&r$^vYyu8q1WzIig+IzU^!cWObT>uRQ&)aq7uk?kki zT5H|~L^1JI($qqQv$Zv6l-H^+U#%FAVl?1kHzZgtd4hasH3ac*Ti?>d51OOYRg?gh ztPlPal5XPR1eG%k{d``t%zfOCI#)Gkh)zrmRY9$Zm`ej1@X1Obw3J-s%tnB!x^bRy zeO$|PHjiTgtgYoCTL+Y)u6X944eb5Jv=$s%SqPw0HJyCGbvWFamPUxA=uCWe0IxQM zDeM~4kUAGo@swernam?0QVhTf8BPO=g(E=aQ>%n+-asVy$Y}WV09W`sJ)Aai5@KSta~;3c>wgT^dR53D>9jv&s7J~X_Hgb@-@3HiFmss0m3f!)Ub)5 zn}?5tnXT;EIfpDul!Be8k$vHAy$$bkhxa9Gh_VrE+xEL&EbU{dUTiODExfz?hqH4k zU}DdjYT}ji(o;oI>0OxB9W3J52E*`OHvGIPt+(N7>1cl=Of_{&;CFN{>~S1mTD#4+ z=FURv9M=px$@F6!oG%yzT$kLrVbKj{5Z3m(`Nhd|YQOjJ#p6+7*S6J%Ct^JI9ieq~ z<+jMCv#44ZaNK-=CBI6)4&pzXjx&L~q~}ITTs%^fza8joi2B|KZf+bQC>vD}fL9fS za!H?1XIZ9sXh4ymD3xO(#k6FFZClXUTOfkb(DT$6j_gGnQ(civ;BZOOP;5I-Z zIqfCJ*;&+(y}(f60QFv3xZA^Hcjrc?uGb+34bCW58y=TJuu(T1!;f`AkZcn(~2Hz>$sNM3iJik@n3dYAmaxGK91u}S$ncM z;~_}4T=TI$Gm%ZZ1cvSDu20X47~*^bY#J#G-YXqy5&RbuU~b_LqMWDE>;huj0+Sps zpqLk&Z7sUSz6qd6yIDzQVGeQ0(CGA;nZled>;1mU5qZo@R=+3ZakY%twq6lUfwXO! z4S(+BWGgmePyykOMJ^na(J5}e6n~5dU2BxcY*A59M>1GRvuGV(ojn+?^T+SzA-bxS zT(21XX<`QN1;)`LM{$E6n2h8pP>kb>5b0Ti?gg_uu_xiH>UYrUr_U zN1_>6P)H#o_;Wsca)=o#lW#fwf-RbmdU?EMkxai}<5o5HF85GUS%4reiam6ZgI1gB zTR*rOm*0A5Z)sfm^j3z30qKQSilHXvJB>0J1#|o9@Xnc3W=Y;PX}}KX)=9n1zxtV`+ZZUb>3}YdLQftK&>=O4$Lz*X7$F{k41<(v;Szo z+{WGc`#i5+%JjVZ%?kaK-PRTsYVQ6RC4XI?qQ5dVA@WLrYgw>c@J0pS1^7NcdbUQv zhXZHB(zuAEzD?s;6t0wuO7g(jga(9M65tA9HlMV@X`?@W2vUmehL~{h5*%>#Hx-ky zf}drt$a~e-Y$I-kXiXb7MV=IWI7M=0kwPc}%?70VP zi(&BaKaVU^7N%=&MiNDfJ&YE>C#GjN)=lJ_396h9-}f~n(u0HG+1=YB4U4NVc>2b$ z7!iE#s$a>HyZ?*!L%%NvF+zIsgM8PTMvAz=t(LOvA=nY(H+YVtjozaViLH{N5`IEa zSp$7jgoB{hHuQg~QHT(VR6dj_8Wkl?EW;q;8Aq5X0=f;nh#vQ6TR3aA@&QX;`&7A@ z0r;uO>%fN3X$9e5B3I0jqMFjXYlws*X=c({lz!@NWXnMkQF5Q)ag|Z4(G}(Z#QG5$ z_uijF1kUd>>UjINFw{wN45Fql{$ZOkO?sCjdwM$b9=~0$@%s4AfH`e0AmJ|J?J681 z!eSa%$3DF1WfQncne&=+w!8>jJ?=bQC+8~AAB{m?L(J3n$*C%La>cpgGrPeye3x)~ z*18k&WQV4^RJI}}KKQ09HEHsi|J0p`w>96JOW+v9jYo>+Fck8qlHkV>jDiD%2HIJj zCe^5wMo%?A*x0OY+Z^V^pNNV5#EitbDY3(oR#t_eO42OxDiUfjQ#7iO700&tw%yu>BC_Ta z3Me6Y&jhDk=u_9>q*Z<)68pR?J~Stc^-xo+%}YOK-G^mIB}#XK_oIb}h_5a$ZAzzS zUpqJLWFjOjHD<{}uIMHl34WW3Q+g=7*|G&e^03iZu_d17yy}CpBj#$q&^~t;sbnET zL?wqZ5r>oRA#u`T!mAt<@j#9QM!h&v7VbxcXaP?J>0=>)wMV>@!C=5bG8-gd$<6rR z2oHJUqtkZzu=%xNI?9t1lo35j^`;R&YeQTW(#fbEs|Htq%3oXO@QUO3khvCv6BaIs zegdW+lonv=`9LQKH!^E50dg2tK)L-q1p$O=Hxg}>8goc6IYtp&;;={u3)W_aoc2_K zN)tX7$BZ!QEVmU0XXhTX6;6UwO>Dqq?|C*T86I5R637zJEJ)(gjL6JkiMzGI8`M~^ zmvpUn)lUD2*_GLlQ4wO#(3!%;H9OeW4r)u`fkdpeBlv$C{(U zGjzC;)0HJKGsujB!p);J4R|rhEtA64H!}@>$Sp{H_U@KK0)wPB`hoU?*G@EGv4T^p z4K&fJK+uhrRJF#<1O|(C2{4x1=tW`4bpdV~Qk_N^+Q6SbKF#2g$i+pJ8AO17`>2C< z9(R^BTVRj<#>McZojdARuMI@QR#6U@`}hj^M{vCpBzJV2y;Vl8G@;Rnw3CVU;-Z6} zqoM?D@H)#fH4f=oln{~_*mDIF__!AwAQT1z_#@`&nMh}8i^$FdB6du=4Jr9}%j28{TkC2dAsQ4RzFMCJ( zS{=$0j5WeRbe7_zP3#POv1qMBUZ(WhV51H5;m(H4aN8?(g>8CQJiH@#0{vFgX6l3j zp>=l==jEeDAz9XTpJ#g$N@pGQnp4T^{IS~Uln|*T00~?7Y_H1=^&1tSXw-hg!-rYz zsl$s8v`C0BfqnL@`N8!%&sIH6TZYMUw!KveX@LDj5 zV8`E7`bd~%Jd*n!*yj=h-2_4cfrI}ZXAntLbUppmg`xx;e-Wxmw?H_i;C@lBAFEso zc^!j_Dm8UzcHiSRdW8<7(1`A*UGgDChhrut*!B)dM^2RC_Rf&B;V>0z+wYSAD_DcG z0^$`;EL2wFZ^f#ir7KqdsI8XJkxjaLW!nl@5&jN!k!jVvP}6jp?GsVk*Q=G@w`m?! zSowOPSu~eE4610BC7C7>f*B?l3WGCd7(;w)#!1rgPK$GviRvG3^~7vGkBfy*YT)v@#8hW z0UjzbaCZ{QP23qI(_!QXMVfZrurz^vPbO7hg~U^D^NEuo904(yA>zX_{VN6A>c|1Dx~QH>$;p^|hIBDl)&M{+zP$w8-Ggq4N6_t9yzwBBu|+-`r`}TS zKbJnaGAQqM1FP*uZyWKImal}o3|KIaZI>aLF15usK1MxRpb(L{tMHeDxTNHN*uTqD zqv=AH-@GnVt4@Oh7%;SEI%Cj7^*g@ATN@!CRKL5JP3K7p7L<*%nlnj!$}#P`z6o6g@jfmdHGj2J2xK z``nwWU5==wor8Izkh6n3t9>fk{uCRiA$T|RPeih2Vzg=6Lq~@xdf~+k6m3A!g63$2 z`?6aDbS)DfsM~cdkbiFzpvUthaB5>6ppqRPXQdBB(%X5VY8OTaO`i4E;}}IVk2*cU zK9SqRa>Lt$0Ug|N2n(2M{lK_jbIyyiDoeZwYX;ac_QjAs^8ku9(>xw)2H7!oL?@!q zm8_QcrFwn_DQU%_Y}rLaoZ4hEotQDB!JD-w+ixaXN%mx-o$T>WH3>BnATor!oLEM7 z#n1SWL%YdSw`zk&NxC(CCDfr5qb_A;eKB*UNM**1z+vWu5;e{I2xygf?=7GH1hN(F zF^B>(LF^~hB4_${v=7MVnvs1`$>to>P~kyITc+YnR=xw!!$9DHUAl*1EbEnIBfG<& zpzP;Zb5iF7s|^+_BH=xazDxy2Oij+2?5P^lE-~jSd!SGI;RgH@S@k>GSObiL0(Kdx z!BV>`@j-K2(@lsEr}|Azy{F2*7|0NO%JAe}Mibenee)S?HQfN{G|_niIGeVTs~gS4 zJ*-ukj zQWMX%DGRF}O^H1s(I>Ntbq-Kcudci&ucUEhWkfnfRBV+a!$DXNAKjQgljoW~mkkeK zeo@{}s^!q%5(u`8avxjlaL8*m_9}7&%}+YF*tkPG;N~n$JL5AE9mr>3IuR!?rXs3S z{MIfiRbpNNkr6h{dZh<4^fxs*A;w)?pReg%h@3bvyg%|FViX(!Wgb_@7G;w*=jriMvnxa;3i7P`UEJOg?(`fZn6>aH`JApWyHmg5+p zX~_*&E_BRvPc*Ub?h4t(b~Q8a8|tW2Atpiq^b(uy6&9&Y0NqD`G%NNTcD_-yh8TP^ z!wEs$wbMY#0r}EwKm?#+@G41nM24f>JxSwjqZ;bJbVy|dy2MHCFrn3iaA`{ovKqSw zyd1)o#EB6AdPKEqr5jpMXPj|lWrh_)603IYR(mXrG*B6`y4CTH`H)sa^h%~fyjnHnTyBW7&+fJRuH_J{R5?zc^AL5)~ z=;-voQA3Ixx?h(-<$TUg0X{lDn_kkC>oE{BFwSe~hds_lq0wvw%9}eiZOR!pYueJB z@rw+iGw9~#sILA8T-<)|7ofqi2d`a^Xza?i$4~+Y*oPUIEb#;hCLxSO4unc*u~c3k z@thkj;|=Y2lne^(G&Esm5fUu@5Z-{|9cj#Z0TYfYhC=P*{dsMbKqF06d8koPNEU~h zE2}!qmoU||LQc5uYZN}t-C<~ItP*Ae1_vlGg;_vS@_5Rqh{}(T+H!MhTwp0NaInA^ zj!cfV2U!$3efT%R>fDt2dvBs=nBxdyF^;t}KPi?Z)Jjj=p^`N*0vX}%twD%@AQnN( z0mOsYfhuAwxs5n;hjfeh)@%bXc2{V)b!Tb>%U#X^Fh&N{UjzM!WY-=~Jo0jVz+6r! zH}o&&pTp1tTN|}qR<#MO*sx?fiGoI|Z8#Mdz8LKeB@VE2-lUG%LQZs)^RY?FYp&1J@(phqg^7g8}ovCN$z_;c7BwLFZ- zYceB`0?HX2({UDLvb`v5v((hEm!bDpS{+DpzOG$!RcV&Z&D0|MQ0vr5G**?I)cAOi z`>cvZ`GU7HCjPyqBIVAeXVG+0_H2yONQ14hvE-b0$CiAd%l}dX>dk1q1wb$%Ih}eK zqBX)CfC+n+0=R$?#!A$TIsSYEP0Uz^$6!Dv%g?+2%665uNKh1BLeQ2Lzu8pgr66Kr0qxsfq#0AL2(4 zOJg*1eTIFIVk%2Wx0k`cKUpj|~M^?PB_jKjoE3&8wZ z3SSkwn;5CN93;tH7m-XzoivX#;MN0y4p|%kX+Z#yC zmXBd7TCJsJ8iO0$%oDieU$Q53=~^JgOf7Toa)#c;bg5p9y=?_reyH$w7i37F?{@#3 z09cf&DT5%>gF$&gp@Fri^kw$pE|@U@Pd96?kk^7Ypd*J20{D7+({r;?6)X@{W%!w^ z^+1f7742CC4Z5$0GE6Y#K4L71eYlJtF(#gXUKn#LK}|n4<&)sz%GuCt&sdZPG`*oB zU`2G8Gs;6g zovfQ=758swbd%vc7|=Np#av{bjXOIvX!moQ7m_7ZLGTGY-Y0%ADa~%Yf8nXv-SZgF zf32P3_O|Bp(dy&9Cxa!)s%d9u!!7j4aaDXl<`^`!+M`6&Xd{A181E*aR4~l9a=5*o>o+U@rUR0X>LeUPe)-Y{x3p zi6lBvm+3!wQ48)I9tIm&OJ5r9E{Q0tU>|~*EQ);QC<*(<3SRQwK0Tp^8bt*GT|6%1 z>#;$kE@37>;t^tC|4)!)?< zLB^eUvP6esd2~dQfR0y^E6eM>vIOqT%8jsWZOPA9k4T!5Qa9vjYU38IZ{DVSsuvLj~m0 zn@&tLmSTAz_vMT&KC--RaACL{`{26TX`bx70fiB0{4+@ad?)8?Q9P_22PW}5ECN=( z*qgzp9KhpVWqxazq)h03HG;!~egHln8&uv)`F7raPLJrB$Ah=#pu9509T~=49yY#R zq616sls24lA4m!{lYqAp4UkSNqFl8tSGh4sx6&(-{2E0L>1$=SiW}9S1d4Mp0ewRP z6hhdgllK$}QTXJUgtVa|#18R3ormKEPN@1)FYs*eSSJIQO86)*C~fb4 zSm7>sJDk!WCa&~sfz}iO{+#4Xd6Ml!5hu9*VKhJwyME20GCBavbO9Y~PS8zNjz4FW zvjrI&W{IX+;&cFTEm+5=blKXb-nNj(6BNbKwGiW*;knn{4=V8*?%8#)N4Z+=bG$;c z%2uAR;jZ&sbNHdt=o_nm(8Fw>o1_;2ZcmlVS$UyXRYaEETwkj99~aDf;Z&CiR4P${ z&|D=AbaN&f;vrfy$HiERv%9b&pql^kL@pBLLy8QD!BLV4SyKJDBpJ=6^N-`P!?Dt2 zA-7iG0?7%+%ww>r5awu*C+f;>MbMV({W}RYUZA8B%EXsa->=_w~>)2 z+Tlzi#`{wv3+LcC*8f%IWvbWs%Wnd!1PS#5N|#L-ufL{#j^MAd#`&^FQacVL$ptqJ zo6d=Oo>yqt4BZJAYaw{?q4G9JI7Mn%f3&2ra6#l{62tay5T0GyrdkMj1ttNI)ev5( zzTZ$?rN8U>qM5oq-7jJ}Syvlinjx7ylgN{-^FPxnyMdZn1GqWk_go;FQ|=UeAT6FT z>*xo#Iy>`!H8ST3T>KyeUM*>bSyLvlW zCsb`Vd5NeyL#oYK>MG_9;fA5XVH@Ks+b42iWczvI5KEiT>l5{8mH(uD9X8Uh2Ro?UxvqVR!F)Q=iQF=cG*Wp3LJCN1zlXz0&Z^8r&QYJ zJ25t!SRyS!WQmx(N>TuJ1w<2w^3fG;SkYg(Oy0QeX7$%jWTCn?A!LB1QDJ(iMj%gc zaEYgF8}V}fDfkpl%@$Z=?SR9z2?SwDlu*&N)$v_H=ajBsC4@Ev${20W0OP_38zIlB z4ys=<&Bb*V5qT+T_^J}mdE`3@{?i~lZn+$MESH0Oe$D_gYE0!n-M&y&JNt-No7S-^ z>SB8pCd-uLgNSBllr*xD;=eizw-gS~c{5S_WT@YY2nhA@tnE6eX(jutY!ZWv5=<1l zoeg*{Z1a*o7wGsNo~RSpkGxW! z?2uFJ%4LJe9Z%wfF}T@3X^h7P+4x)WGtjzgSZk0K8PSZC-xnvvzDUJ*bS1eTNbn7j zJYiKSn|X9C>FJh`x)hzk6Nt}q7ctai@9|__{-z8A2okIr?~H(1=jEUy_(@*aqBQ5lKgam^!| zl2kjI3)1=1qTkv@_nXp9^WZtjJ=&IHa}fcYLlwYFesl;DN0L)c%D-+#5{c%QymYnz zP5x{!rh)0qjwZovxh@XWxQAgGVOH?W^K2ByQ5Z;jL+}!=9DcZ;>l92@fc=t1+Epz{ zKl^c)NBeBXjKElYcVrf?@7baIx{a>UhShjiCScOc4Z;OiS3ku-5b?K`IE_AsM;Jg{ zZw>=a6eX zG2KnNE81bXaf`*lPMH9D=UWY~e8I!H{vbo?#hX8<-uxeHk|}&}jS_c`J734WR>$cn)tPVx5X{$1|L8Nm-++{w<9xUL2xQ;OOF( zmd1gY5qBen9afP7Y<(NN`{wmf_@?hy*Y4Hw^9 zM=s{ikk|*$!otc%!^}tfXIUpA(#lBARBxAF?10FT|D{Y5cc92tbd&(4f$?h(H^hc^I4oCA8={SMFw&mxeH-TG1+e zd{{MWCtp!|81K`56jt?Rk?(2o{edpX6Aazq76n$qx*!Y?mc}2Up+{)Mwt}K%hMT80 z-ZLm_-Q~U1=U0yGdAHvlt^T=i80LOd*8loF&J!rEPy<|%o_df>!}L+9J{?w&>1vO$ zX}PuyBfhI1d+c&svZUWTtfyl))j{aEq~CCr1>Ue9BeFx)hB5x!pviz?@dX-K^~N0B z`%Zj1Kx(%K_qTH#W}v4B6g`Xx>{k+RXmQ`!=35sY--8_G(sne4)tkpE_ZeRA8w_)8 z5*83WCgha_Zo!f=X5ZY$1IUNzN`koaW4j?~)^^X%BWU2UK?B}R*JS}c4B^Zrw&K2h z0gZ4vOffzDWE8-Kx(J4Y>Bkc!Fym9+-e_On$8P_HOpyr!0+A-eG076MlSo7OHvpJ! z_4PVGcex!J8#9{Tf#llg8Y%B$E47Wk<+}b`;8SJE0xYFT;IB^Dz^mJzErsw@ZhF#j zac(%dr^G!E>FHlwI^{F~CpGr8&vQwQizCVp8351nAm+djFewOUU2){|iE$ZCnDo1& zn9Gs(FupKKI+T#9A>vR6!BY-=$eK;dtS3`QycLmgFNIo@)!X4MCXVLHlKK4&7+1%KtjVqW#Qq88&xKBB4 zv84!DF-gz$i!)X$^a27)4Hf{5sg2lW+gHjC|&viY_nb2w`5WHpUbl9+N)2I(O=8h_1Zpa zl*4TiO{0!{dnn!!;hrH)4XW5>e`P{L&>f38v;}lfv~K!P8m3Rx0c7}KbcH+OMU`Rn zl%uLENQjiHF)n zc(=HmOAEMhe@ewJVyH352kw$-A&2AsQ*2qwW>q|vao-T)^*^Ep-IOX!lA+{$3AeAM z3RID698**?u-=LYUIa!q(Yi;EDN@Q7r_?C|t;CemG@!4#p(opAJS=>B<@GTt z$@iaM=%E6Ql-D#H=%5o4q@HDgq)xq5$#qD2Z*#<3y!)zjFy8&2o_!v?Q@%f6r_i85 z>4A68XPT@hbGR9^?Wc@=(O-`e^`t^S&!^FONqEk@3s;XLa}$KHrU^C8_D~h^40GR? zb9w$Z6Y(OL(&WBxo`e&56puDAeUuQ71QUfe|A`ruPmcB_ZxC$3Lr%n|p;tM$=SN`etQwVft>kGyU4LmjKtA2jNIOao8`1mGQ zu@x3+n(lp|r>a2{hVnjY6s)HT@_rP45a^OKmnId6I}bvl?!u=})nHqnWd_W<_7$#V za*Za$-s%4xu0)K$X!`m6=pHJtxTQEcAG7OMOFp8Bf;IKz`Q}NS(x%VmujeOsV{fi# zP(lAP$E-c-w;?+B=}5pE*C?aT^LUz4?2}JZFaK0JFX3Mx6$rwfYZ~i%pCv?k z8i%JjNi?8`LUNrT#J4PA$i1tAwDF+0%KEDelEq*O>8s?sQUM3%cYA*S&jxaHi{u1G zlb`gRC*5CgZ~4hDX(!7S`@cO2`7Vhxj$qghLifjO@u<87iH|qz>7jU1pcmgJ zP8s>Vhc@=Y1 zPrBy9Bt7$G7C+tbaa^N9`NE7Ef{@~&o%H{#hk@zrATr=J*b96&1q-m-Dkmj;(?MT_ zhmotWn$wBKSGk-961txD_q?ujKihZVWZoMoI}%3uj7- zXY;oimB~{ex9`WNKq0aO*EFN$Om?7SGErn;P;LQ1Usa3;D^l!|D~~>f=aIbHvGLac zq2;i#^6XWBAg9q%DKlB`3ilz+t^@MleeRus_^^XM-yi?wnTPo;`hUGW&PCpiuIRgo zGx*Dd@s!$@L>zsNsR^-V;nMTh9UG{JMsH(!?t}%AlOZIlx}o_fJBXWDc9|1~4tS~? zI@bIre4Prom~d9x8^bU8=Eq ziJD(U(lwcKoYvmINtv3kG(DM!XZ!+8)gfMJQ>@}&ayVfr0cD+k1!7OdyAm+i^)BPM zy_cesZ_zL^Zutsd@;e)4?3UkO{ccz%h{-MIKNoUiH_SC!O<@ns)j5VJG&c_GbWh1$ zAE%V_fLp3U8p=W&d>UGcXkkb7=QtU1MqW9-+wEI}H>`FQQQd4|;nPl0l|`rg{D+TYv}iP4=?q->Xobq2mMy z;G{qSs68OIQJb+7rLRh1NH8d&qyP~2= z?$n{oxo+L147^D1;XKcLdR3sVmPu9i5As*f)l1Sb_0=)|r;x{*0*1!Fx4NXr&=`~1 zWjF2YDH4O*3aP-R8;z*hMa_^7*Y)e|?kPezZvSt8RNfM}|GkN!)Xgy4A+_~fIQY_P zHb0WiPY#II=Yo99|9s38*ElNK@%o4Qo~K~CDeL1m@W>G*uLx+0*nk>tkZ4Mm{P%ke z5K+IZz@0MvGB^?R^d?n8JjC#lRr~m+7MZi9Xb}X}OQ{(T@atT$P)D@Fn#O2R?4a_g zp2?tQS{};fFnA0x|G~;(FJqJC`o9Gur}@zT6x_dwks?|XP7<+R^iYsAD(;o<=~FmV zhHd-*ya@#YDiy>a1NBm%G!_)b4953Rq8N#YYZ`Lj{mS?)n~ZAa?5~WlnvE}3qD*Nx zTNU+4vjZQhd-_;{MCvGLxc25#w(KdE>%AO0`I8c5j+syK1cSe?JHp7}K&N1+?p()0FJrxiNLBtflJF>N}Xelyt_hi%2{EyOojow%k zGq-hrbwiOH3TGC{Q{BG?VHPN2t%bkw6Ul|-l@Yu}udl+y2t-iR%u&i73b-Kr;8A3< zcVG!geG9`C)pvJa>VO28Ol`54UWi~VzlZ|$C${lrfD{SyrV@i}v`v53z|An!@gwn2GYS*t| zP=cm}xng;(O^g)SPlU@%{;Whw=fnuj_zhl%6FV5D|I_S{y?BPX`Z+tO_}iM|nWn*E zmlV+f2!(Up``)e!Pvnk}rqMmPJyeW0fNApni)WMwOI_NPpVsDRzof^|tEk#=7N+=l~;<2W4?U z|4)I?%MDd~5R1^h>Im~0DvDa`PG1!Qv(oI*zdU*rAZctN!Y1w>Dh&mr|0II8q2NGE0VB3+J6|2@*5&BvO}VH>JxY_o$6}hVHvAX}m@RK?Yo` z+h;UXu&}tMK>@NoR2-u}d2r@G)xi9(f@wyKa`sTEYKUKU!MT$yNJJq?RyA|;P{t5( zwEA56j{r%Lwy^(8q_I;#v zdngg?Md5x^B>tc7CccYM#vi8B(W;=L>2SeuE=!Vke+tey81V1^WxO=4RRiI#zeZj~ zFo`7n>7$HsoN-}r)b(H1F4$0clVbWyA<9z6)oFt!PG3GngA&$?VikycC`^$(qL`*0 zzjRMSs|dvmz4`@@3PhCI)K-42rwZ5FTFAh>z3@vPV!8>0B56nNDgA8U`~TYv$cYup zQra@n_*V_rt8tA{%;0*f8;RsfuE$gGO#M2p85xRF?LYSvDIQ`~3x*2Q3)KspX*vh77(WzqJ{q>H))^P zLsNs%6Le7YbzhuN7Wo(5k&aP57z7)jp3y#PRHRj15~S`0`?u0V%x_L8=x9)X^+=P& zqU!(U2oYgQ7#mXewMyfYf0)D#fAc&d$xLBQ!>p04AY*|EB@E5novx^v+e?bx2Y*UV zw<)pzv6#w)M@0@}$|nAvijYx#mARp*@RjZeXsQ)rNFb47@v3^sw839PR0tOSBU#d< zvtIzBM1KkqA|c^TGeAFjC>aDalSR!Qy_L(4QxwGzE%s1mqcNLAvqMv!7k@)|t8+mf z9}ufvcR5I+TSVh<%(Xq#>5rxlF@w2g>ETb=wQM5EY2f~L*XN~__4JSu*^(Uh&JP_u zF#uB)a-O+*#uJ;VS_BLd2_uM+!%sDmaDh0zMees zLICb8RT>ap=klC#DTV)c;mqC895;cahW2DST0W`~!7Qfr6$tOWCg}jP_ST}urx+>l zOJobFmtr0Yo95+#K)UqNJ#`9L^lUWs%RP1qSb~DJb+eqWT0qH$)G&p|yJSH>c5|zk zszn}(6?tjR*T)z=3K8mRNTc7+YbcOeT($mhBe6%I44c(aOR|U4gmHtO28D|)^Ar#} z3G3)_f)7p5n5|yFuh;uIa2%Z)SVZWjIqqa#t*w0J8}d*P8Rpg13aQ5=AsAHTgVxa_ zcdC5?ccwZ8PH(xYW1uW=O#SiWXGub2&&BuWqcMJY2LahxS&?Othf@@OiOaP=c|SNx zJ~gnyu)8M)O)sD>FZe z5r|h}f1g7cn4@Audg)=M%NesziO6E&Dj*d)@mI5Q$ZlvYxqnTOBKjA?%EtBMqZa8I zFK@V9^Z1&Bgt%P#Kl~Wj3w;TTuEXr+auH&)oSXv_LHPxfcDNN)j)%f62-ioZE*J;KB~c3TdNTIdocoV zDnWS7@AoI00?)K@vy!RP_^C%kx>|6-k-})d3sfM`N@(zew~zU$R5>hF$0P-4P)inZ zSSS&z#i-~)Qy!C~rjz6CW2H~;xk~^&lM)kXiX{LP@>H2|hT|kygq(z)7j#Y-DdzUa9Q9l77eN zb|u3tv}xluZj{&<+U=9#rb$GU-W+q$7HCb!RZn<9Pig2bXR8bgJlI@51@Th>q-M8> zlF+>6Gwk=9+2-V*@=@~OXGx_>>tg-UuMjb!_%~Ye_*#Nw80BFsV)W=w3A$Nd%}9hX z(U%M~fUR+~==mu`=`})8Lb>IJcZc&Xcn*_;@8mDBj>REVmKPtvYS#$V#=m62s8WD4huL_lpwYqw?U5JwF&Hzn;h?*@JYDxn4 zo`w{=o&9Szb^ix@K!m@QsG`~OmNO3be=5;IIn}N6__Y#Qk6yEm4B`J&qC$6bqGvSJ z|DjYMgy@Y+=kaSLN`gs!>pXs}lnwubEMIHPg#TfLJHkL~6cPHQKrG^O{rd6ap93C9 z4qr$(u6|4ujMhf5As>DY3s)Uq$kwQT-XUw;+GsQW@bgHaSa0l)j3$>(s}$&se)s1netd1@ku3v&&}E@c_Ke4#6Sr|)|kmr_gSTZ{*2u#6tN{5LF|6M|exneHhB2<+KYpPwAX(JfT14(ftuSCiwYEXorJodH>{Msp zx5neAD)~9k5`pHs1QM$8=iMMw;Of@a>71+-jF<>eMe7#<-tmu%5sE@S)E8A4^N(Y4 zkUg@dtvLQJ?O z<-Bzszf&sUg)N?jkM{g0l>tdX)>g=I`$=I^^5pgV$1fCOq>Nl^oS1R>QKf(zc6k{w ziT9&Q?sS@bHWukOmMSoxYzF3zhfk?M#Jko;)9=I2I~dE>hAh3G6k;H(AZzSoU4K@I znYh=or?Vow&}XFvmW8z~jmK|P8n{`ltxG zM5VRX*lE&yR(bv*yJ5_&^Z2b21oqvib1)A_ImocS?6HR=dX^ge)_R- zy`5k5+0^mmO+QZ0%Mu%LbqTBl`13x#pt{To#gLw zi$U&9LVa<;F8%yC@avkKt%{_~^NnP|#+ zk+*H-?z?+2&x^VLgxyFUQRM^PYuX z{L_NqSKI=R`J=A+`r1w;b^gBkbEGP8}TlR#uc3o-=g% zMjp3;m*Uw>N5|jdGgrUGFj}Mv@F~1<^&Gpa`i~~I=eztF=emUNaTd{^mB(=|5i7y~ z({=Iy-UUZAKQg|cDAu6u(m8LyWBZ-)`?btR`daR^p!qinE)sN4e4Z|s=7DqR`I!7= zbLOSopC`eBCBAHqUF;!zq3sigCn$ktNeqK`#>GHEZ(?TgCIWq`cU+kJzD13k%tOt+ zisw2s)#B&HJunpquZi55+QsX1FL;LT&`?{60x+o(u0;n;&C5(G^n0=0=S+QJyXpD5 zaGd$DJSVZeL|FWU*?|jznXhN(@WRW5MJB;ErvJbz;b{|iH0FuBSugl&Tg<^Eptn6n z#Pn_lMW;ZD8SvqKalVTC`mOXXGz(OvpxH{yd)6FUyS_UD=v(ZUl)L!1DEKGA~vfJI*%em3JYy@0{%(?V1w zJBSU)=h#q&nHRvF8j0sY8rucWq@&^t-nI3xPKUt`fs7+$^ZL=;5t|^{ z3>ylO#-(`Lz)$koO$>&Br{0xZ0b?x{o+rEx6=?$(wJc6? zl%H(-`6@z&A2n|#1R8^*i)pvAXkh!wY!+m;J3^x2(^QAhKwUKIH1he~q`E$l*^th-o<{{E^ zaUH^np6nkC?7!nhcZ$CBA{NoiL!(5zZJlJkI*%)@|LFX|8`gqrc1FXv4L;Y?2INGU3Q=o^S^{bYY)O<)0UJmUU0hJC~QjwozfLxn||Y zpoOuo-5Cs_D8_D^(g3Kqz@Yo9?JCssDoNM{qXb+9I(t|HIvzWkQk_Teg=b8$1GeK= zHW67JF)M?Z?a-Bhf$j=iu$!Ps5{I5%YoV_9T|cHpP*S_ldkM+~RZbY^d4d2A zP1+&OxQQ)c;bv`t_mf4HJs)VNc=*XX=9Ruu(Ci%huiV&$%jU9Uu(wkc2C z<+EMyH~2(f)UI&XaX7H%UFKn8xZ9DPrx@4&rdk zV`qQiKt&X1#md`eqim9ARlDMg0;rN%tahdlVHnz?P*Xu(GNk((74RMHMhj|l+ zm{A*gjG8dcnmXtT>waXBu~u=^i-qqh2q6=Vv%6GiZqfF^(ViVdMVRlSa;&W3IU|eg ziXrl;iVC>}PC}T%u+Lq+G@K}ny-kx-5i^?I4PEz1M7VRKQ&1Xol|E?5O!0v#r=m15 zS)cQAhyxt&=UzG4&X@*HCXuG3j+syEf=$GVduSav7E8e`I;m7ZmE6Y`P%eBr6hnRU ztei26tEL3LpgM~9@#vh9Lm8}?oY*JlEWYC--JNN|vA`$6mA?#*mnO6PI_EEOtW72= zs3cf3kj{73skJ7RHLSwDyzDImOYjp2A59V2F_oQr9lFjg&IQJQJ`g*ooARX9!jlr? zVwv4IA{(KLLsi_?-kCvJaQL<^91wxexg22F=-cEk$2X8P2DW`hdAqO4{y%(ipYYunLJe6Ci9Bim}e&K|-pfVOqxn=NWIRVn%oyc-rqiYEp zeOwnEbIIq~(#n76y{|6Tci9>h{A~4`sL(vz_k-ESom_99fRt_GwA{p}MA{P1tyq;b zz{HTQ1Q~>9CA3{*Rbw3+7#+AZtSu2Rhr&GcW%}depBM!%)Z&4BC$toLEshe!@LG`H zmz-~F-a86%DB_Baxw{^!9Y{P^?+?knEwy7?(#v=iOWSxYyN%$XNYZBF9#}mI3X_iR7*;O`5;A$)Da`Tcpt#yM(HDkTe*aAjN{g2u~u>te_9DDHloL{!sa z$*V!x8_(fi1OR`$!Px2Xud%7crjZyAy}i=1Ce(qh#>!h%8s z8op|KHVr8Cw$p$k?5w#De1n#@AceM=?MohuP3XJ!Q!O>ni$quoN?}{<3Mp=tnm>N0 zr0l#8@N%TGM#;zJ{P9zjy#NKq40+Ec{j6d$v$S8>-%7!4yAI?7%TPo-Ql;|El8{Sus1U7geAbB6tVl8$HI3%3*c82f`0c_&| zTZ`@X-d^BTK>{~NLrSoF#Q<@iZ-)cYT1VNGcp*R)#~XJ6^?6AKjMH@&vdXXWigI$@ zkSXF$j~a+b-Kdg7LVv@&ZT|) zSu6?3rXqTSsrc?#LoGjE?Or6@@c4@EC!;Gm1Jkm43-mqrDrUP&@}Gz&enL<6>AvoC zI3(Ode900yiML^nbX6`ZoBNcn^qV!GPj_#x@*&2n zpYSd6x8A_?j{5m6zvJpGGOy8@Wcg~g7OltfDY8DVwELRiZW|w-&oYhW<7M5M81DCd zE*(=mc?z%jayWfMeBJC=&hN)Nm&?5%4cgw)r}LjfGVmNs^L}Lqw_lYL*Ebz8#lCms zTn$Q7itXDJ!);T1pK`zI4r97asc5;#_p5$is#BBSXfL}2Klptqh#2}2_glNa9D%Ri zoXbIpK@TTeD=JX^**dWbA^Wkm&PxT3A!%!sb8ex)XO>Hj(QL1n{CM_yy`A2IaQt0& zrx!3(&urOphuInEEw?DqVz5Lx(Q?37^l=yn(9w6frBq-_yQI+85n^O#PijKV_jkON z?O`j|8IKS>$b-igofF*+XZFl(o3&1H_}K1k*xG~_+n;&K5>5a-iWd~D;n(=>Eer&l zWa>~KZV@b$Lgal&O$NAo5H@|taJ0V#k8^qS5u1?^eXTk3oQGy7jUL1)b&SVO?k&@x&bzdRpSd3+iK z7ypcO_XDTxQ?^0N4pA#hbolk+Q%0}OTHAmQJlo0y&-*J1^k8ollgimK;w)IW_V{th zz_Wl7cXPd=?(Df0z6v~#{n*D81^OjU$P@vjO?51#BDmV|}8Mg0(Fek@tS3Rq1)o-@Y(#)0vpmXu^+F zQNh}B3v6hRz-ogsg5`dpt>SgBZ*$&Q^>tm?PjS=*ns<@LOG;U(2bCL#~^7Kl{#9+u=)lbK` zH+Y{dc{j&xiA{;hY-B~uSXr3W z#{-X;FF0%Hx@SNQIJu1?CBaBdv&_8hou*BxOTZu5Vgyz_0_k492)WR} zUG!dubyc5+c@haV&ox)btX^ZGEr{{nV}l*B?`kKQaSqCP`gfmK;#t+6n@Ceh&}A$< zB|adu8KDbBvO==KJZeihLpF_;B$1al zg1xeiw^l4Pz$$P-hI}}ORd~Ni&rEt97jro<-o&hFvKu9L`rMA-lXIuTMn&PoVKLlS ze*8HKR~B%h;nck>BjKbot60iz-q~X_EB+Z`5Y*gDbb6GUkl0F5iCVdvdx!*PI8~lJ zc2cdAdcAG~=YGFSR5OuR#pTRI7RKOiiAk>8Ds;-qFwdN~nr;~}q_b9w`ijnR7A87J zoRTZRTe1@|3tG9Zmhh>Fre{W><0eldM}rZgQ{J_`P$7sc@MRG)70bQ@?8C;yCf@V> z;;fGCPlol)ynVGPH%kRKps&@7A>*OOBDy*DX^BIHm4hF?{EA4z4l$59y2|+>?c0JP zxS?46mk>EGY6Z8+_A>_=dsvCL4Zj8E-FgQz+WE#JozH<{IEA}V8di+9WJwYyLv_IO zS#!jYtp(wxT%IW>$8F8&X7>?Pwgk*cgVnZtzK@^6b`JPB9b&79I#UKhO*mZ5H|`<| z+gv*1O#X8b1>Tp=`#ZHUOajZBS%P-1V=id#SBiWkHxu`pIdgC_EBV|PFDBJ3n&JDJqH8Z-^V2$yq27-F%3wW4$iqjCvkpwtKxC zNAc~HKmF^M&iP$Nqe3h*=nCe7XCd*iT&NJ#)1rl>Damtmk6uJnb72s`{*I}6{t~4unX#lrdrXdVF~@2A!-?ZPj&?WYttB*$a_< znsgeaJuIg+#`Gae&5Q9=8gPzNXZIy>KQoIG8yyyHU82JSTrVf}yK|zjz*awT7js)L z#<+<7?!klNDuWnj#*YwruD-Kb9cUn7?2<%CX}!x8BfRcJkPH4wD^_@g1VCo-3PiFXSAMm# z6CI(lg1Ryb$d*l)1g3ZlxcfD9$FBn`%u5TVHQwR-MyQAGHsU}xbl4V} z49qsDp>xk~r1ZPu*ixJ`TWi=dSgzbZPapWXWH#wxUbyB7UNcJk{PB*3{;KOQd7|l8 zXF_g9Z1?`IpaLc!(viGMgpQzm$!+_wVdQTXSLhaibC@Funw#SfjUue=N;`aYG!ZyK zuVIWQ=;2eM4*DW(OE3aN5)bE?a~8mx%p>l8+j{1Ux*&7c3V3iV`S$VER}cL&k|{o=60qdah99^FG+SF>ZAEV|Qq4Q39C7g&m20>FBUtP|vhZ4piv0kcL!!R4H7#QA7El^=!ZL z?}|oD$iINk80|vWc|Vq!CwNXoudtjiAu^BHoCwrm9=wffbVf#tE=R4Ei=mACFX62m z0!LiUoF=00>mW+-N|!gPeT09agP=yF>q+20t*S7QZRb`O))_1Sz9a(uDQr}F%1ug` z*lPgO-{>;`+$JW95+ zK&~{2ug{s_ao5UyI#;dAg>gI_YuWGAWO-&eGt<44jOyO!hCe@--&g4-EZPbL>;jxC zKZg8SXxIU4mhA;>=>AgGk$0soBpfBRuHD6FVEu25NW#2M4KqXTy4D{DfIEBHJkJM= zCi?&c;?zh_`nRgGwV@ZlkM%Osqe9qhM$i0y6a~t4I*3D& zd!=uq6-6oCk&d6koZ0gt_~Hiu({EUHGSQt-9uWb|@KLBv%_B1|cp$D|OyKdk5}*Nv zWmm(!&*|qTwQlnM;bvk%%Xp#Zeftv70Z7%*M+;GONCq5gHn%Iu=%El-shZ%q0JSy| z3wIz&;RRWDJpH&HMxhzNTHEpF8n|&x1>kAOf*kE|JS3jCtxW~0(puMeD?Mq9kMEc& zc-T=$IxXJ7DH4kXyfibZNbWFqDtUNQ|Dw`3yNw4UBbHAEHi{Ctuzh5wfzgFbezp-V zhM4#ItiA-)ClpwGI5WQGjN)46RKl2tr!Hc^AzlP{?-p-3NR8e+SKwmA7}O_ZV=^`z z8U%6u?Mrm{u(reYuF5J})>(!jtXC__f_Z1lXeH;@%tGh2y9r8FSaRLz%cNaQB!~2^MYAuPwl{NB*z|h=JlPxYu#oR z6^@;%5vx}<6VA-@TA2T3V;{5Ne5FH)E$A(Q(d^ZJ;WSoW^9unXoq(9?0~sXTvjb7& zko=V6`Z|QuK@KIU%2dOchZLEe+J;O~VYMD_gOL!lgvfU<;UV$;lj=xK;$|^0{?tgk z56>ypM8&0xim1>VONOp&X1N&d`6TDPr?e(opg#~`Y`j=HLax-WB!gms+y`zIReIgu zY^-BN7)i?90j;u49MNxJjuM z{rI7Rr_DAdfV1d`Ojw4roQg^5N|B zJ1Q=Ho|G!SqtJ2E!GmLBV)^WktzD!BzwVq}fz_>wBq zgNhlP5Y{*+mbVBM^XfgfZiLj0%jfs_sfsz!unNucAIQ0;6c*W5rMX%I`3E!E?Gc!#7B!<~aj+ zxVm=t$FEdYeUCnoJbtHCVfcBzc0$k}rDBFfgPqvgu$)9G{J*DwdbdIT!RGyL8{Bl; z1=-Gzt>eB<3dH%|-;XzUH{X`i@BH)d`#F)Q>V3hw9`{IBf0uo zLV%+^A{Be%x4zFaLlFC$4~?gn^hz3Z=@r7-umi5L)0$eIMY?Q^S+~R(Ezwl@uK?6 zNmI`(4Dnnkrcdu9UzeFZez^-1RPA z<9t0>gC}d{o*4x)E5!$WJ=%$$^_m#*q`24!W2Xl-WySXESXg0lI>k=S7O@sCI6*(M zd0R3T#1#dc&=L-kIR(GZpOb!Y87BPjj3u%lz z8}NgtEjgi8l|&Zq`3fUWqfV68IL5U&02_KjE$v6?`3@@(#yu;@LnH<4rX7EOUph;> za}>A~DWQ2&WM;$is3gHQ_{xYNn!+VJwl&+&cSjDGb0?8axMkcOiTNzVEAp}J4T`(@ z?z?3ffCASgVN+HwB*+i5!@-G2|6(huhwb$}JME!M){ovh4;_=$dsuUW#!&LhRSE{t zXGSQ0YD@`iZa6qX&8j3?)(b)HjWd2J=iU+yRy$TV5##nwxEhKbH&SqN$dF)}U4;@` zx{Xv~wkB`*XhGho-`#^U=^&nIRe!*p^6Qy!=fnHhw-HLc3du-HQk&|+3&ZSzG`l46 z8L#?X)Hjcd0~AFbF6WrEzTPXed~P!8aTn(ScYQI&M50-BY;7K2QwP6W5o2#vRl>ok zzD@~+*f92am1zeViSAC*dCR@G0oJs3b z#N$>BF=_CjRFQKFA$k0(E&;MnvuM}R!j0^Gc2%(N5vUGmIzeDmTk;*+k*1LuOU=MZ zkip(?Eku;9sND7v5!=FyQq-{01cI%$#4`bPZS!=AaOZ-H-2j`E`9lKpb0J)&`Kb`h z(gwa@G_tR*$c|dUaAnWjty#r$V5T<@7Q$tv!sw)qG^a|{IrZCf+Lqmjhb2tVwS|!JI(-}>FlS4O*U5lb1L3gy zv4KH5`>jLHY!@MQ6BiskMXgXI(p_ih-cj(74ynO}WZz<^Nz}PeUSUc@A#W!B+`bpA zvS%#UVwA#V(gRB2E0u{<8n9E?&}o7XLDEy(2s^AIhSTW!$k{)`I@R)CCUsV$J{nl}p55=Tbwz zX~5H<9m4h{smy*T9_h~P9_G+oVP8PL(aEnvLal8+>z-uvi|*#%mL=|~LF~5udI`L3 zalPTFbQ^(KUP=^DR&L`X8Qz_5gFqn*=L8a>(>~wAQor*2Rb59?A-)IE$YEN`w`eg| zh@nr+rZFDLYroFw=f$eV2p;Xu2l|89wUlUVM-OK6d=augbdds`ud^spn6i5>NG5Q_ zB%EMZPRz+6z0>v+yg4=V>`?>>=R(Gy!je!n>+w&a6q_$H==---Q;6cXC4Z!HeN@|Rjro>3DyqzUE8Hv}=T@gdmqyx>9E?o)`?E+RN1^qN{`(M1Y5N;;)F zq?(_v@q@G}FX)kMH8L&hL+uGMOWCVPL1*kk@Bc57k|TI?sU+%KVZ~2X-1IJx-R(s^ zh&%sTB@$k(H5RJL)hY@p#od{>et%S%P_=JuNEELWbp6)1WXZ?xlw=;IPRjhCf+w|f zojHE0^8c_j!zMc&0;~=3IYHr-8Cfa+ZA~7?qB{a&TjBs!ly*0o$l&apsTqRKRD|n? zx262AM8KaWYQDd;zcTtL3-J9s^-@Tj#F#kI)K`zQKO<1OW~~`h9z{~>26%xC#!$KQ z>f18Jo8^zCiLg{2vYbeWY^hZ)07p}0zW6S{5Lw5kDQY`c zKHh}Xn~QZDL^*MmX-ok>>CQ<>7To(b7=Osu2Vc;EcHqUSUE zfMPDd46|i(=M6v=DZW)^Jh5_ql?^^F%URLEhG=!RGOUmt4B6?<3dmS79O>8*F1WAL z7dSn*y%2obJ=hWT%Zi& zju!EeZGkuR1Yc{h8oQ{X&;Pn&=k;e_m2!#shAWjAyIFep@Zdo`oo`2cGpC4MO7q>j z6V!>bhpC+#`c!;7WsZ&N+X?(gQIGvK4hpSz{K(-}%eZCm2w8~~LKdpJTfJZKd+Pea znKH@o(4nb2wR<$4@55vCVqV0Orkrj!OhY`qBSDVS?HM##g#wr$9n~Qh*_9chl-0Y` z@-ffi3QzLl7u~LBpbQQktR=<|t5dyim5wCh*W|?l4-4qkBSXy*)hC;3o6_NN=K0OV z)Z8JJFV%g$K@o&WIer!!ioC#kAa24lc~TVLC+jClldpEy*b*+g(D4)x7aZ@jRMCU< zqPRX%E_XNrYO{R!O-%2sAK0|#d78eBD?d1=qn;ScyZtIEojm$x6VXcYfHC}Wby0>S~mV*WfO~+GZVZZ=eBJOg(;^E-n&Gs=`w~> zA@Yg>rX1m;y`q9p`Cohx3LEHg z?jfsvoK6&K_r1j>P%}M(uAsOwcZLF8FNBpC5Cpu@GHNUp6y7io+Xf+o>Qsg&bcFgU zK33acKa}hw^75@?3@T((I8S-9efLk_5qK1Mij+&}i0OiM8ocXL2$A+Kh7rU0Nf0vf7n@_1j+5BDo4tCvLHeV{$ zz8Be@pbP44E!?lC!s{{1J$F%s^X)NPIb+1^lXu$lbu>D(Eb&ggZd<tik_ucr{ zamfVlzYFR+cbdFQ6vYMZUD&t(16~9d9X?!}MymtItGupOPG{P6n`3h2dti{iOsLiC zRxx6nXdRrW$RJZT_8rVCGQWq8Kl%s;`Rfi0FoM9tr!0A&0h}oIO1h^|O5^)ja^g<9 zhhQf4z)o^}sk|=*V>6IfAWqKeUqvBw3w!tS>4$hkAGK6)U}gOzuv#sCC+_AI9k3N# zh%BThMCL8SUiVcb*gvqDoW-dtT=t;cSp-9LF2S6|*Izj$m{W^{P%k`ZP6KpcI4Fu) zDL><Eu%H+k+JXVCk8i0+1p3Rm&GCy%XF_9!DJ1tA5x19SdiZ^#&_* zVk3eAMo?0UPG?Bv7`CWv0YQaj)j~q{5xtFRWfTv#x@b6 zx|4(p-G}r1(=Oi2cvf}Mgu{Qls{so*x2WiEF>|{s9F8_U$qU-xcUeV8Bi(Bu&Ft%q zGdFOF@*l8u7;R_XHI4QACB-T9M5B}e>?OMV0DgROTX5NsVY}&cpqn#C8 zH)fUto|5%@DWS*FMH5f*Zdi0G9;Vy0t?_t=saw<^a4RLbj@~B`V!v*9D+&6Df;BS%xhqYHZ zGOn-uXjEX7Lc)~^HGnOyGZDCRq3 zq)&=}J1j_os=WnCmm*TzN6!(D$oAuQ%sD`xhQK~G;sL~QIjS&+5#!UDmouStx*0lD zk=we{>9ThKr#wDb!$Zd17ph36>AKW1S+)Z$+f~HF9a+ZhIEg5h&ABglB-n&}b>oaV zU+*e``8ddYG~)>2RqCaa&+X5VPbM2P0a(9n4RCOma$;-Lg5&~bkr&JuUWula3Pwv{ za2c=SBY`(Et%a9JD--#-*=0T&dG!W(Zk+@c;)9kZK<(Y!FC~itjj&}Rvu;sh7RZp> zBu(U1zhvl#Sm;EUkS_H6EE6fmexoZyIy!E*0T~~0v+)AHLE_8^2TMSaEy&9o#xQs@ zA^Nm+jyvJStd0)?FfGF^(oE*mvQ_8l6Hb@bA2gem9>o9JRvcu~>?@MfW3X?|%$lt= zz!YJT=Yb61@A7nuM9FPA#3ea4jWnlz71z_Y6B0o@P-vnDwh-404Rb- zDk6ETEV8%{s%Nlut^gu*+}5^)l#PzW@7jfkNncR_Y1$`o5xk3HudpCTsv$+D!n~07RdU5@ zHQRm@x`C1pYZRH2{VD1cI}R6gQRXdafftD}wG=5`oz*NOy@{g7d{r=?vK{g(A2!Z` zi%Rj*wcZgH(XQFC^4xPJ(S2SVv!qhWrenmI>t8W_cC6yN{7k^4gcvC17em3SKEwn{ zhmTo&nGuuN9v&@fFA3J;F=e3A5L6KWy z2}lZSwg_TDw&!R~kViWF>`};%(4Px*V>sisL`U*N!FC(MNV9B>V$H7RLOJ= z)zfGP^htZ?xziG6u84vbzJaHv!V6E|1{8yVA)u!f&cTkP1#joT=!H5Y*yCJxY9{&+UAf_lFo*M z*U+=!FbtxWP@=7|aDmaP{hDIKEI6Q?IixY(nAs-@tt7KUglIifq9xAyz(g`u>PFb4 z&((6%EdJ3XE{RSA2tVMHzQNvRjc!oThj88(81g=_3ONd%@4#Zi%-rLi6c3=2tysCJ z%d9)paUcl%vhLbW;EDF4C|+H@<-{LuC>y8)P(VGgz46owMTC}~jScyRtTk6k6Yydj z#xu`L!Yio~S^g+quUp1Cfns`LSc^#hoXPUGo@Ft=t7YBdE|aYk3T|(WqX_1WxI{Qp zS@KGFjr64>8s4#p9WdrCc)%h*klmwNiAltd6IFe%=WvT%vqvSedlyj%z=<0>XYejkN62>BlH=xKe#H!+}nhW~r#l3W%3(;AE=}ul3Pw~1$XXc9-CICiCZm$PH zEaCkI2)#s!t_PVDN>uOX0BpM@$T*nAS8_Zekz()IC;YY-laGn0ZfU=-b|wp3h0=Yy zfeZrhPU?Nla()5}rYm|L&#+xDyYnsVl2J$@GLVB4C|@$d!4Y~dT=mn_c_l4GNEYalJqIPWoi;+5@Py;Z9;kkc z-ec;|vEOK|c2bT`fK+ze^y67Oax7c{4xxOSE8;?n^`m1Uf>qm`H?i@*?r{z~d&NZO z>RoExf6LoA| z!qA$zi!(>QZHW&y{T!%|p3@*#rbH6X#q_kCbIzRA$*${_ zEmahAS0Vzojbj)E1$GzboPm!uP*z0Ho$ zOxA6R@%xsUpa!Jaj7S0EXi-Tl6|bSgr=}q=QCB!%U@X>RR}lvGvoWn;5?JK(t1(xd zy=oz9&+WXyF8m=T)jS&1&S0krS`GB3J&MI+{sMDhmOmFkuJho4)Iy-;Fjny(3Mg$r z88UmF8HFT^gS{3_v|h0go_km2Oh z7dZIMnh%UKElVuh-%bV%0k7LpyK?rSO~6WtyOzn%d0@}^RaG8Xdy04={ziWzGutUY zG$Yf_b28M5Os3}9tep1Zr5jZomzOj6#Gj}F=-U(f3+=F8N{z|Le)ik4_Z7`txP@T0 z%?a6gg4ZR&H@e)NfJeqb=d~nIfY_`iy4XrmW{sw9<5|k2;{_Cam`m06C}0g}%RPI- z@{KP}?lI_Roc;~mwwBoi>9wJVYec%p(*Vg&5tak^jF`Mgu7N^;?D093);bNmx^a#2 z|2VE&MZ#Cjm;zX&&J|cYbgXMp97WwmVp-Ssa*_-85*`+AS;S~;xP-|WI>uv$C7*6{ zxfZzkHt}W>@P1eTD1iSQ1CpQBD!J7wT1Z?~xf*t{B#01e)r-y+Yp5(^IQG?%?(up` zny8~~Yrs|Ah@PDMEe=6+Q4w;q z++~{QJ~pMy6Anu~3%;7sj{>-t%{^+bxvqA~s78U^74P5*;8pVqG^`476I##)*=|r8 z+phUJuL{stzw$GIY<81tAmMglB5)<~`xCjdc@GN$ggWb6DHt=fWQZLtAmG;$guBKn zlTQ>G<4Htx#3>>L_VXo)r|%yHj`Bfiu&L>E=&WT9u95^!zNhphIu-eRONv0)OVS0) zo9A@1;)06U0Pp0QSTZ`wCt?T>H#h==C-QNxOjfc<#ywc)c=1qWJ41CA9Nbs&0}9e}!M7?|f?PB=LUTCzKGVw#u*N&LYuwPvlN?24A+Ciw=oH1hCR{ zczpk^nONVh)Kdi4EeKliTu2o@ zX~`0w)cFn+K4}OFgLL$wE@=vh29Sy4}%W79Fl?e6Xi%<_a);HH4)iHJ?0dSzgGhMOHt2Qg1Zn9j! zC~%jzL+YLTg?WyJ$czjWEdY-uAnQfxRKA0Y90|v`qqmM!gojv30*2x(Vm$!=&O`K( zK}3wYToBuFjip=ogFQ25$!6?wUfA0SalAJav#2ke0`k+$o`E!o`8u8=vJPU5End7K z693EBKG~m(jbnddD6>6RWwP|Pfr!3tH|3Ct)q^cNQV%Dglm{6YucE{wwK8u}6ewMQ zn`QPt;dc5lEs5k?TUp6r;!$-Jr1YwKB;>JpE}OP7c8IAP$;Wfygv5}XuEf>?xf;p~ zYw$MYEm^trRh1>6=XPPja!&3lj<0OG*OlCGJZjjmU`YXno#zqr>?>;0E9QT`g;zR2 zJR>ZvE0*E3WRTI^hY;C1b6t=U0{C9-x*mG2mQn_`>T+q7a}VR|`KG*_hy)G2QzK4W ztNxV!8k;iNw_k4*#8+>d~Lf|V2rUUFc(pnh8i6yJb5+q)E zlaU?o=EszTnvWz4cy;}*AP0y5DeMb2qXfjzuNpj#^X*GkD1I556i9c)Svq9R-{|uBhQ}2k2(WS( z2p4GOYH%r_@17C&uJMZG(6}-f=ab3T5*6y;RORx;Z11ZYj9dU^K$^eD?G>~>%8|rg1;|%ietmWdS^61(dHb@UDz~2JOGc#$LGZn-A{veoT-9oovE(^j z$aMslTFSzx3NjKXg$__j%0H^E)`jR&nArUM2at2&*JmGUt$ zVmUW35QQ??D|r>P61pFTu}r{lfJvD<7Fr}6+TmL^d33zyqp+Y-l&XtFd&@YeG|3la zO=g6iL0g1*tF1uh6vXv%p}mX=drjwvnjL?opd(Dz;LkdqqbH993dQp#Kp|}8tTV4~ zqvlas2He5iv)H8@<`x8<`s&F@YJJ9|uKUfh5Y$2u;=3Hh=aG8Vd_M`Ov8yF#&3E-4dzeU&0-R_H>X&y2o8RaM^J zxjkhyI>fcp4Y+!?gRMD zJcR`DgXgN323%pxVX3(Z`>Vb{`A^pXlEu~}3~&n; zAlh-{WE=yp#ovd^FG66n9u7Dxa>tjZPFboNh8MF4UzD511q79LJS&KyuVJ{kPHUpW z^a>F$o^@0>D@-tuk@7jzAa%gW$YBP1stdAoE(xrecVZaj4d6ZU#Chc9?TNn;Cw>`R zKqQOZux{7dc(PD$dg^#mpJhxcHLz4sNOYH)#?#AAPo9g&_%Z>_4BO=^-yyL7(FFJs z4e*{jD|kUIw}};O8i&p(t+2-Dl^;#8)wp$9EVKcry+&jvdOmGQtw71eSYA>T)}SuqT;8 zNGXZt`KXwoT{#=jV{DW(a8o**S?IfH?8MkmoRD6eGRX25mwK^C9ugk|00Q`8q&#iZ zf?V_qZj4xu>P7TUWsOKD?~{YJXsc^16}N7Tj@!0}x4vmQ^B+a|`A&H|?&QofRQ$9= z?IoXBRYAkm+MYiJFISBSk&gn}TyLt_GkJ`f9rFj%&`i>RfW_JfJHXE9nAg)vx%O447jJ-~ zWbK9yDPZ1OV$kQ*Iq3R{va|(XMlnKFpM7q?@=<#dY`k6O!C1+NsEe&_>X5Jj5dxzB z!k0)vXR5;&x=CHBGNMW(7F)TH7VgC)tTC?%2Oz7*%|06&mpynS!ZRI&}Xo)TO;&H^J6(_ zGXW!K;$F=R2M4ZaiUt6W+C# zrw=*eF~cFZXfa>4F|_tt6*^riIb9JQU;Ex34`z^BYM+gQBc6T->tvO?DXscBe z@q7AvK2wVAweMkuObd%~iVhy!1FH*ltK(=72<2@@3P1QC9lj`_i!78pGx-b_KQl~r zxn?c6XvbF)#rl>ckzk1uLAFeBqPVq?b`tL&2j5;#caS);P-Yag4C_44h_A#GY`O58fVKj zD}kf-D54T}7`qlH0BNIy2FuQ-Q6B3BP<5J$`1%}0gxQ+nPP0A{9XW==f%?B_KY(Cr znGu=!Dpuv~SqzfaxFfi)cBi<=_~(P+dJ;1>EMuoM;szUc<~TUdZ;PcI@Gs zg{DgRo)V`0^y-f7H^K^KQ2-O{+ph-$2HB-WSZ}y}c^aiES$PhcRH1uT$0l6(=D5Df zkl#0pBt;)A!c_|?P~9`f1lD(=q}%7yn70liyS;O)h`eii09l6z%&3k324}Q#4F-bL zXo!bvb$~r!ZK*B%Ax8w<=}740@raAVp$HPF2T>gX+QN-2REQTb5i7BsGPM&?@i4-o-tVT1gJ>4Ob0t;k-aiAVcik3!Itpzh<~=_gehcOeX+ z8WlxgfxS)Z?95R+4^87l@Bx)E-f?|w!X%IbVY!&5g8ba4talr-V${wY)olv8pDCa^ zEJgnLwV9HAhic3Dsm+zaxQ}_{e+ZvGW2!Vn5PwFw@!XIjP58)Kk@8`po`MyC(68_B#+{*bJKQrWuFxd>Z*- zn{iGQcZi{IHK>fRHiQ&Y3M)@9%^^U*(37u~ZvJ^V=nqVxa<3L2ru5wfbm!v|Ykl9?nfBZtBL+zEd?Md@91*cyE--Rvq zSPdqB4v%YPy<}^NpJ%Vldo=4>9ULDm=$N zWjc&0N>8-Xy=~CuKuOL@!Sg*^ry0~FG0ClR?g19`2!PbI_>%AhDpcGd(=yd3wIzh* zK&g199#<|kswYtj?rRx=3INj*a$1E_X%M`$wn2}l6c$lLWS@o$sjlOLisXfBR4ge~ ztm=>tw0F^&eccByGkK1wniNO^9vyYKC28WRlf-)f2QzU zak4w(=&ZP;P`FxJ+Qw=jNUuRms{i znK?>f0c0hpv)#%2L~#EvB_aY@0W~DA{Gepf*#_2`13a4$_ByHZ+-|_HZfykN?mA{2%}O zfBm<2{d6=R>_1y@?d{*QSGLG}hyNW4K~r@P~CfN)n|-f$AGix+&%V`5xa34i+$ub%S*9mDVbs*OM2^6j4O z?}an>vzCa%BNo1Xnu)J7@SU~Bw+;MV-`q|2s|}KYIg&AFX;7koab$yaYGow_9K8z!dM=p5aYzEDyZ`IIQ}^a_?ZmJLgqkTkC# zj3Rdz(H~+k``9Jq*Drz2{yi@sX9QJGnhxBe{w<>8EAAPHbeda)wB929#PUvysNi!T z->LQTL}qkHiQy!*qJfQ=p4VEXzone%Ubklm{mSg2iI;yJ33D822fSbP_Od~a;mZX_ z5a>$L%PECy<<$&!dFIL3-|kn0@~P!lj676wg)|{MJrM|#m)|(*HvlQej6hGu(nJfQ zHHsL>s-5+0ZYX!#Y2FYwK^5N!oeto5e#fXg;)7*;WsWap$PvrC`9YB?Qt+=7ng8L6 z^;7a6!*7RIen0{r&5H7UNZS&Qcy{0~cCRFnDp8|2A`E2 z;m$?rocBvW^*f)7#(`(!+?PN8w%)-oQ=9PT$0hf=Gz z4pz)AVS+m)-WpbASyKB(*>zZq8(((#e$XD4W>zEy2|Tq9RbWXf@3lV7!{?(29N2_O ztL|&VgX+RjCocFX1iR1u1CFPFCtDIATa^?~9!0|}7-zUkR8r$-@)8t_S;Fi_H|vtf zyHt32#ouZY6nD>MpQ0EGTBAWueZDHDIAVw*-$8`Ph}38SD@icBulIx1j{TP4D#~dO zj<&KyN5Z@3JWr&PSdf-5#rlGXhkkEZ#)!$}r`_*#2zaSYLOuk3WhDPl^s99dh}-91 zUR8x`Wk)RPLQ41{z&r0-VO(1q2^ES67NQ^TE_f-&6sa8}i_hDfSF#^30peK-n0?1V zVA-N#M<{!*HbDM1n_5=yc@%`WaX>);pN%YWoL(%R&FMy74-&zOpu?bnX&(HhY-{xp!NV0Q?%YKisJOl-%4B*EKzlhK)&;?`T^> zsCT9^UCT&eEQ1#Xs*F{MoX|WNonbiu2W%;Zj3YT`fl=pGGxJCi0iKE@1E7L>ts%m# zZA+C4i>%))Td8b~vx3YO-jb*iSt2SV%bNmR+^mWWAOQ;Ir9cKXrMiKsaP<pvk7Lv>N~I`G!&6I%tZ`7vVy>pe_Cc8X}iomV@Y?&!wft(J6qzkJf5wE zST0sHY$^*H62ECoTt zKo_#Ij5EQV>8Joz@XD+IO5nSi|Z7ThBA&m0n zxQ^GIYb7fZCf4#Du;ivo$O!3lqa`3BTU#TDYIS2+Q0P>&vGXoi6jM{8l!q(~UP&Y< zQhhYrJI|)V2Mh0kBwoEmf>PwwiYP=f*@lS_GA6dQdXZTbcp;K~nd?|~!;l+lRnT)4 zS-tKes#9VGc1cVVTj2ObIjT~|3%0~r;$DBw8Q<=kX)XLvff=1=tcs;!EnX-JJl5RjkOU^E%NR1?X;CHS zqBT(wsqv2aT7r~)(sM*(hD35;1&Yxs4YTVi;@gD>rf(!ZO z8^b3~WhWDxa89_eAE*?hn~g|Q+>YRCzcWLOi=FnN1hGO_@&F!Wrq`oEC%m#QCO-Vg z?iKlkO|+25sYnQyaTCmnHL}f%yGUa12S1W~T}9taD{_I*<`a7e8Sl4t%q!??T7c&< ziW>XMn~#Z_kc2C98D$%#0Q@;v4Qq|KCYkGMBCLi<#D;33#KFpWCjo$X5vF!7 zZm1Ik%_z<>o5u?2*kxrKTPVU?Zj`84T=2>j<(ZTlg0s|k2N$91X(6hcODiIi`FaAN4 zaIvFH(DJ!?=8rF0FH*Ymal(>N91j;}cjJ`EMZ!yil5I%fF*nq3Uqph>FUQ!bxS-n9 zv;hYnz&G0PCf9-nZ&8hK1FA+eU6b(Dx*|%mq&a3#`!JAlS8IbVUooc!w0mhRGLRV> zK<5Q02Z8zH`H@tdbc1Xj=|evAAAl3pIBZ}Du^1Av3{16L*|CmtPONO7*Q%#A*D)Aw z?h?iaFn1^~z6KNDhl*UPPFoHtUe4ShX<}Y1^V=9)UPeRSO82Y4(M!UpFbTf_#{o_3 z`XB3fkKkGj^QN4U4OO02jR0IR5ufetgTleh+8FxIPRomN4&X{CO~_$P8XiWB-;FJE zr0dJCmo194|BWC-dFrD?@!h|*sp36C#&gv3=F-`$j_^fNGQtDowYYqN*GQmVN66m4QrnjvH005@Qsp=M0_4|4<1qLMS1Wue+g|S79}q^ zvPx1{Gdj7_g(zLTXCz{uv_(%AHvAtz@Au;(v=;>Ga|KMvGWua&=qK61 zZZO3G1=h&($U=jSyq^vq1*v1+4t_EF!icMF-VqiUr6L9#Y=6%=6Q*So@5FsDM5SQ@ zF(aK^4##o2m=%u>WaY#UWxX!)l8HX|JU*8#ABNxd-5*=X^HP|J5!mtL?Sb2ARkOFj zwnN;8$Z_ECg8;zO&1>&a{J)U{psI?S_%B~T36iYp5V$iAQE|*}ARH4DP;IPLu2d*U zipGCA8N{dF!LmcroS#?~A7=)8?^JE(vBVZwkT4C>@ud@?d6;?9sbB6ILX|WHM5%@L z8YUN~c!!Be5|t!3O4_m_vi1w8SP$oO3BQNza8Q~=3}gXSi1Lpr?)v94gt&K9ic6)y0&%Si10RTLHdP8pl6uUT)YDw#suAKt z$aKGAJ@lBC5mgG7(-$$$mLv++9cIN#MF|pF%3@=G(1tE^;vj)Ocv0qy%~3?^muSh z^7bo}%Qs<__)xu7>^&v&C$fqfVkR6}!WZVS_6H&Y!sqjl4?g&_F*CB60NU~VLMn=J z79z+r9)f9QQ4lpOX&+eRXX%URvo+T+aU__4mJxR*c4j9(E_xOm+juG3Y9#+~y(c21P96I1)?_O|Rcv35% z9{PF+zYoG#Fo(&E8JX;Hz?fG8LAy+V52ul+W@0*aa~BNQI4sSX>?*rDQe@pZh~Qo* zzrm-nHIh-l$Jlu$C*M1ot)UN{Y_)1iDPKrU4pJ=PBe5T1I#B{SGzDkzT`ZJI8Q2gP9sE3&Es!RMermj+8&6z^Z~P=CLma)Zde~W+2wC|83Vxtb zm_NX{J_KveV4s z$Gi6h5Kc%1(Ah?Pk9u1 zy^Z7r1HnuWg2m4cp0 zh{0^w7zw<<;yD2Ue*U2p$=e#8PB^lM_>)ow2a&ZcjmNK40>IOIBXX>NR(USy2rd}6 z&f~XA6g>%E+FsEWt(2Y`@bfP?md~#Y2Un}6fT4{)c0?OT#37nMfuJ*YE?GR|&qPom ze*Qd4z&7E@sO0~oA6x!QO!R@Rv5?pPv&!>(kU!tH(}ZKn8l;1W1VtDk2As{SGjdj4_rzy_d_yMz`7`uTH;rw#gf29(nh)4Cv(N?S+lL%}8B zf>J+EFtw8(=%_pR^Ku2Aj`qmjC#A5cv0xeeR;ctVm4*L9AU zPH;N^S!3=Pc(-GIA}b-4B_=E3QabYDzkmm58eA`(Lg>flU?WGa2q}N~IUI1TjSk@- ze%`=^+nlwLEcp)#PP2G^ z$t%7z$tOVy&J>gA(JuoY5j8&S_mefblTys+m2(?&SqiFvph2?RIR1X`;fK)2a zTL8a;RUT5<8Gr2XehaPdl)R7uf2w4T4UQLfcE)^CptEed5|MxYb3#&S90^fjpP4ZU z#M&0U^W&!~7Wa#^Kw6OzftX1JbB$KWA$MTY#ar+jl}wa9R>e!FaHX)KPjQ6bfOCFO zGDl6LCDGm41x^Z<7E5@HcgF1dEd7F`*%z6C_)`ll=0cyja3YgZcp(u+0ze3~-zgP4 zrBOQO7j=k#{GyeJf(+vSH-@%k)UAZX?2Rs_v{j{4vH@e$jjYkdlxM7z491;k`1%sj zS%eh~fAjf==1`S5pdXZ;dnp(i-6e1#{J8-=!uD#ZcXSlM9~->(0?a@2m&1j={d1*n z5naN-)XY{NltLr7+JZ1g^i`!a;};zAo=uZd81ct10HJu6NxG02vREZqI>>CCRoN=V zT3Er3;{y_rtWBQZNx_Qw9W?+z0~-0;l!65Yz~vmiXf@y;KW$%lW&I1L2maJT7GOzy zQSKW3v|H5^0WkOOGFWO^;pPHURA7%EDpXOoP(9}_l9eS29fC!#fg;n|Tu3KmR*At# zt;v(<&PS%&7Agx~ToG6%3gSu?OR_)T)ECCu>8F;hF*3Q5Rraq?=*|Gbgm&4bFp`AI z=eilq7K$oA@?afleqWKEgIp~mZuQ1VC6})fnl#hS&tYJ4p zq_?muBzLTzA)1wQD&4i0p#*5U*pWwhWdvR~#cc|PM{0@Q|G}KRgq}Y{A!@nbT zW@wynReKRBPu1ZGBf^5;jK)zV3K~D<<8dn5mfnmZ-jRvo?u8i@PRvZ z@&nrWz13A}g3*Bor5)MDuJHFxJ&IFgz`Zx}`AmGOHo|WVz;${@`&ig}Y}lMx|Cm@%mlF$?_guvg6zhO^uMJ0Rr&(Fl znvWY$<6-h%o_Bwf%>F)f_=SM0T2-5K5gw6^lz;kqR%{EL4ax;1_N5fMTAIWT7x+po zv*%U}rxeAUNIa)K5dd}|{(|K%+Q64BN}I<*wLISBtfJ#;ZjP)zZjbEiW_OWrJT!J8 z_rjjKf@8air>bJ^seOyLiyVZbRahJ1Q`aeC14G;u=D}0}gR@-swyh=&1L>^9{phx?#iqbZL}|2G4e@HF)95_}bX^BoBU0Er^ZCSoSb_q4OBZYXN#$nsoJ=UZ zJToR5NF3_koc7*}xv2Y)oUT#nW?I=BT`}4%Stc%%sOkGy%Sz#w1gPW6OE$<&!(Cj! z0!x^IWoW32di~(CTTb#je*zPA=`Is&uH_g2&N-2(d(YM``Zl5vWg|e`uj2jdI|n_h z8BXj{tM3n6ENh!zu3?lg5o4}J_1#F5T~tp{?*27x3(fD2BtuLuC$+gFc|!Zfb|VaF z%aS(16eN)StO(urAVv_sMFTjGzQ)@)=gTEJfGed|zb+V0Nw_35>{(=QcuNirMn~n2 z-U*oM1hTt5gXC59ezVWpCjx6Z)ydX+AEYxV(erupb;0+iDpw)$`A`OJR-)vsTe1!l zDNf}|){g#|!|i}RCPmlX59#VYtb2UD_MsP^#E(G=qm{lMIU~yeJg^O=LUYiz!sRkP z-uo)SI(6FI@Pg;-35wazobU>?0xgFnrId#7J-Yy1?H?}50Lu*R zy(%d6vLWee&Kz%Z{lT z++y;T^cY26ZrD3T#tcvpMaEOHBn9q-7*lKeF-bjE>>*J1u2g-3pId@s7CF55_B@QU zvi}klz$sR;a7B)eoB6I5g;op~W5cnuua1RKPZ6@HXwGK*P-iX(8ub8#FuUT~&WAc84k?k9d>Lq5H4V3L&c zdNV-esXo963bXe{0Peua*~JA7A5Pt>6(LI32O?W&X}}_Lfvz8m(^Oa}b}dC>9i8?? z$U;+mymm7eeT?*{bF3_6k8`ZpN|(pLt$h2Q9`xb2Tk2FHcq0Gt_Daz1>rc!>Z0x`~ z2E6;AV$+SXa^O|g4SfRkmc{R5$&zdHs>J?-1n}Tl6qR) zm*|*nC5y}1+OZ@NfXz_H#uf|azCSrEHXBxfEZbCz;L>*FJVH0S=(10GuYP6bP;Rgw zOZ=8Mj24cdgz}e%9NeTVXJbD8B_mJSk|ZDmF*YP3-cmxT(^^> z&GBN8)Y&S1Qs z?gXQ=L$Br{07q)OUH?rio&sEI!AcUNg#&XZrkQrE@{}`k*|qIm1y0Xs0y;vB+f#wxvoVad8xZAP;VL6ba4< zy@3o)iQ6l5wa}UBEnNJ_r|CO`{11Ak@@0mDBIw>_);;M|YJm-A7B?{)%8vB1F7_S~}S2e?(D& z*bZ*kHw3i^*OC)q>tE?KRGi&2vR>f3^bN64k?ErKhy!8%5P#4%w+=8Rs~t8&BY{S^ z3+IKeXu)(sY_Z*e3MHLonc6R>(pk7y_nbTnC>Q;sh;=+bK!d71ErvWBv*iiF^GZ~x z=s~=MsN*g0bTeux|8!Brksg_j8tfgs!f=_k0ui*ioZ=rMW9TmHiptRQ@H2X6t7AS^ z1Z}lB$B;dDB0e%h?OK3y!LHXMM-hlSPoBcD>7HoeZuAhEi{{}W&$rhzo$hw=_AKvR zc{ZIQtE1Z}M@=o6GCq}U_Tp;h3frOqC%f$yE@y3kAgT}gq0AM=x3aPUp=1+KijwF> zbM{S(*`8kE$^l3_kGhDRdl&uYAReoZ6USGx4rv4F(#c?YgiAEY z(9**9%5cLM{?8ekyf{kpxeoBfYG=O7Z{_bW(*u{rdqlE!3|879dMR}ZNp7tI5n8@r z^YIX+p9Ge83sqiSIFekfs$Y19Za6HWUMJe9>X@-p+0_*=KKu)n0Ddl8XaKawUs|5h zg4sn)(3sy!i5#d6*KO+oD;aO9Ly*(d zGI|J?bxe#{vInLKT-St@o2>>A>7pYxE3bZ>xg{ISkasx#hQ7Z{+$oG$YF}_r_;qr| zmmM?IfU#G6=^d#jeTfS23{3*HU@*pYN`4CF(QD&#sgv{U%61cEnj00oF3mBQ8;8i} z5*5I=N7Af(31H;)dEaN8p!7&0={z}nxiu7$heM7$nBJK6$SU}^=V1t^NTgwvI6Ury zV0D4gQ1+b)Y~-RKcdb!)x8$<|5k~q;>CEEXk3|6oeiMuCRXnn-hxD2}4%gm`6u(iv zRScg$w_g`!viFw~M6eSRdDSTdPC4w7a!kFYa2_f6Lg^+EODE?zKfZ18N>Z<*>Y ze6p5>%oe(ad#O<|m55q zs<#Z>g0dU+x><%0$`+lOd_#A{#;eQnAu>biQhQ%?p6fV2wXKNa!J5)(NvW8*s(K!y z>RmJPsZud`8>Z4SyF`8Cy3p4fec_5Jh?bX6i0%GFtm54U75}s~stj0hwVMhmo{!1Q zmu>*idDSzfv>8$+ojuKJD7@9X8L%%%hF9BMZ%Po(2Z9?SL4cnPtsTyIcrITTKiTb$# zP8A+lRUoY>KiQU*j7cX;TF#d%qod^xR2(iy5%@BH;X;5P5anEwV~q-Yv2wrJa(Yy^ z1U_TCAE@#KXa%jxdIj_HiKk6(&c+dcr!`@gp$9mZ0Nd2({c3Ss*LQxNnz$ z9?B(PcG)^n$RkC7!kJB4! z3o$-z>DSwPcM4U0s2lcOqP{=kzg7M!gnayw6B>a^3Djiq^VSqQfOzh#OJKKB&T(1F@3(?cy;0!IAyvB?2a^r(zDgNf$ty^ zbJ)se9cP7u(I>`?6yoAr+X-}%6;jKE#fv+LkToYJ9gwP%S33?`Qh45fkQ+X&=J(Io zh79(`yt0hXJl&O;Pz3TWu(wjXUp^+{#IOi^6elfjUm%W=on`4t6&@PWjP`ENMo{ET1G(roQ_NMa2;E9aON?#4Ol+RXLjf&$Jh&u}TH%jX@G;r0@_fC4Kkxra`gEE=Ax z6bTJ50GRCU2v{U<4P4PH$?kAdxGT6yV?~xlJ704;%b_;KI+O`JPtXGjid;}m#-R>5 z$K4qgQj?D3TL_h_TXq%&m+PY7)AAVqf8`8DtTfC-X!Aj(3SXi^8zyH#hMl5$4jyNe z$Pwa0)9#d@b4k%}*>x@iWXL>NP%j1QtTzZu3UoYoSv-za{~u*%l4QBgWaquS@eOe*P67HkP?%IuP8nFp|qZCD3 z7<8v{thbTFQN}z}&kJ30?L)?~=-xdBr>H|QE_t$xAV`)2E9bH%jutTWzOZfTj$H3o@+s6WE_IvzX^Pg(bpSrm1B>cB5CpEszLHI{p~>R1POk+K)8_T_nGVSbPm1TExmReC)iDg+;f^^ z%T=4OQtl;)Xm)a6i?YVFk9@bPv|(djsx?5KkL~=bY*Kl>oW>J5%EIY0EA6Lp90vuh z&m@PV`Wdu|wR$F#UW?-nU{f?i1FK*UPArXJ~^bvhgWD7T=sRs3_*+sV@=p z)x{h91~3?3W+Md~=2iHlHaQA}p_RQl$hP^Ve21}sGZPz@bLigtl_P(X+N)=I48`@i z(D%!>$u8@xz1s?6pRXPF&&n>;KTAaBQz~`G=8nNV@2?LKC7>8V>Z!;iybsWx++C zAHENeAV5li7e`28M1IOiyO=w+V7KCdQx&K^r#tW=_wYAh9cizi2fn}S``AoEL+B4X z;A5PWOFUB!<91IE=$dGbqj37iZbL!Rw-3-w zKo^}Z)lq)Zt7hl`>8x}l6;Pu;O>d;A?EgSb-cSGiv|W2*HZ^_~^ptS7KMwgA#V2&i zKoL$9L4pLak`-T9V>yGtjUv%h7{AlKxFgOun&?Kl-(i0|TbF<93sQj>F=gYcZm0wX)coH`UK+f=DSe`$NCZRhp)XdanPFSkUjL#}YW z2Ar4&eOdyl%r`#?MF)fVg)lb%l9MvIDwk@vLadT|>U*P<6@z%b{X93N{k`Bx2yUt~ zvC-wu_;&HR-?(4pA0LtysA*?!rRYh2fBDJQ`QyaMUs=B+)yikHq&A++?E%HvYU*J&M`r32u=C``;xfIwwlb&4-3lm2hFxI8 zotdxT8)xx-LnmVXBnqx>XJySE=czb2;U8p=h>%ZTwOMDT5su{w54Z=T8TuRR;ap8&D3@F(z1;cr z*F~H_>vM&OE8#306>QEy9onu0YU6fSr0G~8He!N}-73D%1_G|<+gELAL5nzpG|^Vn z)~xq6P>H3~$G7lU7db4Zp0F}oHV>%jxqNpk3$vL;g<^A7a9QA)WEmSWX1x=a%gvLx znF(5v?9Asqw+i!vyE=BhNrh%#zbLPAivFlGj`B96Jg8`OJ*|!j$(IA%s1Mo0$Zf!f z6S53A>bRcP6GPA&w+l*$7(P73+h7f5IoTaK_Ja4wLT<<|YQZ+i@s4)zCtf=MqeKMG zVPd?IQzocCu_MyN`C5L?$FiO+vpTH*q+Eo;T%hRACusf4l)s2P%2_ycjA4aQc^5bc z78`UWgC!CyXYAk)p&320kRarX5D*bE*koN7J$3_md+3DV-&^+z!(ZNk^C|hMc=KK7 z6QteZcw-CR7IDtzjJeeS^Hf%dc@T%PTu7^V@ZCQd_SIz(d(i>gnUOSxupNb}tF{LA z$U%v6wmFspmZA0*j=ni+6=D+}bqr9$8HILxC5wQi`$|DFVd*|mNyR>dAkszF+g}uH zzQ=K?o*OaTAgWN4q2b>qtb0A>Qwf3|wBeOy@fJg|)x%I|s;*2p?DRwyAqug7sb$ru zy^VeVcp8BU8S)+B)Xx(HOb=fxxU3%O058#}w1qGJX5(5BS15KhEK9b6{Vif$$L8EI zqSlWct0=o%DKqPAc&q^^k93G#LH4l6=;u*h#@ zvh0h0B(o4|ct1-%Wm2I43Gme}pTjs7s0k5UNylc>UAcCsp7fk0TZMoDk`{fl#mxd_ zJJH!=x zdf!1_=>E-XuoV1#*i0nOsnm6pFIcNq-#<~3!;juQU@)8aj$pkp++$*5hdN8Lw6Na< zw2;43pwn(*;BJ~B#+5Y)sXYtQX#;&$n#^C-(j)p@DgX~y42Aj>4Wy~kDea>^f`aLHw_GPH4 zURD>%o;=J2)@!meNtrMn1XOCU_>=vtLA1E+cr&tT3jCU={#mlJutK@zLQ1Qw8dMr> zvHhEEoIS=S;iu9Ny6SHrlU%$;FJkj=?Hs(OVpDd-NoyF2Z>|o>;2Rh3bnV?OOIb-3 z;8$);9w61C>qSUV;K|}460+1$+&jd*MnbED_#l0-`z8Yd_NQZEgjAG#$72+Mvus4f zy0N4rl6co|aH0MBB?QXu$f@TM#|Nh#vQJx!0+l{(L*FimcK49LX>v19_ljomHbt=h z3kE}taKP;~PW{fD_W3w1plC*(j7_>9WLS4))TWv!4HiZv3|rm)Dgx8$%4?&JA#w+Y|UbxF|bR zaRV0D8??pQvF~@zR)8MD(Ul^;nD)RT781e{h2(4fgI*x3B!N z3K}xu;A~@N)y5E<&ySjvcaI>?gS*|asLp(69l#cCPDXN^-Aa%@7eg+IwMz!7g;d?A5Bgthi^!h|tts zMKR@`w=1ey`v@UA(ZXzovt&_fR86g(D1+JZ`LgA_{&G?KArU=?M}G^2dYOw1ZVk0Y zqi4qyZG8TnsycmieYw$OEJq@!BgC<&AGg;he9Br>Cw(86>E&~BmA=oZHFZwsxj!+G zoPJNb$d*jpXh*qVM*~1Wc+4EP>lF2LZ>3x>jZw}*J~pNz4=$X+>Ov)xB|=``$#t?j z))PUna4whNPhccgkOfhrQDR(@E1L`MDWgEFVp+y~&z>1dG@EP|i&+u#*^FcJFXzmy z`mID8$+%-llU_1W=l3s9%I+iQEK8y}ClZ+Smn0)MeS;|ysy)B%+GtJN)|sqmF3*v~ zl6C5!%aMTcjth>Yi%WBb9i~itoONyND%{A97A5s)+l6$Yw^H1|Bow%fGatck#i_iH zH&~CRi>#m8d#*F1bL|LVfZNl%c8c8I5kZLINUl#CNLoLk0<&hE4eTtIxRSeTCr*@_ zxMIZMhS#QJ(M71(`n=+G_d_)P=e+J0RrdB#O8mZOMFCelj)J`RJCpO=?YS1 zJO=@HL|x4Jv5Bl8eN^_y$w-T>ZUSSr^0xXupQn72wt3@w;p>NJHDM9{1_7Jx_lcyi z<4c>U^X!AzWIuH$4n>`J(E4r12ppOQ;(3j@bH}>E+o!>~Egxby<|2#9lT;UjvQvjK zHJD_*0#`HCU3*nHCl0yy8l-W}Pazdu4|{@@oZJ&DJv&_}p=z@YFRGbMsj4qEA{A?E z;#%QtGl^4WwsInJkBu0yA$oxLsi$|wL~+1Wu!$wr@VJ9RxW6MJnX<^KPDFsjz~#Y8 zi$)Lie+gt8trks1e7^Kv>evUbOSOt&tJ0bxKb<&+t@j5XufiT>bfo|_Jhygry}(!bY3hrU_N zffcYnzBsL*zq@Y)!G+v6I6_$SPgRQ0?HHI=q$bW;#?uTvmPJSQJxsW6SsVL@x0h;%K#WHePmNtMQ5QLucTIuS z2RfB416#26P?e{1ap4d-6v*KSR=}X;r!7hL3{g-SI%e}UjLgu5&Tj$vK4a>3sL zOD2CTqbT6$?jh{|JaSgFOMCkOJLL$S(#S4*q;AHwxa;LPVJFFF|4ozRB6rV8RpsgW zIRVn+4atE~)Vk++W1xLt3)F|O^>{Y^s+Y~2E$2%u@d?EP6jt;yb*lu@#DtczHbpRg(=m(1aR+qyTc7AN( zB>O^OSR63@xPYzaJ zU(~|WCNxM}jgELyHmWyF{4TRUZn!p_tMAa6E*&2wN0YlcpSdZELCm0B05w3$ze=S=cB zv)@!MTHo8{CKUL z2z-FI0r>ZRx$elZ)V$YPXozj2%42!G&Kee*iQh}7CvuE>SHV6zw*n2py&}d|=cYdU zbndL^TpwXRo>NcU^ZxuK;)<1z@M+Hzf0F6Ph#uIAxQ--TJKK(x6P8o^LMZlqx&}K4 zzs{D?TQKm~N;;kPoj*L?b=rJHsGTe|55O2M0>-YBx57q8;5biQmeF`qo>^^(skQ}(5Xf!#? zI{Q?|<=gg~J9$S=wSyO<5Fy;Ax&9?qOBgUR{sOe@To%^us0-5i;e-yp~Wq=%l@4 zwZ#q!ItBvw27~dU{MrY=6K3Zp01LkWE*>9hpp=mD-_rGVp+LFzv`u%ieHiAA-u?Lqk&5sfNQg-V&|4rg0IcUYkEtLQfYoiv_-YhSO`N6J zx2Q`74p{HC$_NMY5`iWI9V^79DIyxEzbU}w@g6fhR@L{sB7R%VSrMu{GTKAO~`2-R1n3laZS*i5un7L1^_wF*gl zBfnKLHnf9}P#0`6L)Va53H86xApao|@`9D%kXA@s^uDJUV6SIagBmdRx^xzZ#5l{s z13zGK$`S7sUS=e5{S_|?Yyslgfw{FSOI}3h^G9$o_sNn28Mo)vm6gD^YKu+|hUUjl z6>62XO{$e+E-u+S@^{C(;4hF&u1GZr8SBdOrml#CZr^_R{)c4)){?R6YIT6E@Pqe1 zNl}w4xE1?b@oIkH&2syx0-xekIs;avUi>Lu>qRgWCZmwndf$r$dJjfS^2nrI5i7XJ zp_{SFGmo=v!~~NEx1~|}l$^5Swq!*L$WeAD0u?n1q`Mk{ccY)PM$0EFPoEd?Zn@J> z0Lagd?WI!Ks2td;0WjS>r~rp!4^%=YQ`J5^vC1dkn%yqI^&AdyvTHm|Dbd z?%T(LRBcBt+(bmIf(IY<+i&byV-2De`9J6VYua@ngPcd2{=&XNP;ciRYS@Ey-Hic3?$blR4K(gIcGMSh}hW5TBVlC!Zz0LiN>>*o}XDX8BA4fj?BKqjQrB< zkiL2k{ZlC`h9p($Fdl@+CZ)g~HAXu_`|1a>#&QJC`+DszfG^A1-2;PeLn8s&eUETlY3W0PBHHM(eiJYwf48OcHu)&8Ex#!`69(T)z?e{X$IfH(y(z0 zDeYZ@paSc9HxA%A$@e%sC%B~mZwc3jxgjm@)18ZI>va{2f=sKm*gMp7Uu>!MDJ#i6 z7({(QnL&9|63)kFz0QRP`^Kqw8eczEJ59`oo}{7S4B192eZIJl<+xkD%BL$u8U$0> zbk<`w8x0l&co|RM%W?z_R<5W} zGAQgn;VE^o>n@QrP$C*4v=bCVY&u;D01|k1@M(7ZHV;({brni3&YmkJLtMZZ;DjOb zEwr#*HXmcIBEzAX9&O`OVCzwcFQ^+(CnamrL+K-P#=SjecXRUw5$2m5^24theLWu_p^|f?7TE|s2iI%y)Rho5FQg2x4ZQIdx@-f=!F`zmB;AT% zLnP)gG{P|@!+__HuS4a@4yr6}#FmUT{Km_#%0DTSJ{9)k`>#8eQCpQme)zs(Cb8)J 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

    }j|8taaEMcCZ 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 Cwmpvk literal 0 HcmV?d00001 diff --git a/research/p104-qself-owned-lowering/dual_certificate.py b/research/p104-qself-owned-lowering/dual_certificate.py new file mode 100644 index 0000000000..5be2a45930 --- /dev/null +++ b/research/p104-qself-owned-lowering/dual_certificate.py @@ -0,0 +1,129 @@ +"""Independent backward covectors with exact integer dyadic coefficients. + +For each q in {1,i,-1,-i}, D variables remain formal. The four evaluations +are injective on Q(i)[q]/(q^4-1); this is not sampled-D verification. +No forward replay or its arithmetic implementation is imported. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from fractions import Fraction + + +def require(test, message): + if not test: + raise ValueError(message) + + +def norm(a, b, s): + while s and not (a & 1 or b & 1): + a //= 2 + b //= 2 + s -= 1 + return a, b, s + + +ONE = (1, 0, 0) +ZERO = (0, 0, 0) +IPHASE = ((1, 0, 0), (0, 1, 0), (-1, 0, 0), (0, -1, 0)) + + +def scalar(text): + f = Fraction(text) + d = f.denominator + require(d & (d-1) == 0, 'dyadic dual scalar') + return f.numerator, 0, d.bit_length()-1 + + +def plus(u, v): + a, b, s = u + c, d, t = v + w = max(s, t) + return norm((a << (w-s)) + (c << (w-t)), (b << (w-s)) + (d << (w-t)), w) + + +def times(u, v): + a, b, s = u + c, d, t = v + return norm(a*c-b*d, a*d+b*c, s+t) + + +def stretch(poly, c=ONE, mask=0): + ans = {} + for (output, old), coefficient in poly.items(): + require(not old & mask, 'dual repeated D factor') + value = times(coefficient, c) + if value != ZERO: + ans[(output, old | mask)] = value + return ans + + +def sum_poly(left, right): + ans = dict(left) + for key, value in right.items(): + value = plus(ans.get(key, ZERO), value) + if value == ZERO: + ans.pop(key, None) + else: + ans[key] = value + return ans + + +def certificate(caller): + receipts = [] + for character in range(4): + # At the output boundary, each output covector is independent. + C = [{(r, 0): ONE} for r in range(caller['roles'])] + peak = 0 + q = IPHASE[character] + qi = IPHASE[-character % 4] + for event in reversed(caller['events']): + if event[0] == 'J': + mask = 1 << (event[1]-1) + u, v, x, y = event[2] + for r in (u, v, x, y): + C[r] = stretch(C[r], mask=mask) + # Transposes of the two triangular HOST2 updates. + C[u] = sum_poly(C[u], stretch(C[v], qi)) + C[y] = sum_poly(C[y], stretch(C[x], times(scalar(caller['types']['A']['alpha2']), q))) + a, b, alpha, beta = event[3] + al, be = scalar(alpha), scalar(beta) + # The dense HOST 2x2 block is transposed, not inverted. + ca = sum_poly(C[a], stretch(C[b], times(be, qi))) + cb = sum_poly(stretch(C[a], times(al, q)), stretch(C[b], plus(ONE, times(al, be)))) + C[a], C[b] = stretch(ca, mask=mask), stretch(cb, mask=mask) + peak = max(peak, sum(len(poly) for poly in C)) + require(peak <= 500000, 'bounded independent dual replay') + continue + op, x = event[1:3] + if op == 'ADD': + y = event[3] + C[y] = sum_poly(C[y], stretch(C[x], scalar(event[4]))) + elif op == 'QUERY': + y = event[3] + C[y] = sum_poly(C[y], stretch(C[x], IPHASE[(character*event[4]) % 4])) + elif op == 'SCALE': + C[x] = stretch(C[x], scalar(event[3])) + elif op == 'SWAP': + C[x], C[event[3]] = C[event[3]], C[x] + elif op == 'QSELF': + C[x] = stretch(C[x], IPHASE[(character*event[3]) % 4]) + elif op == 'IDLE_ONE': + mask = sum(1 << (k-1) for k in event[3]) + require(mask.bit_count() == len(event[3]), 'dual unique idle stages') + C[x] = stretch(C[x], mask=mask) + elif op == 'LAMBDA': + # Exact character value of ((1+s i)+(1-s i)q^2)/2. + C[x] = stretch(C[x], ONE if character % 2 == 0 else IPHASE[event[3] % 4]) + else: + raise ValueError('unsupported dual source event') + peak = max(peak, sum(len(poly) for poly in C)) + require(peak <= 500000, 'bounded independent dual replay') + for ty in ('A', 'B'): + t = caller['types'][ty] + for j, diagonal in enumerate(t['diagonal']): + r = t['offset'] + j + mask = sum(bit << k for k, bit in enumerate(diagonal[2:])) + target = {(r, mask): IPHASE[(character*diagonal[0]) % 4]} + require(C[r] == target, 'backward arbitrary-output covector endpoint') + receipts.append({'q_character_power_of_i': character, 'peak_terms': peak, + 'independent_outputs': len(C), 'formal_D_variables': 18}) + return receipts diff --git a/research/p104-qself-owned-lowering/invoice.py b/research/p104-qself-owned-lowering/invoice.py new file mode 100644 index 0000000000..a576bd0e00 --- /dev/null +++ b/research/p104-qself-owned-lowering/invoice.py @@ -0,0 +1,211 @@ +"""Complete source invoice and positive ordinary-cost comparison. + +Local algebra/native correctness is inherited, not inferred from these counts. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +from fractions import Fraction + + +def require(test, message): + if not test: + raise ValueError(message) + + +def space(vectors): + span = {0} + for v in vectors: + require(type(v) is int and 0 < v < 512 and v not in span, 'independent nine-axis frame') + span |= {x ^ v for x in span} + return span + + +def local_invoice(word): + n = word['public'] + frames = word['frames'] + spans = [space(f) for f in frames] + ranks = list(map(len, frames)) + hosted = word['hosted'] + require(len(word['live']) == len(set(word['live'])) == 104 and + len(hosted['X2']) == len(hosted['Y2']) == 96, 'exact first/second main list sizes') + main = set(word['live']) | {r+112 for r in word['live']} | set(hosted['X2']) | set(hosted['Y2']) + require(len(main) == 400 and len(hosted['Dports']) == 96, '104 first pairs and 96 second pairs') + require(len(word['ports']) == len(set(word['ports'])) == len(word['live']) == 104, 'literal native port inventory') + require(len(word['initial']) == len(word['final']) == n, 'literal native boundaries') + helpers = Counter() + for r in set(range(n))-main: + a, b = word['initial'][r], word['final'][r] + require(spans[a] < spans[b], 'positive productive helper endpoint') + helpers[ranks[b]-ranks[a]] += 1 + current = word['initial'][:] + [None]*word['owned_fields'] + live = set() + paid = Counter() + lifetimes = peak = rises = rise_mass = 0 + allowance = reviewed_scalar = 0 + for event in word['program']: + op, r = event[:2] + if op == 'INIT': + require(n <= r < len(current) and r not in live and current[r] is None, 'local fresh owned initialization') + live.add(r); current[r] = event[2] + lifetimes += 1; peak = max(peak, len(live)); allowance += 2 + elif op == 'CLEAR': + require(r in live and current[r] == event[2], 'local current owned clearance') + live.remove(r); current[r] = None; allowance += 2 + elif op == 'MOVE': + a, b, owned = event[2:] + require(current[r] == a and ((r in live) == owned), 'actual MOVE ownership and chart') + require(spans[a] < spans[b] or spans[b] < spans[a], 'strict nested MOVE') + rank = abs(ranks[b]-ranks[a]); paid[rank] += 1 + if owned and ranks[b] > ranks[a]: + rises += 1; rise_mass += rank + current[r] = b + elif op in ('ADD', 'COPY', 'SCALE'): + require(current[r] == event[-1] and (r < n or r in live), 'local live scalar destination') + if op != 'SCALE': + src = event[2] + require(src != r and current[src] == current[r] and (src < n or src in live), 'local live scalar source') + f = Fraction(event[-2]); a, d = abs(f.numerator), f.denominator + require(a > 0, 'nonzero local coefficient') + if op == 'SCALE': + allowance += 2*(abs(a.bit_length()-d.bit_length())+int(f < 0)) + reviewed_scalar += 4*(a.bit_length()+d.bit_length()+1) + else: + allowance += 2*(3+a.bit_length()-1+a.bit_count()+d.bit_length()-1) + reviewed_scalar += 4*(a.bit_length()+a.bit_count()+d.bit_length()+1) + else: + raise ValueError('unexpected local opcode') + require(not live and current[:n] == word['final'], 'local complete lifetime/chart return') + routes = 1000*(sum(paid.values())+2*sum(helpers.values())+208+2*96+4*104+4*96+4*lifetimes) + return dict(public=n, helpers=helpers, paid=paid, lifetimes=lifetimes, peak_owned=peak, + owned_labels=word['owned_fields'], owned_rises=rises, owned_rise_mass=rise_mass, + allowance=allowance, reviewed_scalar=reviewed_scalar, routes=routes, + allowance_per_call=allowance+routes, reviewed_per_call=reviewed_scalar+routes) + + +def outer_invoice(caller, local): + targets = Counter({r: 18*n for r, n in local['helpers'].items()}) + paid = Counter({r: 18*n for r, n in local['paid'].items()}) + for ty in ('A', 'B'): + t = caller['types'][ty]; multiplicity = len(t['ports']) + for d in t['diagonal']: + targets[d[0] % 2 + 8*sum(d[2:])] += multiplicity + for e in caller['events']: + if e[0] != ty: + continue + if e[1] in ('QUERY', 'QSELF'): + paid[1] += multiplicity + elif e[1] == 'IDLE_ONE': + paid[8*len(e[3])] += multiplicity + return targets, paid + + +def exchanges(selected): + require(len(set(selected)) == len(selected), 'adapter distinct selected axes') + return len(set(selected)-set(range(len(selected)))) + + +def caller_cost(caller): + out = dict(caller_envelope=0, thin_lifecycle=0, qself_extra_lifecycle=0, + main_normalizers=0, main_maps=0, idle_maps=0, query_maps=0, + lambda_recharge=0) + for ty in ('A', 'B'): + t = caller['types'][ty]; ports = len(t['ports']); roles = t['roles'] + events = [e for e in caller['events'] if e[0] in (ty, 'J')] + out['caller_envelope'] += 32*roles*ports*len(events) + out['main_normalizers'] += 26*roles*ports + for qp, zero, *mask in t['diagonal']: + axes = ([0] if qp else []) + [a for k, yes in enumerate(mask, 1) if yes for a in range(9+8*(k-1), 9+8*k)] + out['main_maps'] += 1000*ports*(2*exchanges(axes)+2*bool(qp)+int(qp == -1)) + for e in events: + if e[0] == 'J': + continue + op = e[1] + if op in ('QUERY', 'QSELF'): + out['thin_lifecycle'] += 16*ports + out['query_maps'] += 1000*ports*(2+int(e[-1] == -1)) + if op == 'QSELF': + # Additional explicit charge: four lifecycle/scalar operations, + # each at the inherited 32-unit ordinary gate envelope. + out['qself_extra_lifecycle'] += 128*ports + elif op == 'IDLE_ONE': + axes = [a for k in e[3] for a in range(9+8*(k-1), 9+8*k)] + out['idle_maps'] += 2000*ports*exchanges(axes) + elif op == 'LAMBDA': + out['lambda_recharge'] += 1000*ports + # The extra LAMBDA reading is deliberately separate and charged twice below. + out['raw_rest'] = sum(v for k, v in out.items() if k != 'lambda_recharge') + return out + + +def verify(old, new, word): + require(old['types']['A']['ports'] == new['types']['A']['ports'] == word['hosted']['Dports'], 'same actual 96 second-plane ports') + require(old['types']['B']['ports'] == new['types']['B']['ports'], 'same remaining eight ports') + require(new['types']['A']['roles'] == new['types']['B']['roles'] == 38, 'E-free main role count') + require(all(sum(d[2:]) > 0 for t in new['types'].values() for d in t['diagonal']), 'no E or other empty-mask main target') + old_j = [e for e in old['events'] if e[0] == 'J'] + new_j = [e for e in new['events'] if e[0] == 'J'] + require([e[1] for e in old_j] == [e[1] for e in new_j] == list(range(1, 19)), 'same 18 complete local calls') + # Bind every concrete local public field at every new source contact. + mains = {(ty, role, port) for ty, t in new['types'].items() + for role in range(t['offset'], t['offset']+t['roles']) for port in t['ports']} + helpers = set() + for e in new_j: + fields = {} + second = dict(zip(word['hosted']['Dports'], zip(word['hosted']['X2'], word['hosted']['Y2']))) + for port in new['types']['A']['ports']: + first = word['live'][port]; x, y = second[port] + for field, role in zip((first, first+112, x, y), e[2]): + fields[field] = ('main', 'A', role, port) + for port in new['types']['B']['ports']: + first = word['live'][port] + for field, role in zip((first, first+112), e[3][:2]): + fields[field] = ('main', 'B', role, port) + require(len(fields) == 400 and len(set(fields.values())) == 400, 'all concrete source mains map injectively') + for field in range(word['public']): + if field not in fields: + target = ('helper', e[1], field) + require(target not in helpers, 'fresh arbitrary helper input for each local invocation') + helpers.add(target); fields[field] = target + require(set(fields) == set(range(word['public'])) and len(set(fields.values())) == word['public'], 'complete concrete local public map') + require(len(mains) == 3952 and len(helpers) == 19098, 'complete distinct main/helper inventory') + # Exact B stream equality after the public-role offset changes by two. + def bstream(c): + off = c['types']['B']['offset']; result = [] + for e in c['events']: + if e[0] != 'B': + continue + z = e[:]; z[2] -= off + if e[1] in ('ADD', 'SWAP', 'QUERY'): + z[3] -= off + result.append(z) + return result + require(bstream(old) == bstream(new), 'whole B stream unchanged after offset relabeling') + require(old['types']['B']['diagonal'] == new['types']['B']['diagonal'], 'B targets unchanged') + local = local_invoice(word) + oldT, oldP = outer_invoice(old, local) + newT, newP = outer_invoice(new, local) + for rank in set(oldT)|set(oldP)|set(newT)|set(newP): + need = 192 if rank == 1 else 0 + require(oldT[rank]-newT[rank] == need and oldP[rank]-newP[rank] == need, 'complete rankwise target/paid delta') + a, b = caller_cost(old), caller_cost(new) + old_upper = 18*local['reviewed_per_call'] + a['raw_rest'] + new_upper = 18*local['reviewed_per_call'] + b['raw_rest'] + scale = 18*word['public']*104 # #6936's explicit per-input 1125 conversion reading + require(old_upper == 832255648, 'exact reconstruction of predecessor reviewed raw count') + require(old_upper+a['lambda_recharge']+scale == 847550640, 'exact predecessor double-charge reading') + require(new_upper+b['lambda_recharge']+scale < 10**9, 'positive complete new conditional ordinary budget') + return {'local_source_counts': local, + 'old_targets': dict(sorted(oldT.items())), 'old_paid': dict(sorted(oldP.items())), + 'new_targets': dict(sorted(newT.items())), 'new_paid': dict(sorted(newP.items())), + 'target_count': sum(newT.values()), 'paid_count': sum(newP.values()), + 'rank_mass_surplus': sum(r*(newT[r]-newP[r]) for r in set(newT)|set(newP)), + 'new_paid_rank_mass': sum(r*n for r,n in newP.items()), + 'old_caller_cost': a, 'new_caller_cost': b, + 'old_reviewed_raw': old_upper, 'new_reviewed_raw': new_upper, + 'per_call_scale_recharge': scale, + 'new_double_recharged_raw': new_upper+b['lambda_recharge']+scale, + 'ordinary_margin': 10**9-new_upper-b['lambda_recharge']-scale, + 'owned_query_bank_count': 1, 'old_outer_query_lifetimes': 608, + 'new_outer_query_lifetimes': 416, 'new_qself_lifetimes': 192, + 'selected_kappa_change': False, + 'status': 'Conditional source invoice; no native, rounded, physical fullcaller or supplier admission follows from counting.'} diff --git a/research/p104-qself-owned-lowering/operator_ring.py b/research/p104-qself-owned-lowering/operator_ring.py new file mode 100644 index 0000000000..20acae64a1 --- /dev/null +++ b/research/p104-qself-owned-lowering/operator_ring.py @@ -0,0 +1,140 @@ +"""Exact forward certificate over Q(i)[q,D_1,...,D_18]/(q^4-1). + +This verifies an operator identity, not values at sampled D substitutions. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from fractions import Fraction as F +import hashlib +import json + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def validate(caller): + need(caller['schema'] == 'mixed-root-caller/1', 'mixed caller schema') + need(caller['stages'] == 18 and caller['ambient_rank'] == 153, 'fixed stage/ambient family') + occupied = set() + ports = [] + for ty in ('A', 'B'): + t = caller['types'][ty] + roles = set(range(t['offset'], t['offset'] + t['roles'])) + need(not occupied & roles and len(t['diagonal']) == len(roles), 'complete disjoint roles') + occupied |= roles + ports += t['ports'] + for dg in t['diagonal']: + need(len(dg) == 20 and dg[:2] == [-1, 0] and set(dg[2:]) <= {0, 1}, 'target domain') + need(occupied == set(range(caller['roles'])), 'complete arbitrary input range') + need(sorted(ports) == list(range(104)), 'complete disjoint port partition') + need(F(caller['types']['A']['alpha2']) == -1 and F(caller['types']['A']['beta2']) == 0, + 'exact HOST2 coefficients') + stages = [] + for e in caller['events']: + if e[0] == 'J': + need(len(e) == 4 and len(e[2]) == 4 and len(e[3]) == 4, 'joint contact record') + stages.append(e[1]) + for ty, touched in (('A', e[2]), ('B', e[3][:2])): + t = caller['types'][ty] + need(len(set(touched)) == len(touched) and all(t['offset'] <= r < t['offset']+t['roles'] for r in touched), 'joint distinct fields') + need(F(e[3][2]) == -1 and F(e[3][3]) == F(1, 2), 'exact hosted gauge') + continue + ty, op = e[:2] + need(ty in ('A', 'B'), 'event tag') + t = caller['types'][ty] + arity = {'ADD': 5, 'SWAP': 4, 'SCALE': 4, 'QUERY': 5, 'QSELF': 4, + 'LAMBDA': 4, 'IDLE_ONE': 4} + need(op in arity and len(e) == arity[op], 'exact opcode arity') + touched = e[2:4] if op in ('ADD', 'SWAP', 'QUERY') else e[2:3] + need(all(type(r) is int and t['offset'] <= r < t['offset']+t['roles'] for r in touched), 'source role domain') + if len(touched) == 2: + need(touched[0] != touched[1], 'distinct scalar/query roles') + if op in ('ADD', 'SCALE'): + c = F(e[-1]) + need(c and c.denominator & (c.denominator-1) == 0, 'current dyadic coefficient') + elif op in ('QUERY', 'QSELF', 'LAMBDA'): + need(e[-1] in (-1, 1), 'signed operator orientation') + elif op == 'IDLE_ONE': + need(e[3] and len(e[3]) == len(set(e[3])) and all(type(k) is int and 1 <= k <= 18 for k in e[3]), 'whole idle stage set') + need(stages == list(range(1, 19)), 'fresh ordered joint stages') + + +def multiply(row, a=F(1), b=F(0), q=0, d=0, modulus=4): + """A row key is (independent input, q exponent, square-free D mask).""" + out = {} + for (j, p, mask), (x, y) in row.items(): + need(not mask & d, 'repeated D factor exceeds the declared square-free domain') + c = (a*x-b*y, a*y+b*x) + if c != (0, 0): + out[(j, (p+q) % modulus, mask | d)] = c + return out + + +def add(a, b): + out = a.copy() + for k, (x, y) in b.items(): + u, v = out.get(k, (0, 0)) + c = (x+u, y+v) + if c == (0, 0): + out.pop(k, None) + else: + out[k] = c + return out + + +def expected(caller): + result = [None] * caller['roles'] + for ty in ('A', 'B'): + t = caller['types'][ty] + for j, dg in enumerate(t['diagonal']): + r = t['offset'] + j + result[r] = {(r, dg[0] % 4, sum(bit << k for k, bit in enumerate(dg[2:]))): (F(1), F(0))} + return result + + +def replay(caller, modulus=4): + validate(caller) + R = [{(j, 0, 0): (F(1), F(0))} for j in range(caller['roles'])] + peak = 0 + peak_row = 0 + for e in caller['events']: + if e[0] == 'J': + d = 1 << (e[1]-1) + src, dst, x2, y2 = e[2] + R[dst] = add(R[dst], multiply(R[src], q=-1, modulus=modulus)) + R[x2] = add(R[x2], multiply(R[y2], a=F(caller['types']['A']['alpha2']), q=1, modulus=modulus)) + for r in e[2]: + R[r] = multiply(R[r], d=d, modulus=modulus) + s, t, al, be = e[3] + a, b = F(al), F(be) + # Simultaneous HOST update uses both old rows. + ns = multiply(add(R[s], multiply(R[t], a=a, q=1, modulus=modulus)), d=d, modulus=modulus) + nt = multiply(add(multiply(R[s], a=b, q=-1, modulus=modulus), multiply(R[t], a=1+a*b, modulus=modulus)), d=d, modulus=modulus) + R[s], R[t] = ns, nt + else: + op, x = e[1:3] + if op == 'ADD': + R[x] = add(R[x], multiply(R[e[3]], a=F(e[4]), modulus=modulus)) + elif op == 'SCALE': + R[x] = multiply(R[x], a=F(e[3]), modulus=modulus) + elif op == 'SWAP': + R[x], R[e[3]] = R[e[3]], R[x] + elif op == 'QUERY': + R[x] = add(R[x], multiply(R[e[3]], q=e[4], modulus=modulus)) + elif op == 'QSELF': + R[x] = multiply(R[x], q=e[3], modulus=modulus) + elif op == 'IDLE_ONE': + R[x] = multiply(R[x], d=sum(1 << (k-1) for k in e[3]), modulus=modulus) + elif op == 'LAMBDA': + R[x] = add(multiply(R[x], a=F(1, 2), b=F(e[3], 2), modulus=modulus), + multiply(R[x], a=F(1, 2), b=F(-e[3], 2), q=2, modulus=modulus)) + peak = max(peak, sum(map(len, R))) + peak_row = max(peak_row, max(map(len, R))) + need(peak <= 500000, 'bounded exact replay term ceiling') + need(R == expected(caller), 'exact formal caller endpoint on every input coefficient') + encoded = [[[list(k), str(a), str(b)] for k, (a, b) in sorted(row.items())] for row in R] + return {'events': len(caller['events']), 'independent_inputs': len(R), + 'D_variables': 18, 'q_relation': 'q^4=1', 'peak_terms': peak, + 'peak_row_terms': peak_row, 'endpoint_terms': sum(map(len, R)), + 'endpoint_sha256': hashlib.sha256(json.dumps(encoded, separators=(',', ':')).encode()).hexdigest()} diff --git a/research/p104-qself-owned-lowering/owned_lowering.py b/research/p104-qself-owned-lowering/owned_lowering.py new file mode 100644 index 0000000000..db42bd048d --- /dev/null +++ b/research/p104-qself-owned-lowering/owned_lowering.py @@ -0,0 +1,119 @@ +"""Exact QSELF source expansion into the unchanged lifecycle Event alphabet. + +This is finite-template construction. It does not run Gaussian payloads or +claim that an opaque Python callback is a physical implementation. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +import hashlib +import importlib.util +import json +from pathlib import Path +import sys + +ROOT = Path(__file__).resolve().parent +spec = importlib.util.spec_from_file_location('qself_retained_ir', ROOT/'vendor/source_ir.py') +IR = importlib.util.module_from_spec(spec) +sys.modules[spec.name] = IR +spec.loader.exec_module(IR) + + +def require(test, message): + if not test: + raise ValueError(message) + + +def expansion(caller, site, port, bank=('outer-query-bank',)): + require(type(site) is int and 0 <= site < len(caller['events']), 'actual QSELF source site') + raw = caller['events'][site] + require(len(raw) == 4 and raw[0] == 'A' and raw[1] == 'QSELF' and raw[3] == -1, 'actual current QSELF source class') + require(type(port) is int and port in caller['types']['A']['ports'], 'actual source type port') + owner = ('main', raw[0], raw[2], port) + require(owner != bank, 'owned bank disjoint from public owner') + token = ('qself6937', site, port, tuple(raw)) + events = (IR.Event('INIT', (bank,), token), + IR.Event('COPY', (bank, owner), token), + IR.Event('SERVICE', (bank,), ('query-in',)+token), + IR.Event('PAID', (bank,), token, 1), + IR.Event('SERVICE', (bank,), ('query-out',)+token), + IR.Event('SERVICE', (owner, bank), ('SWAP',)+token), + IR.Event('CLEAR', (bank,), token)) + # This one-input rank-one fragment is a structural/lifetime check. Its + # target is NOT added to the enclosing caller's productive invoice. + unit = IR.Unit('owned-QSELF-fragment', ((owner, 1),), (bank,), events).check() + return unit + + +def check_expansion(unit, caller, site, port): + unit.check() + target = expansion(caller, site, port) + require(unit.roles == target.roles and unit.owned == target.owned and unit.events == target.events, + 'exact source-preserving QSELF expansion, including ordered SWAP and clearance') + + +def inventory(caller, word): + sites = [(i, e) for i, e in enumerate(caller['events']) if len(e) > 1 and e[1] == 'QSELF'] + require(sites == [(457, ['A', 'QSELF', 0, -1]), (575, ['A', 'QSELF', 19, -1])], 'complete pinned QSELF census') + records = [] + counts = Counter() + for site, raw in sites: + for port in caller['types']['A']['ports']: + unit = expansion(caller, site, port) + check_expansion(unit, caller, site, port) + counts.update(e.op for e in unit.events) + records.append([site, port, [[e.op, e.fields, e.token, e.rank] for e in unit.events]]) + require(len(records) == 192 and counts['PAID'] == counts['INIT'] == counts['COPY'] == counts['CLEAR'] == 192, + 'one complete copied-bank lifetime and one rank-one request per instance') + # The old local source lowerer accepts the new native word structurally. + # This checks operand/chart/lifetime preservation; it is not a table replay. + events, local = IR.current_local(word) + require(local['events'] == 71144 and local['owned_lifetimes'] == 54 and local['peak_live'] == 43, + 'source native typed chronology') + unit = expansion(caller, sites[0][0], caller['types']['A']['ports'][0]) + names = {f: ('actual-remapped-port', j) for j, f in enumerate([unit.roles[0][0], unit.owned[0]])} + remapped = tuple(IR.remap(e, names, ('compiled-fragment', 17)) for e in unit.events) + lifted = IR.Unit('remapped-fragment', ((names[unit.roles[0][0]], 1),), (names[unit.owned[0]],), remapped).check() + require(lifted.events[5].fields == (names[unit.roles[0][0]], names[unit.owned[0]]), 'actual ordered remapped SWAP') + require(lifted.events[3].rank == 1 and lifted.events[3].fields == (names[unit.owned[0]],), 'actual owned paid recipient') + return {'sites': [i for i, _ in sites], 'source_roles': [e[2] for _, e in sites], + 'instances': len(records), 'IR_events': sum(counts.values()), 'event_counts': dict(counts), + 'private_query_banks_per_live_unit': 1, 'new_productive_credit': 0, + 'patch_sha256': hashlib.sha256(json.dumps(records, separators=(',', ':')).encode()).hexdigest(), + 'local_typed_events': len(events), 'local_source_events': local['events'], + 'local_owned_lifetimes': local['owned_lifetimes'], 'local_peak_owned': local['peak_live'], + 'SERVICE_registry_installed': False, + 'dispatch_scope': 'Relative typed-IR expansion only. New qself6937 tokens need an exact provider/table registry and header/format binding; old source-specific binders are not reused implicitly.', + 'physical_fullcaller_executed': False}, records + + +def adapter_records(caller, word, bases, omit_translation=False, omit_inverse=False): + by_port = {row['port']: row for row in bases['records']} + require(sorted(by_port) == list(range(104)), 'complete basis-port dictionary') + checks = 0 + for port in caller['types']['A']['ports']: + row = by_port[port] + q = row['q']; basis = row['basis'] + require(q == word['ports'][port] and basis[0] == q and len(basis) == 9, 'actual native Q source and basis') + require(all(0 < v < 512 for v in basis), 'nine-axis adapter domain') + require(all((a & b).bit_count() % 2 == (i == j) + for i, a in enumerate(basis) for j, b in enumerate(basis)), 'exact orthogonal basis') + def B(x): + return sum(((a & x).bit_count() % 2) << i for i, a in enumerate(basis)) + def inverse(y): + x = 0 + for i, a in enumerate(basis): + if y >> i & 1: + x ^= a + return x + require(B(q) == 1, 'q maps to positive selected coordinate') + for frequency in range(512): + # Polynomial/spectral equation for every one-column frequency. + parity = (q & frequency).bit_count() % 2 + require((B(frequency) if omit_inverse else inverse(B(frequency))) == frequency, 'exact inverse ambient basis return') + require((B(frequency) & 1) == parity, 'exact positive central phase after conjugation') + require((parity+(0 if omit_translation else 2)*parity) % 4 == (-parity) % 4, 'Q^-1 includes Q^2 translation with exact phase') + checks += 1 + return {'new_ports': len(caller['types']['A']['ports']), 'exact_one_column_phase_equations': checks, + 'nine_axis_maps_per_QSELF': 2, 'translations_per_QSELF': 1, + 'all_positive_columns': 'Proved by exact tensor identity in PROOF.md, not inferred from these finite checks.', + 'provider_status': 'Actual tape execution, common precision, signed range and numerical return remain inherited contracts.'} diff --git a/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md b/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md new file mode 100644 index 0000000000..4badb40f09 --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md @@ -0,0 +1,313 @@ +# Finite precompilation of a mixed-target rule + +Status: constructive bridge under the precise native hypotheses below, +independently audited in `../transfer-audit/AUDIT.md`. This is a written +argument, not a formal proof or a completed integer-multiplication admission. +The companion finite scheduler checks actual integer flow and ordering. +The original immediate-normalization BIT interface failed hypothesis 3. +`../bit/DELAYED-COVER-BRIDGE.md` supplies the distinct delayed-cover +implementation, with a finite local-ring check and the native binding in +`../bit/BIT-P3-NATIVE-BINDING.json`. Its fixed rational cover routes are a +costed program schema, not dense coordinate gates in a plain native word. + +Substantial OpenAI assistance. Apache-2.0. The mixed-target asymptotic flow is +Jacob Alan Sussman's Theorem 1G, PR4268, with the detailed proof at commit +`563b4e6e913625637f36ba7869bf5fcd0dd4975a` of +[`wht-power-saving-lean`](https://github.com/jacobalansussman/wht-power-saving-lean). +The source, exact scheduling code and notices are preserved under `sources/`. +The contribution proposed here is clearing the finite flow into a single +uniform native supplier before applying the inherited outer theorem. + +## 1. What needs to be assumed + +Let a job of rank `s` apply a specified tensor operator to `s` selected +coordinate blocks of one array, fixing all other coordinates. A block has +an arbitrary positive tensor multiplicity `f`. A completed rank `s` job +therefore acts on `s*f` axes. All productive inputs are arbitrary. + +Fix one mixed unit with productive targets `W_k` of ranks `k`, a chronological +list of paid child ranks `r_j`, and a finite number of scalar and routing +passes. These assumptions are required, separately from the moment inequality: + +1. **An all-column native word.** At every integer column count `c`, the unit + computes exactly its independent rank `k*c` output jobs. Its paid rounds + are rank `r_j*c` jobs in the stated order. All borrowed data return to the + declared endpoint, and owned storage is explicitly initialized and erased. + Its finite operation count is uniform in `c`. +2. **Disjoint splitting and spectators.** A rank `a+b` job is a rank `a` job + followed by a rank `b` job on disjoint coordinates. The resulting programs + preserve arbitrary complete spectator fields and accept arbitrary data. +3. **Whole-job adapters.** Any job passed between two units has an explicitly + priced, permitted embedding into its destination. For the intended complex + application these are fixed monomial binary address maps and unit quadratic + phases, together with role permutations. The adapters must work at every + tensor multiplicity. Rank equality by itself is insufficient. +4. **Finite-program closure.** A finite composition of these words and + adapters is again a permitted finite supplier. Constantly many owned fields + may be supplied with their full cost and no productive output credit. + The eventual ordinary recursion must have the same arbitrary-input, + restoration, scalar and precision interface as the retained supplier. + +Put `m=max{k:W_k>0}`, `k_min=min{k:W_k>0}`, and +`r_max=max{r_j}`. Require `r_max g*S`, keeps one +external weight throughout the entire finite circuit, and lowers only its +final rank-one leaves. All rational matchers, role routes and their inverses +are fixed before choosing the odd prime and its exclusions. Every route +uses complete equal-multiplicity cover fibers and the retained, costed row +permutation primitive. This gives the same finite DAG argument in the +rational-cover program category. The BIT binding supplies the actual native +projectors; a rank count alone would not provide this implementation. + +## 2. Proposed conclusion + +Suppose the preceding hypotheses hold and the mixed balance has root +`tau` in `(0,1)`: + +``` +sum_j r_j^tau = sum_k W_k k^tau. +``` + +For every `z` with `tau=2`, a fixed number `B_N` of productive arrays, +and only rank-one paid children, whose number `P_N` satisfies + +``` +P_N < B_N * N^z. +``` + +Every productive output is the full rank-`N` job. The construction may have +an enormous finite scalar word, role inventory and owned-storage requirement. +Those quantities affect constants and the eventual input threshold. They are +not omitted and are not credited as extra output jobs. + +If this uniform supplier is admitted under the retained native, precision and +fixed-tape premises, the existing uniform recursion applies directly. A new +dynamic RAM-to-Turing-machine simulation is not being assumed here. + +## 3. The integer lockstep flow at a fixed rank + +This is the part of Theorem 1G used by the compiler. At one fixed top rank +`N`, its units, source jobs and exit jobs have integer multiplicities. +For a multi-index `a` on the target types define + +``` +c(a) = product_k k^(a_k), +u(a) = multinomial(|a|;a) * product_k W_k^(a_k). +``` + +The exact Pascal identity is + +``` +u(b) = sum_{k:b_k>0} W_k*u(b-e_k). +``` + +Let `G` be the largest `|a|` with `m*c(a)<=N`. A class is indexed by a +sequence of paid rounds `s` of length `d<=G`; its dilation is +`rho_s=product r_j`. It contains `u(a)` units at column `rho_s*c(a)` for +each `a` with `|a|=G-d` and `m*rho_s*c(a)<=N`. + +For one parent paid round, the Pascal bijection matches its job copies to +target roles of the child class, at exactly equal integer ranks. Missing +demands are top sources. Separation ensures every parent job is consumed. +The source ranks lie in `(N/m,N]`; only the deepest classes produce exit +jobs, all strictly smaller than `N` once `N` is outside the finite base range. + +Process a class in word order. At round `j`, suspend every unit of that +class, complete the entire child class fed by that round, and only then +advance the parents to round `j+1`. This forbids a unit from requiring both +an earlier and a later round of the same suspended parent. The resulting +dependency graph is finite and acyclic. Its edges carry complete array jobs, +not individual scalar values copied for free. + +These integer quantities exist before normalizing the sources to total +weight one. Let `S_s` be the number of source jobs of rank `s`, let +`S=sum_s S_s`, and let the ordered exit batches be `(e,t)` with `t` jobs +of rank `e` each. This finite integer flow is the compiler input. + +## 4. Clear every batch denominator constructively + +Induct on the integer top rank `N`. For each smaller rank `e` the compiler +has already constructed a uniform program on `B_e` arbitrary arrays, +computing full rank `e` with `P_e` paid rank-one calls. For a sufficiently +small rank use the ordinary sequential program: `B_e=1`, `P_e=e`. + +For the current flow choose an integer `a` divisible by every `B_e` needed +for an exit and every `B_(N-s)` needed for a nonzero source remainder. +The product of those finitely many positive integers is a valid choice; +their least common multiple is a smaller optional choice. Set + +``` +B_N = a*S. +``` + +Assign `a*S_s` of the input arrays to each source rank `s`. On each of those +arrays, first complete its `N-s` complementary coordinates using the +already-compiled smaller uniform program. All such batches are integral +because `a` is divisible by their program widths. This preliminary action +commutes with the intended `s`-coordinate job and fixes its input coordinates. + +Make `a` copies of the integer lockstep flow. Route its source arrays to +their exact input slots using permitted whole-array adapters. At a deepest +exit batch, `a*t` is divisible by `B_e`; replace that batch by copies of +the smaller uniform rank-`e` program. Restore its role ordering and adapters +before resuming the suspended parent class. Execute the finite DAG in the +lockstep order, and finally restore the original source-array ordering. + +Every array has now received its disjoint complementary job and source job, +hence the full rank-`N` transform. No copied scalar input or blank helper is +treated as another independent output. Every original array occurs exactly +once as a source; interior target slots are jobs on those arrays, not new +productive inputs. + +Induction removes all recursive calls: the only remaining paid children +have rank one. Clearing denominators multiplies productive arrays and paid +operations equally, so it preserves the per-array leaf count. In formulas, + +``` +P_N/B_N = (1/S) * [ + sum_s S_s * (P_(N-s)/B_(N-s)) + + sum_(ordered exit batches e,t) t * (P_e/B_e) +]. +``` + +Zero-rank terms vanish. Any plain rank-one exits are the ordinary base +program. Scalar and routing passes have their own analogous nonnegative +count and must be included in the asymptotic cost used to choose `N`. + +This construction uses full integer batches; it does not assume that +fractional pieces of a physical array can be routed at zero cost. Its exact +replication factors can be impractically large, which is acceptable for a +fixed finite supplier existence statement but must be disclosed. + +## 5. Why some fixed N has the required saving + +The independent audit sharpened this step to a direct count of paid leaves. +It does not require a running-time comparison between a RAM flow and native +tapes. Let `L(n)=P_n/B_n`, let `w_s=S_s/S`, and let `x_e` be the exit counts +normalized by the number S of source arrays. The actual integer compiler +satisfies + +``` +L(n) = sum_s w_s L(n-s) + sum_e x_e L(e), +sum_s w_s = 1, +sum_e x_e e^tau = sum_s w_s s^tau. +``` + +The last equality follows by canceling every internal matched job in the +exact tau-potential balance. The source ranks satisfy `n/m0`, concavity gives + +``` +n^z0 - sum_s w_s (n-s)^z0 >= eta * sum_s w_s s^z0. +``` + +Indeed, for `t=s/n` in `[1/m,1]`, +`1-(1-t)^z0 >= z0*t >= eta*t^z0`. For every sufficiently large n the +exit coefficient is less than `eta/2`. Every complement and exit has +smaller rank than n, so strong induction on the exact recurrence proves +`L(n)<=A*n^z0`, with finite A chosen to cover the smaller ranks. Eventually +`L(N) 0: lo = m + else: hi = m + return lo +for f, want in (('sr0.invoice.json', '.00360666479'), ('rbf.invoice.json', '.00362232643')): + d = load(f); k = kappa(d['T'], d['P']) + req('kappa %s = %s' % (f, want), str(k)[1:len(want) + 1] == want, str(k)[:14]) + d2 = json.loads(json.dumps(d)); d2['T']['1'] += 5000 + req('control: kappa changes when the invoice is edited (%s)' % f, str(kappa(d2['T'], d2['P']))[:10] != str(k)[:10]) +# 3. E-free root: product of (I - 2 x y^T) over the 40 units in order is -I at S=-1; isotropy fails only at t1 (units 18, 19) +R = load('root_A_efree.json'); n, N = R['n'], R['N'] +X = [[Q(v) for v in r] for r in R['X']]; Y = [[Q(v) for v in r] for r in R['Y']] +dot = lambda a, b: sum(u * v for u, v in zip(a, b) if u and v) +def prod(X, Y, S=-1, order=None): + M = [[Q(int(i == j)) for j in range(n)] for i in range(n)] + for k in (order if order is not None else range(N)): + d = [sum(Y[k][i] * M[i][j] for i in range(n) if Y[k][i]) for j in range(n)] + M = [[M[i][j] + (S - 1) * X[k][i] * d[j] for j in range(n)] if X[k][i] else M[i] for i in range(n)] + return M +neg_I = lambda M: all(M[i][j] == (-1 if i == j else 0) for i in range(n) for j in range(n)) +ok = neg_I(prod(X, Y)); req('E-free root: unit product is -I at S=-1', ok) +req('E-free root: product is I at S=+1', all(prod(X, Y, 1)[i][j] == int(i == j) for i in range(n) for j in range(n))) +iso = [u for u in range(N) if dot(Y[u], X[u]) != 0] +req('E-free root: isotropy fails exactly at units 18 and 19 (t1 of each chain)', iso == [18, 19], iso) +X2 = [r[:] for r in X]; j = next(i for i, v in enumerate(X2[18]) if v); X2[18][j] += 1 +req('control: edited t1 breaks the -I product', not neg_I(prod(X2, Y))) +req('control: swapped unit order breaks the -I product', not neg_I(prod(X, Y, order=[20 if i == 18 else 18 if i == 20 else i for i in range(N)]))) +cl = load('caller_efree.json'); req('caller file parses (QSELF caller, 76 x 76 per README)', isinstance(cl, (dict, list)) and len(json.dumps(cl)) > 10000) +# 4. L=3 rho=1 roots: header Gram is the t=-1 path, units square-zero (b_i.a_i = 0), nine rows of length 8 +for f in ('root_L3_tHHtHt.json', 'root_L3_tHtHHt.json'): + d = load(f); a = [[Q(x) for x in r] for r in d['a']]; b = [[Q(x) for x in r] for r in d['b']]; M = len(a) + gram = lambda a, b: all(dot(b[i], a[j]) == (1 if j == i + 1 else -1 if j == i - 1 else 0) for i in range(M) for j in range(M)) + req('%s: M=%d n=%d, header Gram is the exact path t=-1, square-zero units' % (d['types'], M, len(a[0])), M == 9 and len(a[0]) == 8 and gram(a, b)) + b2 = [r[:] for r in b]; b2[0][0] += 1 + req('control: perturbed header rejected (%s)' % d['types'], not gram(a, b2)) +print('PASS_P104_TWO_CHAIN_FINDINGS' if not fails else 'FAILED: %s' % fails) +sys.exit(1 if fails else 0) diff --git a/research/p104-qself-owned-lowering/reference/jclib_6936.py b/research/p104-qself-owned-lowering/reference/jclib_6936.py new file mode 100644 index 0000000000..48a55ab03a --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/jclib_6936.py @@ -0,0 +1,331 @@ +"""Library of check_caller_blocks.py: constant-block rewrite of the joint caller (idea and method: CubeJerry #6912; the code is this package's). + +Mathematics. A constant block is a maximal run of ADD / SCALE(-1) / SWAP events of one port type between two +nonconstant events of that type (LAMBDA, IDLE_ONE, QUERY) or a joint contact J. Applied to the role vector it is +left-multiplication by one integer matrix M in GL_n(Z) (n = 40 for type A, 38 for type B). Replace the block by any other +constant block with the same matrix M: then, by induction over the anchors, the whole caller is the same operator for every +substitution of the anchor operators (the anchors are not touched and each block is a left factor between them). +Type A rows (0..39) and type B rows (40..77) are disjoint, so an A block commutes with every B event: its position inside the +window between the same two A-anchors is immaterial. Nothing but the constant-gate count changes.""" +import json, random +from fractions import Fraction as Q + +CONST = ('ADD', 'SCALE', 'SWAP') +OFF = {'A': 0, 'B': 40} +NR = {'A': 40, 'B': 38} + + +def need(ok, msg): + if not ok: + raise ValueError(msg) + + +def ev_roles(e): + """role indices an event reads or writes (joint indexing); J returns both types' roles""" + if e[0] == 'J': + return list(e[2]) + list(e[3][:2]) + op = e[1] + if op in ('ADD', 'SWAP', 'QUERY'): + return [e[2], e[3]] + return [e[2]] + + +def check_disjoint(C): + """every A event touches only roles 0..39, every B event only 40..77 (J is the only coupling)""" + for e in C['events']: + if e[0] == 'A': + need(all(0 <= r < 40 for r in ev_roles(e)), 'A event leaves its roles: %r' % (e,)) + elif e[0] == 'B': + need(all(40 <= r < 78 for r in ev_roles(e)), 'B event leaves its roles: %r' % (e,)) + else: + need(e[0] == 'J', 'unknown tag') + return True + + +def is_const(e, ty): + return e[0] == ty and e[1] in CONST + + +def is_anchor(e, ty): + """nonconstant event of the type's own stream: its nonconstant events and every joint contact""" + return (e[0] == ty and e[1] not in CONST) or e[0] == 'J' + + +def slots(events, ty): + """list of (indices of the constant events of slot k); slot k lies between anchors k-1 and k. Also returns the + global index of the anchor that closes each slot (len(events) for the last).""" + out, closes, cur = [], [], [] + for i, e in enumerate(events): + if is_const(e, ty): + cur.append(i) + elif is_anchor(e, ty): + out.append(cur); closes.append(i); cur = [] + out.append(cur); closes.append(len(events)) + return out, closes + + +def apply_const(rows, e): + """act on the matrix of accumulated rows exactly as the caller replay does: rows[i] += c*rows[j] etc (joint indices)""" + op = e[1] + if op == 'ADD': + c = Q(e[4]); need(c.denominator == 1, 'integer ADD'); c = int(c) + rows[e[2]] = [a + c * b for a, b in zip(rows[e[2]], rows[e[3]])] + elif op == 'SCALE': + c = Q(e[3]); need(c == -1, 'SCALE -1'); rows[e[2]] = [-a for a in rows[e[2]]] + elif op == 'SWAP': + rows[e[2]], rows[e[3]] = rows[e[3]], rows[e[2]] + else: + raise ValueError('nonconstant') + + +def block_matrix(block, ty): + """exact integer matrix of a constant block (list of full joint events), n x n in type-local indices""" + n, off = NR[ty], OFF[ty] + rows = {off + i: [int(i == j) for j in range(n)] for i in range(n)} + for e in block: + need(e[0] == ty and e[1] in CONST, 'block holds a nonconstant or foreign event') + for r in ([e[2], e[3]] if e[1] != 'SCALE' else [e[2]]): + need(off <= r < off + n, 'role outside type') + apply_const(rows, e) + return [rows[off + i] for i in range(n)] + + +def alphabet_ok(block, limit=2): + for e in block: + if e[1] == 'ADD': + c = Q(e[4]); need(c.denominator == 1 and 0 < abs(c) <= limit, 'ADD coefficient outside alphabet %r' % (e,)) + need(e[2] != e[3], 'self ADD') + elif e[1] == 'SCALE': + need(Q(e[3]) == -1, 'SCALE not -1') + elif e[1] == 'SWAP': + need(e[2] != e[3], 'self SWAP') + return True + + +def splice(C, ty, new_blocks): + """new_blocks[k] = list of full joint events for slot k of type ty. New block is written at the position of the first + old event of its slot (or just before the closing anchor if the old slot was empty). Everything else keeps its order.""" + sl, closes = slots(C['events'], ty) + need(len(new_blocks) == len(sl), 'slot count %d != %d' % (len(new_blocks), len(sl))) + first, drop, ins = {}, set(), {} + for k, idxs in enumerate(sl): + if idxs: + first[idxs[0]] = k; drop.update(idxs[1:]) + elif new_blocks[k]: + ins.setdefault(closes[k], []).append(k) + ev = [] + for i, e in enumerate(C['events']): + for k in ins.get(i, []): + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[k]) + if i in drop: + continue + if i in first: + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[first[i]]) + elif not is_const(e, ty): + ev.append(e) + # a first-index const event is replaced above; other const events of this type are in drop + for k in ins.get(len(C['events']), []): + ev.extend(new_blocks[k]) + out = {k: v for k, v in C.items() if k != 'events'} + out['events'] = ev + return out + + +def old_blocks(C, ty): + sl, _ = slots(C['events'], ty) + return [[C['events'][i] for i in idxs] for idxs in sl] + + +def from_6912(after, ty='A'): + """read #6912's caller-after.json (plain A-stream events, no tag) as data: list of per-slot blocks, tagged joint events. + slots are delimited by its nonconstant events (everything that is not ADD/SCALE/SWAP).""" + blocks, cur, anchors = [], [], [] + for e in after['events']: + if e[0] in CONST: + cur.append([ty] + list(e)) + else: + blocks.append(cur); cur = []; anchors.append(e) + blocks.append(cur) + return blocks, anchors + + +# ---------------------------------------------------------------- exact replay of the joint caller mod p +PM = 2147483629 +IM = next(pow(g, (PM - 1) // 4, PM) for g in range(2, 99) if pow(g, (PM - 1) // 2, PM) == PM - 1) +HALF = (PM + 1) // 2 + + +def fm(x): + f = Q(x); return f.numerator % PM * pow(f.denominator, PM - 2, PM) % PM + + +def replay_matrix(C, qv, Dv): + """the full 78 x 78 matrix of the joint caller at the point (q, D_1..D_18) over F_PM; semantics as in the package + (J = HOST2 on the A roles and HOST on the B roles at one stage).""" + n = C['roles']; R = [[int(i == j) for j in range(n)] for i in range(n)]; qi = pow(qv, PM - 2, PM) + a2 = fm(C['types']['A']['alpha2']) + for e in C['events']: + if e[0] == 'J': + d = Dv[e[1]]; src, dst, x2, y2 = e[2] + R[dst] = [(a + qi * b) % PM for a, b in zip(R[dst], R[src])] + R[x2] = [(a + a2 * qv % PM * b) % PM for a, b in zip(R[x2], R[y2])] + for r in (src, dst, x2, y2): + R[r] = [a * d % PM for a in R[r]] + s, t = e[3][0], e[3][1]; al, be = fm(e[3][2]), fm(e[3][3]); tt = al * be % PM + ns = [(x + al * qv % PM * y) % PM * d % PM for x, y in zip(R[s], R[t])] + nd = [(be * qi % PM * x + (1 + tt) * y) % PM * d % PM for x, y in zip(R[s], R[t])] + R[s], R[t] = ns, nd + continue + op = e[1] + if op == 'ADD': + R[e[2]] = [(a + fm(e[4]) * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'SCALE': + c = fm(e[3]); R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'SWAP': + R[e[2]], R[e[3]] = R[e[3]], R[e[2]] + elif op == 'QUERY': + c = pow(qv, e[4] % 4, PM); R[e[2]] = [(a + c * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'LAMBDA': + s = e[3]; c = ((1 + s * IM) * HALF + (1 - s * IM) * HALF * qv * qv) % PM; R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'IDLE_ONE': + c = 1 + for k in e[3]: + c = c * Dv[k] % PM + R[e[2]] = [a * c % PM for a in R[e[2]]] + else: + raise ValueError('unknown op ' + str(op)) + return R + + +def target_bad(C, R, qv, Dv): + n = C['roles']; bad = 0 + for role in range(n): + t, off = (C['types']['A'], 0) if role < 40 else (C['types']['B'], 40) + dg = t['diagonal'][role - off]; c = pow(qv, dg[0] % 4, PM) + for k, bit in enumerate(dg[2:]): + if bit: + c = c * Dv[k + 1] % PM + bad += sum(R[role][j] != (c if j == role else 0) for j in range(n)) + return bad + + +def random_points(seed=5, k=4): + r = random.Random(seed); pts = [] + for qv in (1, IM, PM - 1, PM - IM): + pts.append((qv, {s: r.randrange(2, PM) for s in range(1, 19)})) + for _ in range(k): + pts.append((r.randrange(2, PM), {s: r.randrange(2, PM) for s in range(1, 19)})) + return pts + + +# ---------------------------------------------------------------- own resynthesis of a constant block (Euclid elimination) +def synth(M, ty): + """own synthesis: reduce M to I by row operations with a Euclidean algorithm per column, ADD coefficients split into + +-1,+-2; the op list that rebuilds M is the reversed list of inverses. Local indices; returns full joint events.""" + n, off = NR[ty], OFF[ty]; M = [r[:] for r in M]; ops = [] + + def add(i, j, c): # row_i += c * row_j (c in {+-1,+-2} after splitting) + while c: + s = 1 if c > 0 else -1; step = s * min(2, abs(c)) + M[i] = [a + step * b for a, b in zip(M[i], M[j])]; ops.append(('ADD', i, j, step)); c -= step + for col in range(n): + while True: + nz = [r for r in range(col, n) if M[r][col]] + need(nz, 'singular block') + if len(nz) == 1 and abs(M[nz[0]][col]) == 1: + break + p = min(nz, key=lambda r: (abs(M[r][col]), r)) + for r in nz: + if r != p: + qq = round(Q(M[r][col], M[p][col])) + if qq: + add(r, p, -qq) + p = nz[0] + if p != col: + M[p], M[col] = M[col], M[p]; ops.append(('SWAP', p, col)) + if M[col][col] == -1: + M[col] = [-a for a in M[col]]; ops.append(('SCALE', col)) + for r in range(n): + if r != col and M[r][col]: + add(r, col, -M[r][col]) + need(all(M[i][j] == int(i == j) for i in range(n) for j in range(n)), 'did not reach identity') + out = [] + for o in reversed(ops): + if o[0] == 'ADD': + out.append([ty, 'ADD', o[1] + off, o[2] + off, str(-o[3])]) + elif o[0] == 'SWAP': + out.append([ty, 'SWAP', o[1] + off, o[2] + off]) + else: + out.append([ty, 'SCALE', o[1] + off, '-1']) + return out + + +# ---------------------------------------------------------------- raw bound (formulas of the package's check.py / ordinary.py) +def swaps(sel): + wanted = set(range(len(sel))); return len(list(zip(sorted(set(sel) - wanted), sorted(wanted - set(sel))))) + + +def shim(J, ty): + t = J['types'][ty]; off = t['offset']; ev = [] + for e in J['events']: + if e[0] == 'J': + ev.append(['HOST', e[1]]) + elif e[0] == ty: + e = list(e[1:]) + if e[0] in ('ADD', 'SWAP', 'QUERY'): + e[1] -= off; e[2] -= off + else: + e[1] -= off + ev.append(e) + return dict(events=ev, roles=t['roles'], ambient_rank=J['ambient_rank'], diagonal=t['diagonal']) + + +def rest_of(C, ports): + ev = C['events']; roles = C['roles']; amb = C['ambient_rank']; mx = mn = mp = 0 + for role, (qp, zero, *sel) in enumerate(C['diagonal']): + axes = ([0] if qp else []) + [a for st, y in enumerate(sel, 1) if y for a in range(9 + 8 * (st - 1), 9 + 8 * st)] + k = swaps(axes); mx += 2 * k * ports; mn += 2 * bool(qp) * ports; mp += int(qp == -1) * ports + ie = 0; qn = qph = 0 + for e in ev: + if e[0] == 'IDLE_ONE': + ie += 2 * swaps([a for st in e[2] for a in range(9 + 8 * (st - 1), 9 + 8 * st)]) * ports + elif e[0] == 'QUERY': + qn += 2 * ports; qph += int(e[3] == -1) * ports + return (32 * roles * ports * len(ev) + sum(e[0] == 'QUERY' for e in ev) * 16 * ports + roles * ports * 26 + + (mx + mn + mp) * 1000 + ie * 1000 + (qn + qph) * 1000) + + +def word_terms(W): + """per-call terms of a word: allowance, reviewed upper, routes, public count, nD""" + from collections import Counter + H = W['hosted']; nD = len(H['Dports']); n = len(W['initial']); live = set(W['live']) + main = live | {r + 112 for r in live} | set(H['X2']) | set(H['Y2']) + dim = [len(b) for b in W['frames']] + paid = Counter(abs(dim[e[3]] - dim[e[2]]) for e in W['program'] if e[0] == 'MOVE') + hel = Counter(dim[W['final'][r]] - dim[W['initial'][r]] for r in range(n) if r not in main) + life = sum(e[0] == 'INIT' for e in W['program']); allow = upper = 0 + for e in W['program']: + if e[0] in ('INIT', 'CLEAR'): + allow += 2 + elif e[0] == 'SCALE': + q = Q(e[2]); a, d = abs(q.numerator), q.denominator + allow += 2 * (abs(a.bit_length() - d.bit_length()) + int(q < 0)); upper += 4 * (a.bit_length() + d.bit_length() + 1) + elif e[0] in ('ADD', 'COPY'): + q = Q(e[3]); a, d = abs(q.numerator), q.denominator + allow += 2 * (3 + a.bit_length() - 1 + bin(a).count('1') + d.bit_length() - 1); upper += 4 * (a.bit_length() + bin(a).count('1') + d.bit_length() + 1) + routes = (sum(paid.values()) + 2 * sum(hel.values()) + 208 + 2 * nD + 4 * 104 + 4 * nD + 4 * life) * 1000 + return dict(allow=allow, upper=upper, routes=routes, n=n, nD=nD, paid=paid, hel=hel) + + +scale_cost = lambda S: 4 * (S.bit_length() + 1 + 1) + 4 * (1 + S.bit_length() + 1) # one SCALE by S at entry and one by 1/S at exit at the reviewed upper rate: 80 for S = 225, 104 for S = 1125 + + +def raw_all(J, W, S): + t = word_terms(W); nA, nB = len(J['types']['A']['ports']), len(J['types']['B']['ports']) + need((nA, nB) == (t['nD'], 104 - t['nD']), 'port split of the caller differs from the word') + rest = rest_of(shim(J, 'A'), nA) + rest_of(shim(J, 'B'), nB) + lam = sum(1 for e in J['events'] if e[0] == 'A' and e[1] == 'LAMBDA') * nA + sum(1 for e in J['events'] if e[0] == 'B' and e[1] == 'LAMBDA') * nB + debit = 1000 * lam; per_in = 18 * t['n'] * scale_cost(S) + lit = 18 * 10 ** 7 + rest; act = 18 * (t['allow'] + t['routes']) + rest; up = 18 * (t['upper'] + t['routes']) + rest + return dict(rest=rest, literal=lit, actual=act, upper=up, recharge=up + debit, per_input=up + per_in, per_input_recharge=up + per_in + debit, + lambda_jobs=lam, debit=debit, per_in=per_in, public=t['n']) diff --git a/research/p104-qself-owned-lowering/reference/physical_review_6936.py b/research/p104-qself-owned-lowering/reference/physical_review_6936.py new file mode 100644 index 0000000000..f41390e024 --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/physical_review_6936.py @@ -0,0 +1,568 @@ +#!/usr/bin/env python3 +"""Independent finite physical/invoice audit of exact #6726. + +Jerry Chen (@CubeJerry), with substantial OpenAI assistance. Apache-2.0. +No construction, pricing, scalar, or physical implementation is imported. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +from functools import reduce +from hashlib import sha1, sha256 +from itertools import combinations +from pathlib import Path +import gzip +import json +import sys + +HERE = Path(__file__).resolve().parent + + +def require(test, reason): + if not test: + raise ValueError(reason) + + +def read(name): + raw = (HERE / 'frozen' / name).read_bytes() + return json.loads(gzip.decompress(raw) if name.endswith('.gz') else raw) + + +def authenticate(): + pins = json.loads((HERE / 'SOURCES.json').read_bytes()) + for pin in pins['files']: + if pin['usage'] != 'input': + continue + relative = Path(pin['path']).relative_to('research/p104-fragment-physical-invoice-audit') + raw = (HERE / relative).read_bytes() + require(len(raw) == pin['bytes'], 'source length: ' + pin['path']) + require(sha256(raw).hexdigest() == pin['sha256'], 'source SHA256: ' + pin['path']) + require(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == pin['git_blob'], 'source Git blob: ' + pin['path']) + return pins + + +def span(vectors): + values = {0} + for value in vectors: + require(isinstance(value, int) and 0 < value < 512, 'native nine-axis vector') + require(value not in values, 'frame axes independent') + values |= {old ^ value for old in values} + return sum(1 << value for value in values) + + +def native_ledger(word, check_rows=True): + """Scan physical charts and scalar rows; MOVE changes chart, not chart coordinates.""" + frames = word['frames'] + spaces = [span(frame) for frame in frames] + ranks = [len(frame) for frame in frames] + public = word['public'] + total = public + word['owned_fields'] + require(len(word['initial']) == len(word['final']) == public, 'public boundaries') + chart = word['initial'][:] + [None] * word['owned_fields'] + rows = [{i: Fraction(1)} for i in range(public)] + [{} for _ in range(word['owned_fields'])] + live_owned = set() + lifetime = peak = 0 + paid = Counter() + operations = Counter() + paid_records = [] + scalar_units = 0 + for index, event in enumerate(word['program']): + op, *args = event + operations[op] += 1 + if op == 'INIT': + field, frame = args + require(public <= field < total and chart[field] is None, 'owned INIT before use') + chart[field] = frame + rows[field] = {} + live_owned.add(field) + lifetime += 1 + peak = max(peak, len(live_owned)) + elif op == 'CLEAR': + field, frame = args + require(field in live_owned and chart[field] == frame, 'owned CLEAR at current frame') + chart[field] = None + rows[field] = {} + live_owned.remove(field) + elif op == 'MOVE': + field, start, end, backward = args + require(chart[field] == start, 'chronological MOVE source frame') + lo, hi = ((end, start) if ranks[end] < ranks[start] else (start, end)) if backward else (start, end) # DECLARED CHANGE (assumption A6): an owned MOVE may be nested in either direction; it is paid |delta dim| either way. Predecessor line: lo, hi = (end, start) if backward else (start, end) + require(spaces[lo] & spaces[hi] == spaces[lo] and ranks[lo] < ranks[hi], 'strict nested paid MOVE') + rank = ranks[hi] - ranks[lo] + paid[rank] += 1 + paid_records.append((index, field, rank)) + chart[field] = end + elif op in ('ADD', 'COPY'): + dst, src, value, frame = args + require(dst != src and chart[dst] == chart[src] == frame, 'scalar common current chart') + value = Fraction(value) + require(value and value.denominator & (value.denominator - 1) == 0, 'nonzero dyadic scalar') + if op == 'COPY': + require(dst in live_owned and not rows[dst], 'COPY requires cleared owned destination') + if check_rows: + for column, coefficient in rows[src].items(): + new = rows[dst].get(column, 0) + value * coefficient + if new: + rows[dst][column] = new + else: + rows[dst].pop(column, None) + scalar_units += 4 * (abs(value.numerator).bit_length() + abs(value.numerator).bit_count() + value.denominator.bit_length() + 1) + elif op == 'SCALE': + field, value, frame = args + value = Fraction(value) + require(chart[field] == frame and value, 'scale at current live chart') + require(abs(value.numerator) & (abs(value.numerator)-1) == 0 and value.denominator & (value.denominator-1) == 0, 'invertible dyadic scale') + if check_rows: + rows[field] = {column: value * coefficient for column, coefficient in rows[field].items()} + scalar_units += 4 * (abs(value.numerator).bit_length() + value.denominator.bit_length() + 1) + else: + raise ValueError('unknown native opcode ' + op) + require(not live_owned and chart[:public] == word['final'], 'complete native return and owned clearance') + ports = word['ports'] + live = word['live'] + require(len(set(ports)) == len(ports) == len(set(live)) == len(live) == 104, '104 distinct retained ports') + main = set(live) | {112 + i for i in live} + require(len(main) == 208, 'disjoint native X/Y pairs') + helpers = Counter() + helper_labels = [] + for field in range(public): + if check_rows: + expected = {field: Fraction(1)} + if field >= 112 and field - 112 in live: + expected[field - 112] = Fraction(1) + require(rows[field] == expected, 'all arbitrary native input row ' + str(field)) + if field not in main: + start, end = word['initial'][field], word['final'][field] + require(spaces[start] & spaces[end] == spaces[start] and ranks[start] < ranks[end], 'productive helper strict nested endpoint') + rank = ranks[end] - ranks[start] + helpers[rank] += 1 + helper_labels.append((field, rank)) + for i, q in zip(live, ports): + require(frames[word['initial'][i]] == [q] and frames[word['initial'][112+i]] == [], 'native incoming Q/I main interface') + require(frames[word['final'][i]] == list(1 << j for j in range(9)), 'native complete nine-axis X endpoint') + require(ranks[word['final'][112+i]] == 8 and all((q & a).bit_count()%2 == 0 for a in frames[word['final'][112+i]]), 'native rank-eight q-orthogonal Y endpoint') + return dict(paid=paid, helpers=helpers, helper_labels=helper_labels, paid_records=paid_records, + public=public, owned=word['owned_fields'], lifetimes=lifetime, peak=peak, + operations=operations, scalar_upper=scalar_units, + scalar_rows=public if check_rows else 0) + + +def terms(entries): + counts = Counter() + for vector, coefficient in entries: + counts[vector] += coefficient + return {vector: coefficient % 4 for vector, coefficient in counts.items() if vector and coefficient % 4} + + +def difference(a, b): + return terms(list(a.items()) + [(v, -c) for v, c in b.items()]) + + +def phase(coefficients, frequency): + return sum(c * ((vector & frequency).bit_count() & 1) for vector, c in coefficients.items()) % 4 + + +def axes_of(mask): + out = [] + while mask: + bit = mask & -mask + out.append(bit) + mask ^= bit + return out + + +def translation_for(delta): + """Parity is degree <=2 modulo four; weight<=2 frequencies determine it.""" + support = axes_of(reduce(int.__or__, delta, 0)) + shift = 0 + single = {} + for bit in support: + single[bit] = phase(delta, bit) + require(single[bit] in (0, 2), 'contact linear phase must be an ordinary translation') + if single[bit] == 2: + shift |= bit + for a, b in combinations(support, 2): + require(phase(delta, a | b) == (single[a] + single[b]) % 4, 'contact residual quadratic phase') + return shift + + +def route_function(q, basis, stage): + fresh = [1 << (9 + 8*(stage-1) + i) for i in range(8)] + old_mask = 511 + fresh_mask = sum(fresh) + require(q.bit_count() % 2 == 1, 'odd central port') + require(len(basis) == 8 and all(0 < v < 512 for v in basis), 'native eight-dimensional basis') + require(all((a & b).bit_count() % 2 == (i == j) for i, a in enumerate([q]+basis) for j, b in enumerate([q]+basis)), 'complete orthonormal native basis') + def route(value): + old = value & old_mask + result = value & ~(old_mask | fresh_mask) + if (old & q).bit_count() % 2: + result ^= q + for native_axis, fresh_axis in zip(basis, fresh): + if value & fresh_axis: + result ^= native_axis + if (old & native_axis).bit_count() % 2: + result ^= fresh_axis + return result + affected = [1 << i for i in range(9)] + fresh + images = [route(v) for v in affected] + require(all(route(image) == axis for axis, image in zip(affected, images)), 'route involution') + require(all((a & b).bit_count() % 2 == (i == j) for i, a in enumerate(images) for j, b in enumerate(images)), 'route orthogonality') + require(route(q) == q, 'route fixes Q') + return route + + +def contact(before, after, route, omit_translation=False): + moved = terms((route(v), c) for v, c in before.items()) + shift = translation_for(difference(after, moved)) + supplied = 0 if omit_translation else shift + require(translation_for(difference(after, terms(list(moved.items()) + [(supplied, 2)]))) == 0, 'full forward absolute phase') + inverse = route(supplied) + require(translation_for(difference(before, terms([(route(v), c) for v, c in after.items()] + [(inverse, 2)]))) == 0, 'full inverse absolute phase') + require(shift.bit_count() <= 17 and inverse.bit_count() <= 17, 'fixed seventeen-axis translation budget') + return {'translation': shift, 'inverse_translation': inverse} + + +def physical(word, native, recipes, omit_translation=False): + stages = word['stages'] + require(word['ambient_rank'] == 9 + 8*stages, 'declared ambient axes') + axes = [1 << i for i in range(word['ambient_rank'])] + full_events = [(i, e) for i, e in enumerate(word['events']) if e[0] == 'LOCAL'] + require([e[1] for _, e in full_events] == list(range(1, stages+1)), 'fresh native stage chronology') + by_port = {r['q']: r for r in recipes['recipes']} + require(set(native['ports']) <= set(by_port), 'every retained port has a phase recipe') + records = [] + for _, (_, stage, src, dst) in full_events: + require(src != dst and 0 <= src < word['roles'] and 0 <= dst < word['roles'], 'distinct valid native caller fields') + before_axes = axes[:9+8*(stage-1)] + after_axes = axes[:9+8*stage] + spectator = axes[9:9+8*stage] + for q in native['ports']: + basis = by_port[q]['idle_children'][0]['orthogonal_axes'][:8] + route = route_function(q, basis, stage) + x0 = terms((a, 1) for a in before_axes) + y0 = terms(list(x0.items()) + [(q, -1)]) + x1 = terms((a, 1) for a in after_axes) + y1 = terms(list(x1.items()) + [(q, -1)]) + native_x0 = terms([(a, 1) for a in spectator] + [(q, 1)]) + native_y0 = terms((a, 1) for a in spectator) + native_x1 = terms((a, 1) for a in spectator + axes[:9]) + native_y1 = terms(list(native_x1.items()) + [(q, -1)]) + maps = [contact(a, b, route, omit_translation) for a, b in ((x0,native_x0),(y0,native_y0),(native_x1,x1),(native_y1,y1))] + body = terms((a, 1) for a in axes[9+8*(stage-1):9+8*stage]) + require(translation_for(difference(difference(x1,x0),body)) == 0 and translation_for(difference(difference(y1,y0),body)) == 0, 'native diagonal is fresh D_stage with absolute phase') + require(translation_for(difference(difference(y1,x0),terms(list(body.items())+[(q,-1)]))) == 0, 'native cross coefficient is D_stage Q^-1') + records.append([stage,q,maps]) + main = Counter() + output_shifts = 0 + for term in word['diagonal']: + qp, zero, *selected = term + require(qp in (-1,0,1) and zero == 0 and len(selected) == stages and set(selected) <= {0,1}, 'literal physical endpoint exponent domain') + for q in native['ports']: + body_axes = [axis for stage, yes in enumerate(selected,1) if yes for axis in axes[9+8*(stage-1):9+8*stage]] + positive = ([q] if qp else []) + body_axes + require(all((a & b).bit_count()%2 == (i == j) for i,a in enumerate(positive) for j,b in enumerate(positive)), 'all positive endpoint axes orthonormal') + actual = terms([(q,qp)] + [(a,1) for a in body_axes]) + target = terms((a,1) for a in positive) + shift = translation_for(difference(target,actual)) + require(shift == (q if qp == -1 else 0), 'exact endpoint translation') + output_shifts += bool(shift) + main[len(positive)] += 1 + idle = Counter() + idle_records = [] + for index,event in enumerate(word['events']): + if event[0] not in ('IDLE','IDLE_ONE'): + continue + owners, selection = (event[1:3], event[3]) if event[0] == 'IDLE' else ([event[1]],event[2]) + require(len(set(owners)) == len(owners) and all(0 <= r < word['roles'] for r in owners), 'distinct valid idle owners') + require(selection and len(set(selection)) == len(selection) and all(1 <= s <= stages for s in selection), 'distinct valid complete idle axes') + positive = [axis for stage in selection for axis in axes[9+8*(stage-1):9+8*stage]] + require(len(set(positive)) == len(positive), 'whole idle independent Gaussian factors') + idle[len(positive)] += len(native['ports']) * len(owners) + idle_records.extend((index,owner,q,len(positive)) for owner in owners for q in native['ports']) + require(len(word['diagonal']) == word['roles'], 'one target for every arbitrary caller input') + return dict(contacts=4*len(records), contact_digest=sha256(json.dumps(records,separators=(',',':')).encode()).hexdigest(), + nonzero_contact_translations=sum(bool(m['translation']) for _,_,maps in records for m in maps), + main=main, idle=idle, idle_records=idle_records, output_translations=output_shifts, + dimension=word['ambient_rank']) + + +def allocation(word, native, ledger, alias=False): + main = {(role,q) for role in range(word['roles']) for q in native['ports']} + names = {('main',role,q) for role,q in main} + helper_jobs = [] + local_number = 0 + for event_index, event in enumerate(word['events']): + if event[0] != 'LOCAL': + continue + _,stage,src,dst = event + public_map = {} + for i,q in zip(native['live'],native['ports']): + public_map[i] = ('main',src,q) + public_map[112+i] = ('main',dst,q) + for field,rank in ledger['helper_labels']: + key = ('helper',0 if alias else local_number,field) + require(key not in names, 'fresh native helper cannot alias an earlier public input') + names.add(key) + public_map[field] = key + helper_jobs.append((event_index,stage,field,rank,key)) + require(len(public_map) == ledger['public'] and len(set(public_map.values())) == ledger['public'], 'injective local public-input allocation') + local_number += 1 + owned = {('owned',i) for i in range(ledger['owned'])} + thin = {('query_scratch',0)} + require(not (names & owned or names & thin or owned & thin), 'owned/query scratch is disjoint and uncredited') + return dict(main_fields=len(main), helper_fields=len(helper_jobs), productive_fields=len(names), + reserved_native_owned=len(owned), reserved_query_owned=len(thin), + peak_native_owned=ledger['peak'], maximum_live_owned=max(ledger['peak'],1), + invocations=local_number, helper_jobs=helper_jobs) + + +def invoice(word, ledger, physics, fields): + paid = Counter() + targets = Counter(physics['main']) + for _,_,_,rank,_ in fields['helper_jobs']: + targets[rank] += 1 + for event in word['events']: + if event[0] == 'LOCAL': + paid.update(ledger['paid']) + elif event[0] == 'QUERY': + require(event[3] in (-1,1), 'legal thin query orientation') + paid[1] += 104 + paid.update(physics['idle']) + require(sum(targets.values()) == fields['productive_fields'], 'productive count equals distinct arbitrary inputs') + return {'targets':targets, 'paid':paid, 'productive_fields':sum(targets.values()), 'paid_calls':sum(paid.values()), + 'target_mass':sum(r*n for r,n in targets.items()), 'paid_mass':sum(r*n for r,n in paid.items())} + + +def compare_invoice(actual, expected): + require(actual['targets'] == Counter({int(k):v for k,v in expected['targets'].items()}), 'complete productive rank histogram') + require(actual['paid'] == Counter({int(k):v for k,v in expected['paid'].items()}), 'complete paid rank histogram') + require(actual['productive_fields'] == expected['productive_fields'] and actual['paid_calls'] == expected['paid_calls'], 'independent count totals') + require(actual['target_mass'] - actual['paid_mass'] == expected['rank_mass_surplus'], 'independent rank-mass surplus') + + +def chronology(word, witnesses): + slots = {'ADD':(1,2),'SCALE':(1,),'SWAP':(1,2),'LOCAL':(2,3),'QUERY':(1,2),'IDLE':(1,2),'IDLE_ONE':(1,),'LAMBDA':(1,),'Q_POWER':(1,)} + actual_handoffs = [] + for number, witness in enumerate(witnesses): + # Witness zero belongs to the intermediate 33-field word. Later input + # bases precede that whole word and shift its earlier cut chronologically. + offset = sum(len(later['input_basis']) for later in witnesses[number+1:]) + handoff = witness['handoff_after'] + offset + pivot,fresh = witness['pivot'], witness['fresh'] + require(all(event[j] != fresh for event in word['events'][:handoff+1] for j in slots[event[0]]), 'fresh handoff input untouched in entire prefix') + cut_basis = witness['cut_basis'] + require(word['events'][handoff-len(cut_basis)+1:handoff+1] == cut_basis, 'complete cut basis at actual chronological handoff') + require(word['events'][handoff-len(cut_basis)] == ['IDLE_ONE',2,witness['prefix_stages']], 'handoff immediately follows the paid fragment') + require(word['diagonal'][pivot] == witness['prefix_target'] and word['diagonal'][fresh] == witness['suffix_target'], 'retirement endpoint credit matches literal witness') + first_fresh = next(i for i,event in enumerate(word['events']) if any(event[j] == fresh for j in slots[event[0]])) + require(first_fresh == handoff+1, 'fresh suffix starts immediately after completed prefix') + require(all(event[j] != pivot for event in word['events'][handoff+1:] for j in slots[event[0]]), 'retired productive output retained untouched through the full suffix') + actual_handoffs.append(handoff) + return {'fresh_inputs': [w['fresh'] for w in witnesses], 'witness_handoffs':[w['handoff_after'] for w in witnesses], 'literal_final_handoffs':actual_handoffs} + + +def central_normalization(): + def mul(a,b): + return (a[0]*b[0]-a[1]*b[1], a[0]*b[1]+a[1]*b[0]) + values = [(1,0),(0,1),(-1,0),(0,-1)] + for j,q in enumerate(values): + lam = (1,0) if j%2 == 0 else (0,1) + inverse = (lam[0],-lam[1]) + require(mul(lam,inverse)==(1,0), 'ordinary lambda and inverse are exact') + central = mul(lam,(q[0],-q[1])) + require(mul(central,central)==(1,0), 'normalized central S is an involution') + # At two odd factor characters Q_total=-1, lambda(Q_total)=+1, + # whereas tensoring the two factor lambdas would incorrectly give -1. + require((1,0) != mul((0,1),(0,1)), 'global lambda must remain outside tensor powers') + return {'central_characters':4,'two_factor_lambda_disagreement':True, + 'rule':'Physical Gaussian maps tensor factorwise; ordinary scalar coefficients and lambda polynomials act on the total Q outside tensor powers.'} + + +def coordinate_swaps(selected, dimension): + """Map a subset of canonical axes to the first r axes by explicit exchanges.""" + require(len(set(selected)) == len(selected), 'adapter axes distinct') + require(all(0 <= axis < dimension for axis in selected), 'adapter axes in ambient carrier') + wanted = set(range(len(selected))) + swaps = list(zip(sorted(set(selected)-wanted), sorted(wanted-set(selected)))) + def move(axis): + for a,b in swaps: + if axis == a: + axis = b + elif axis == b: + axis = a + return axis + require({move(axis) for axis in selected} == wanted, 'explicit Gaussian axis permutation') + require(all(move(move(axis)) == axis for axis in range(dimension)), 'permutation adapter inverse') + require(len(swaps) <= len(selected), 'rank-many two-axis exchanges suffice') + return swaps + + +def adapter_inventory(word, native, recipes): + """Charge complete canonical-job input/output conversions, including full idles.""" + by_port = {r['q']:r for r in recipes['recipes']} + for q in native['ports']: + basis = [q]+by_port[q]['idle_children'][0]['orthogonal_axes'][:8] + # This nine-axis map sends q to coordinate zero, fixes all spectators, + # and sends its orthonormal complement to coordinates one through eight. + def convert(value): + return (value & ~511) | sum(((value & axis).bit_count()%2) << i for i,axis in enumerate(basis)) + require([convert(axis) for axis in basis] == [1 << i for i in range(9)], 'explicit nine-axis q-to-coordinate adapter') + require(all((a&b).bit_count()%2 == (i==j) for i,a in enumerate(basis) for j,b in enumerate(basis)), 'q adapter orthogonal and invertible') + records = {'main':[], 'idle':[], 'query':[]} + for role,(qp,zero,*selection) in enumerate(word['diagonal']): + axes = ([0] if qp else []) + [axis for stage,yes in enumerate(selection,1) if yes for axis in range(9+8*(stage-1),9+8*stage)] + exchanges = coordinate_swaps(axes,word['ambient_rank']) + for q in native['ports']: + # Both whole-job boundaries are charged, even though a target + # interface may permit some of these maps to remain implicit. + records['main'].append([role,q,len(exchanges),2*bool(qp),int(qp==-1)]) + for index,event in enumerate(word['events']): + if event[0] in ('IDLE','IDLE_ONE'): + owners,stages = (event[1:3],event[3]) if event[0]=='IDLE' else ([event[1]],event[2]) + axes = [axis for stage in stages for axis in range(9+8*(stage-1),9+8*stage)] + exchanges = coordinate_swaps(axes,word['ambient_rank']) + records['idle'].extend([index,owner,q,len(exchanges)] for owner in owners for q in native['ports']) + elif event[0]=='QUERY': + _,dst,src,power = event + require(dst != src and all(0<=r= self.origin-1, 'no ancestor access') + self.actions += 1 + self.highwater = max(self.highwater, self.pos) + + def read(self): + self.tick() + return self.cells.get(self.pos, A.BLANK) + + def write(self, symbol): + self.tick() + require(self.pos >= self.origin, 'origin marker is protected') + self.cells[self.pos] = symbol + + def move(self, direction): + require(direction in (-1, 1), 'unit head step') + self.tick(); self.pos += direction + require(self.pos >= self.origin-1, 'no ancestor crossing') + self.highwater = max(self.highwater, self.pos) + + def body(self): + stop = self.origin + while self.cells.get(stop, A.BLANK) != A.BLANK: + stop += 1 + return tuple(self.cells[k] for k in range(self.origin, stop)) + + def check_origin(self): + require(self.pos == self.origin and self.cells[self.origin-1] == A.LEFT and self.cells[self.origin-2] == 91, + 'complete local head and ancestor restoration') + + +def encode(values, widths): + raw = [] + for x, width in zip(values, widths): + require(-(1 << (width-1)) <= x < (1 << (width-1)), 'signed fixture domain') + for symbol in tuple((x >> j) & 1 for j in range(width)) + (A.COMPONENT,): + raw += [(symbol >> k) & 1 for k in (2, 1, 0)] + return tuple(raw) + + +def verify(): + cases = 0 + actions = 0 + for widths in ((1, 1), (1, 2), (2, 3), (5, 5), (8, 16), (65, 129), (129, 1, 3, 8)): + for pattern in range(3): + values = tuple((-(1 << (w-1)) if pattern == 0 else + (1 << (w-1))-1 if pattern == 1 else 0) for w in widths) + body = encode(values, widths); V = len(body); L = V//3; bits = sum(widths) + for dirty in (0, 1, 17, V+11): + source = Tape(body, 31); target = Tape((1,)*dirty, 97) + A.initialize(target, source) + require(source.actions+target.actions == 5*dirty+25*V//3+17, 'exact INIT cost including dirty erasure and heads') + require(target.body() == encode((0,)*len(widths), widths) and source.body() == body, 'actual cleared complete shape') + source.check_origin(); target.check_origin() + before = source.actions+target.actions + A.copy_as_add(target, source) + require(source.actions+target.actions-before == 14*L+9*bits+4*V+14, 'exact COPY numerical/source-access/head cost') + require(target.body() == source.body() == body, 'arbitrary signed copied contents') + source.check_origin(); target.check_origin() + before = target.actions; old_backing = target.highwater + A.retire(target) + require(target.actions-before == 5*V+7 and target.body() == (), 'exact physical erasure cost') + require(all(v == A.BLANK for k, v in target.cells.items() if k >= target.origin), 'no raw coded bits survive') + require(target.highwater >= old_backing, 'erasure retains historical backing') + source.check_origin(); target.check_origin() + actions += source.actions+target.actions; cases += 1 + # COPY is actual addition: an uncleared numerical residue is preserved. + source = Tape(encode((2, 0), (3, 3))); target = Tape(encode((1, 0), (3, 3)), 97) + A.copy_as_add(target, source) + require(target.body() == encode((3, 0), (3, 3)) and target.body() != source.body(), 'uncleared-copy negative control exposes residual') + return {'physical_scan_cases': cases, 'physical_cell_actions': actions, + 'checked_functions': ['initialize', 'copy_as_add', 'retire'], + 'normal_head_and_raw_erasure_controls': True, 'dirty_copy_control': True, + 'Gaussian_or_fullcaller_execution': False} diff --git a/research/p104-qself-owned-lowering/source_binding.py b/research/p104-qself-owned-lowering/source_binding.py new file mode 100644 index 0000000000..b56bfcf7af --- /dev/null +++ b/research/p104-qself-owned-lowering/source_binding.py @@ -0,0 +1,32 @@ +"""Authenticate the exact, narrowly vendored source dependency capsule.""" +from pathlib import Path +import gzip +import hashlib +import json + +ROOT = Path(__file__).resolve().parent + + +def require(ok, why): + if not ok: + raise ValueError(why) + + +def authenticate(): + pins = json.loads((ROOT/'DEPENDENCIES.json').read_bytes()) + for row in pins['files']: + raw = (ROOT/row['local_path']).read_bytes() + require(len(raw) == row['bytes'], 'source length: '+row['local_path']) + require(hashlib.sha256(raw).hexdigest() == row['sha256'], 'source SHA256: '+row['local_path']) + require(hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() == row['git_blob'], + 'source Git blob: '+row['local_path']) + return len(pins['files']) + + +def inputs(): + authenticate() + def read(name): + b = (ROOT/name).read_bytes() + return json.loads(gzip.decompress(b) if name.endswith('.gz') else b) + return (read('data/caller_efree.json'), read('data/caller_6936.json'), + read('data/word_6936.json.gz'), read('QUERY-BASES.json')) diff --git a/research/p104-qself-owned-lowering/vendor/machine.py b/research/p104-qself-owned-lowering/vendor/machine.py new file mode 100644 index 0000000000..acf475e4fc --- /dev/null +++ b/research/p104-qself-owned-lowering/vendor/machine.py @@ -0,0 +1,406 @@ +"""Literal lifecycle control on fixed sequential tapes. + +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +Stack is the authenticated #5356 implementation supplied by the loader. +Algorithms never read tape addresses, extents, hardware arrays or a host stack. +Instruction and primitive tables are fixed before runtime inputs vary. +""" +from dataclasses import dataclass + +ZERO, ONE, LEFT, SEP, END, BASE, BLANK = range(7) +COMPONENT = 2 + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def emit(tape, symbol): + tape.write(symbol) + tape.move(1) + + +def origin(tape, marker=LEFT): + tape.move(-1) + while tape.read() != marker: + tape.move(-1) + tape.move(1) + + +def retire(tape, marker=LEFT): + """Erase all coded bytes, including encoded logical blanks.""" + origin(tape, marker) + while (symbol := tape.read()) != BLANK: + need(symbol in (ZERO, ONE), "contiguous binary body") + emit(tape, BLANK) + origin(tape, marker) + + +def transfer(source, target, source_marker=LEFT, target_marker=LEFT): + """Administrative actual-byte copy; never an arithmetic COPY.""" + origin(source, source_marker) + origin(target, target_marker) + need(target.read() == BLANK, "administrative transfer needs empty target") + while (symbol := source.read()) != BLANK: + need(symbol in (ZERO, ONE), "binary transfer") + emit(target, symbol) + source.move(1) + origin(source, source_marker) + origin(target, target_marker) + + +class CodedPort: + """Seven virtual symbols encoded as three nonblank physical bits. + + The physical LEFT before the current body is never exposed as data. + A left step at its local origin rejects. Two-sided routines first use + the standard translation to two one-sided ports. + """ + __slots__ = ("tape",) + + def __init__(self, tape): + self.tape = tape + + def read(self): + t = self.tape + if t.read() == BLANK: + return 4 + value = 0 + for _ in range(3): + bit = t.read() + need(bit in (ZERO, ONE), "whole virtual codeword") + value = 2 * value + bit + t.move(1) + for _ in range(3): + t.move(-1) + need(value < 7, "unused virtual codeword") + return value + + def write(self, value): + need(type(value) is int and 0 <= value < 7, "virtual alphabet") + for shift in (2, 1, 0): + emit(self.tape, (value >> shift) & 1) + for _ in range(3): + self.tape.move(-1) + + def move(self, direction): + need(direction in (-1, 1), "virtual unit move") + t = self.tape + if direction == 1: + if t.read() == BLANK: + self.write(4) + for _ in range(3): + t.move(1) + else: + t.move(-1) + if t.read() == LEFT: + t.move(1) + raise ValueError("native routine crossed its local origin") + t.move(-1) + t.move(-1) + + +class BinaryContextPort: + """Read-only raw binary descriptor, with its own physical alphabet. + + Unlike CodedPort, read returns physical BLANK=6 at the frontier. A table + may inspect that frontier but cannot pass it or the current LEFT marker. + This supplies runtime e/f/K/rho data through counted local operations. + """ + __slots__ = ("tape",) + + def __init__(self, tape): + self.tape = tape + + def read(self): + symbol = self.tape.read() + need(symbol in (ZERO, ONE, BLANK), "binary context alphabet") + return symbol + + def write(self, value): + raise ValueError("native context is read-only") + + def move(self, direction): + need(direction in (-1, 1), "binary context unit move") + t = self.tape + if direction == 1: + need(t.read() in (ZERO, ONE), "context frontier cannot be crossed") + t.move(1) + else: + t.move(-1) + if t.read() == LEFT: + t.move(1) + raise ValueError("native context crossed its local origin") + + +def read_code(tape): + """Consume a numeric-format code; physical frontier returns None.""" + if tape.read() == BLANK: + return None + value = 0 + for _ in range(3): + bit = tape.read() + need(bit in (ZERO, ONE), "numeric codeword") + value = 2 * value + bit + tape.move(1) + need(value < 7, "unused numeric codeword") + return value + + +def write_code(tape, value): + for shift in (2, 1, 0): + emit(tape, (value >> shift) & 1) + + +def initialize(target, shape): + """Dispose of arbitrary old bytes, then zero the complete common format.""" + need(target is not shape, "private initialization cannot destroy its guide") + retire(target) + origin(shape) + in_component = False + while (symbol := read_code(shape)) is not None: + need(symbol in (ZERO, ONE, COMPONENT), "canonical signed components") + if symbol == COMPONENT: + need(in_component, "positive component width") + write_code(target, COMPONENT) + in_component = False + else: + write_code(target, ZERO) + in_component = True + need(not in_component, "component terminator") + origin(shape) + origin(target) + + +def copy_as_add(target, source): + """Signed addition into the actual destination, including any residue. + + Components are little-endian two's complement followed by COMPONENT. + Carries reset at delimiters; equal-sign signed overflow rejects. + No ideal-zero test or exact-value overwrite substitutes for addition. + """ + need(target is not source, "distinct COPY/ADD ports") + origin(source) + origin(target) + carry = 0 + last_a = last_b = last_out = 0 + in_component = False + while True: + a = read_code(source) + b = read_code(target) + need((a is None) == (b is None), "same complete numerical extent") + if a is None: + need(not in_component, "complete signed component") + break + need(a in (ZERO, ONE, COMPONENT) and b in (ZERO, ONE, COMPONENT), + "canonical signed addition operands") + need((a == COMPONENT) == (b == COMPONENT), "same component boundaries") + if a == COMPONENT: + need(in_component, "positive signed component width") + need(last_a != last_b or last_out == last_a, "signed addition overflow") + carry = 0 + in_component = False + continue + value = a + b + carry + last_a, last_b, last_out = a, b, value & 1 + carry = value >> 1 + for _ in range(3): + target.move(-1) + write_code(target, last_out) + in_component = True + origin(source) + origin(target) + + +def execute_table(table, ports, readonly_context=()): + """Run a supplied finite native table with every port confined. + + These tables retain explicit semantics/time/space premises. Fixture + tables are not advertised as Gaussian implementations. + """ + views = (tuple(CodedPort(t) for t in ports) + + tuple(BinaryContextPort(t) for t in readonly_context)) + pc = 0 + while True: + row = table[pc] + op = row[0] + if op == "halt": + break + if op == "reject": + raise ValueError(row[1]) + if op == "goto": + pc = row[1] + continue + view = views[row[1]] + if op == "branch": + pc = dict(row[2]).get(view.read(), row[3]) + continue + if op == "write": + view.write(row[2]) + elif op == "move": + view.move(row[2]) + else: + raise ValueError("native table opcode") + pc += 1 + for tape in tuple(ports)+tuple(readonly_context): + origin(tape) + + +@dataclass(frozen=True) +class Instruction: + op: str + ports: tuple = () + token: tuple = () + + +class Controller: + """Fixed finite controller of a fixed flat compiled template. + + rows implements the separately priced row/shape interface; all its + dynamic state belongs on the supplied tapes. services contains fixed + finite transition tables. Payload ports include metadata and all scratch. + The only runtime continuation is the physical Stack. + """ + def __init__(self, program, public_count, payloads, control, descriptor, + bridge, child_header, rows, services, stack_class, protected_ports=(), + primitive_work=(), primitive_context=()): + self.program = tuple(program) + self.public_count = public_count + self.payloads = tuple(payloads) + self.control = control + self.descriptor = descriptor + self.bridge = bridge + self.child_header = child_header + self.rows = rows + self.services = services + need(len({id(t) for t in self.payloads+(control,descriptor,bridge,child_header)}) + == len(self.payloads)+4, "all physical ports distinct") + self.stack = stack_class(self.payloads, control, descriptor) + self.protected_ports = tuple(protected_ports) + owned = {e.ports[0] for e in self.program if e.op == "INIT"} + need(all(public_count <= i < len(self.payloads) for i in owned), "INIT only private physical slots") + need(owned.isdisjoint(self.protected_ports), "owned fields cannot be borrowed descriptors") + self.root_cleanup = tuple(i for i in range(public_count,len(self.payloads)) + if i not in self.protected_ports) + self.primitive_work = tuple(primitive_work) + self.primitive_context = tuple(primitive_context) + data_ports = {i for e in self.program for i in e.ports} + need(all(0 <= i < len(self.payloads) for i in data_ports), "compiled port range") + need(all(i >= public_count and i < len(self.payloads) and i not in data_ports + and i not in self.protected_ports for i in self.primitive_work), "separate primitive scratch") + need(len(set(self.primitive_work)) == len(self.primitive_work), "distinct primitive work ports") + need(len(set(self.primitive_context)) == len(self.primitive_context) + and all(i in self.protected_ports and 0 <= i < len(self.payloads) + and i not in data_ports for i in self.primitive_context), "borrowed binary context ports") + self.pc_bits = max(1, (len(self.program) - 1).bit_length()) + self.pc_words = tuple(tuple((pc >> j) & 1 for j in range(self.pc_bits)) + for pc in range(len(self.program))) + need(self.program and self.program[-1].op == "RET", "finite completed program") + + def save_pc(self, pc): + need(self.descriptor.read() == BLANK, "empty active PC descriptor") + for bit in self.pc_words[pc]: + emit(self.descriptor, bit) + origin(self.descriptor, BASE) + + def consume_pc(self): + pc = 0 + for shift in range(self.pc_bits): + bit = self.descriptor.read() + need(bit in (ZERO, ONE), "binary return PC") + pc |= bit << shift + emit(self.descriptor, BLANK) + need(self.descriptor.read() == BLANK, "exact fixed return PC width") + origin(self.descriptor, BASE) + need(pc < len(self.program) and pc > 0 and self.program[pc-1].op == "PAID", + "return PC designates a paid continuation") + return pc + + def has_parent(self): + self.control.move(-1) + symbol = self.control.read() + self.control.move(1) + need(symbol in (BASE, END), "complete continuation top") + return symbol == END + + def descend(self, pc): + event = self.program[pc] + source = self.payloads[event.ports[0]] + transfer(source, self.bridge, target_marker=BASE) + self.rows.prepare(event.token, self.child_header) + self.save_pc(pc + 1) + self.stack.push((True,) * len(self.payloads)) + self.rows.install(self.bridge, self.child_header, + self.payloads[:self.public_count]) + retire(self.bridge, BASE) + retire(self.child_header, BASE) + + def primitive(self, token, fields): + for i in self.primitive_work: + retire(self.payloads[i]) + execute_table(self.services[token], + tuple(self.payloads[i] for i in fields+self.primitive_work), + tuple(self.payloads[i] for i in self.primitive_context)) + for i in self.primitive_work: + retire(self.payloads[i]) + + def ascend(self): + self.rows.collect(self.payloads[:self.public_count], self.bridge) + for tape in self.payloads: + retire(tape) + self.stack.pop() # ignore observer sizes and heads + pc = self.consume_pc() + target = self.payloads[self.program[pc-1].ports[0]] + retire(target) + transfer(self.bridge, target, source_marker=BASE) + retire(self.bridge, BASE) + return pc + + def run(self, observe=None): + pc = 0 + while True: + event = self.program[pc] + if observe is not None: + observe("before", pc, event) # checker only; ignores return value + if event.op == "INIT": + initialize(self.payloads[event.ports[0]], self.payloads[0]) + pc += 1 + elif event.op == "CLEAR": + retire(self.payloads[event.ports[0]]) + pc += 1 + elif event.op == "COPY": + copy_as_add(self.payloads[event.ports[0]], self.payloads[event.ports[1]]) + pc += 1 + elif event.op == "SERVICE": + self.primitive(event.token,event.ports) + pc += 1 + elif event.op == "PAID": + if self.rows.is_leaf(event.token): + self.primitive(("leaf",)+event.token,event.ports) + pc += 1 + else: + self.descend(pc) + pc = 0 + elif event.op == "RET": + if not self.has_parent(): + for i in self.root_cleanup: + retire(self.payloads[i]) + break + pc = self.ascend() + else: + raise ValueError("compiled opcode") + if observe is not None: + observe("after", pc, event) + + +def boundary_actions(q, b, parent_total, child_total, input_length, + output_length, staged_header_length): + """Exact descend+ascend actions, excluding the three row-service calls. + + Also excludes caller leaf/top tests. All heads are at local origins. + Includes PC, all retirement, occupied-target replacement and both relays. + """ + return (4 * parent_total + 5 * child_total + 18 * input_length + + 13 * output_length + 5 * staged_header_length + + 38 * q + 27 * b + 103) diff --git a/research/p104-qself-owned-lowering/vendor/source_ir.py b/research/p104-qself-owned-lowering/vendor/source_ir.py new file mode 100644 index 0000000000..79c95fa794 --- /dev/null +++ b/research/p104-qself-owned-lowering/vendor/source_ir.py @@ -0,0 +1,522 @@ +"""Source-driven lifecycle IR and finite compiler lowering. + +All recursion/dictionaries here belong to template construction, before runtime +input size varies. machine.py executes the resulting fixed finite program. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +from dataclasses import dataclass +from fractions import Fraction + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +@dataclass(frozen=True) +class Event: + op: str + fields: tuple + token: tuple = () + rank: int = 0 + + +@dataclass(frozen=True) +class Unit: + name: str + roles: tuple + owned: tuple + events: tuple + + def check(self): + public = {name for name, rank in self.roles} + private = set(self.owned) + need(len(public) == len(self.roles) and len(private) == len(self.owned), "unique unit names") + need(public.isdisjoint(private), "public/private name separation") + need(all(type(r) is int and r >= 1 for _, r in self.roles), "positive target ranks") + live = set() + for e in self.events: + need(e.op in ("INIT", "CLEAR", "COPY", "SERVICE", "PAID"), "unit opcode") + if e.op == "INIT": + need(len(e.fields) == 1 and e.fields[0] in private and e.fields[0] not in live, "fresh private INIT") + live.add(e.fields[0]) + elif e.op == "CLEAR": + need(len(e.fields) == 1 and e.fields[0] in live, "CLEAR only own live bank") + live.remove(e.fields[0]) + else: + need(e.fields and all(f in public or f in live for f in e.fields), "use outside private lifetime") + if e.op == "COPY": + need(len(e.fields) == 2 and e.fields[0] in live + and e.fields[0] != e.fields[1], "private COPY ports") + if e.op == "PAID": + need(len(e.fields) == 1 and type(e.rank) is int and e.rank > 0, "positive whole paid job") + need(not live, "all private lifetimes end") + return self + + def pieces(self): + fragments, rounds = [[]], [] + for e in self.events: + if e.op == "PAID": + rounds.append(e) + fragments.append([]) + else: + fragments[-1].append(e) + return tuple(tuple(f) for f in fragments), tuple(rounds) + + +def remap(event, names, context=(), rank_factor=1): + return Event(event.op, tuple(names[f] for f in event.fields), + context + (event.token,), event.rank * rank_factor) + + +def product(left, right): + """p7-TENSOR chronological substitution; never tensor an operator sum.""" + left.check(); right.check() + lf, lr = left.pieces() + roles = tuple(((i,j),k*h) for i,k in left.roles for j,h in right.roles) + owned, maps, events = [], {}, [] + for j,h in right.roles: + maps[j] = {i:(i,j) for i,_ in left.roles} + for o in left.owned: + fresh = ("left",j,o) + owned.append(fresh); maps[j][o] = fresh + for j,h in right.roles: + for i,_ in left.roles: + events.append(Event("SERVICE",((i,j),),("product-left-enter",j,h,i))) + for ell in range(len(lr)+1): + for j,h in right.roles: + events += [remap(e,maps[j],("product-left",j,h)) for e in lf[ell]] + if ell == len(lr): + break + issuing = lr[ell] + names = {j:maps[j][issuing.fields[0]] for j,_ in right.roles} + need(len(set(names.values())) == len(names), "distinct product request owners") + for o in right.owned: + fresh = ("right",ell,o) + owned.append(fresh); names[o] = fresh + events += [Event("SERVICE",(names[j],),("product-enter",ell,j,issuing.token)) for j,_ in right.roles] + events += [remap(e,names,("product-right",ell,issuing.rank,issuing.token),issuing.rank) for e in right.events] + events += [Event("SERVICE",(names[j],),("product-return",ell,j,issuing.token)) for j,_ in right.roles] + for j,h in right.roles: + for i,_ in left.roles: + events.append(Event("SERVICE",((i,j),),("product-left-return",j,h,i))) + return Unit(left.name+"*"+right.name,roles,tuple(owned),tuple(events)).check() + + +def completion_split(unit, cutoff, floor): + unit.check() + need(0 < cutoff < floor <= max(k for _,k in unit.roles), "completion/splitting domain") + completed = [(name,k) for name,k in unit.roles if k < floor] + events = [Event("SERVICE",(name,),("whole-job-in",k,floor)) for name,k in completed] + extended = list(unit.events) + for name,k in completed: + extended.append(Event("PAID",(name,),("completion",k,floor),floor-k)) + for e in extended: + if e.op != "PAID": + events.append(e); continue + start = 0 + while start < e.rank: + size = min(cutoff,e.rank-start) + token = ("piece",start,size,e.rank,e.token) + events += [Event("SERVICE",e.fields,("piece-enter",)+token), + Event("PAID",e.fields,token,size), + Event("SERVICE",e.fields,("piece-return",)+token)] + start += size + events += [Event("SERVICE",(name,),("whole-job-out",k,floor)) for name,k in completed] + return Unit(unit.name+"/pass",tuple((name,max(k,floor)) for name,k in unit.roles), + unit.owned,tuple(events)).check() + + +def current_local(word): + """Retain every current #6030 operand, chart, lifetime and paid position. + + No all-column algebra is redone. MOVE ranks are the dimension differences + in the authenticated source rule, with their native meaning retained. + """ + p,o = word["public"],word["owned_fields"] + frames = word["frames"] + current = list(word["initial"])+[None]*o + live,untouched,starts,episodes = set(),set(),{},[] + events,moves,peak = [],Counter(),0 + for pc,raw in enumerate(word["program"]): + op,r = raw[:2] + need(type(r) is int and 0 <= r < p+o,"current local role") + token = ("local",pc,tuple(raw)) + if op == "INIT": + need(p <= r and r not in live,"current fresh private INIT") + live.add(r); untouched.add(r); starts[r] = pc + current[r] = raw[2]; peak = max(peak,len(live)) + events.append(Event("INIT",(r,),token)) + elif op == "CLEAR": + need(r in live and current[r] == raw[2],"current owned CLEAR chart") + live.remove(r); untouched.discard(r) + episodes.append((r,starts.pop(r),pc)); current[r] = None + events.append(Event("CLEAR",(r,),token)) + elif op == "MOVE": + need(len(raw) == 5 and type(raw[4]) is bool,"typed private MOVE flag") + need(current[r] == raw[2] and (r in live) == raw[4],"current MOVE owner and chart") + need(r < p or r in live,"live MOVE source") + rank = abs(len(frames[raw[3]])-len(frames[raw[2]])) + need(rank > 0,"current positive MOVE rank") + current[r] = raw[3]; moves[rank] += 1 + untouched.discard(r) + events += [Event("SERVICE",(r,),("move-in",)+token), + Event("PAID",(r,),token,rank), + Event("SERVICE",(r,),("move-out",)+token)] + else: + need(op in ("COPY","ADD","SCALE") and current[r] == raw[-1],"current scalar destination chart") + need(r < p or r in live,"live scalar destination") + coefficient = Fraction(raw[-2]) + need(coefficient != 0,"nonzero source coefficient") + if op == "SCALE": + fields = (r,) + else: + src = raw[2] + need(type(src) is int and 0 <= src < p+o and src != r,"current distinct scalar source") + need((src < p or src in live) and current[src] == raw[-1],"current common scalar chart") + fields = (r,src) + if op == "COPY": + need(r in untouched and coefficient == 1,"current COPY follows untouched INIT with coefficient one") + events.append(Event("COPY",fields,token)) + else: + events.append(Event("SERVICE",fields,token)) + untouched.discard(r) + need(not live and current[:p] == word["final"],"current complete local exit") + return tuple(events),dict(events=len(word["program"]),owned_labels=o, + owned_lifetimes=len(episodes),peak_live=peak, + episodes=episodes,paid=dict(sorted(moves.items()))) + + +def current_caller(word,caller): + """Exact outer/local field maps and explicit copied-query lifetimes. + + Named contact/normalizer/query services retain source endpoint meanings. + Every original scalar/MOVE token and its chronology are preserved. + """ + local_events,report = current_local(word) + ports = tuple(word["live"]) + need(len(ports) == len(set(ports)) == 104,"current 104 ports") + need((caller["kind"],caller["pairs"],caller["prefix_pairs"],caller["ambient_rank"]) + == ("complex",16,7,145),"current physical caller family") + main_local = set(ports)|{x+112 for x in ports} + helpers = sorted(set(range(word["public"]))-main_local) + locals_ = [e for e in caller["physical_events"] if e[0] == "LOCAL"] + need(len(locals_) == 18 and all(not e[3] for e in locals_),"current forward local sites") + public = 32*104+18*len(helpers) + own_first,query_first = public,public+18*word["owned_fields"] + owned = tuple(range(public,query_first+104)) + roles = [] + for i,term in enumerate(caller["diagonal"]): + stages = term[1:] + rank = (9 if stages[0] else 1)+8*sum(stages[1:]) + roles += [(i*104+j,rank) for j in range(104)] + events,local_sites,query_sites = [],[],[] + def scalar(raw,context): + for j in range(104): + fields = (raw[1]*104+j,) if raw[0] == "SCALE" else (raw[1]*104+j,raw[2]*104+j) + events.append(Event("SERVICE",fields,context+(j,tuple(raw)))) + for raw in caller["boundaries"]["right_program"]: + scalar(raw,("boundary-right",)) + local_number = 0 + for site,raw in enumerate(caller["physical_events"]): + op = raw[0] + if op == "LOCAL": + _,stage,pair,reverse = raw + need(not reverse,"all-forward local occurrence") + names = {} + for j,r in enumerate(ports): + names[r] = 2*pair*104+j; names[r+112] = (2*pair+1)*104+j + for j,r in enumerate(helpers): + field = 32*104+local_number*len(helpers)+j + names[r] = field + rank = len(word["frames"][word["final"][r]])-len(word["frames"][word["initial"][r]]) + roles.append((field,rank)) + for j in range(word["owned_fields"]): + names[word["public"]+j] = own_first+local_number*word["owned_fields"]+j + need(len(names) == len(set(names.values())) == word["public"]+word["owned_fields"], + "injective complete current local grant") + for r in range(word["public"]): + events.append(Event("SERVICE",(names[r],),("local-entry",site,stage,r))) + events += [remap(e,names,("caller-local",site,stage)) for e in local_events] + for r in range(word["public"]): + events.append(Event("SERVICE",(names[r],),("local-return",site,stage,r))) + local_sites.append((site,stage,tuple(sorted(names.items())))); local_number += 1 + elif op == "QUERY_SHEAR": + _,stage,pair,reverse = raw + need(not reverse,"current forward query") + for j in range(104): + x,y,z = 2*pair*104+j,(2*pair+1)*104+j,query_first+j + token = ("query",site,stage,j) + events += [Event("INIT",(z,),token),Event("COPY",(z,x),token), + Event("SERVICE",(z,),("query-in",)+token),Event("PAID",(z,),token,1), + Event("SERVICE",(z,),("query-out",)+token), + Event("SERVICE",(y,z),("query-add",)+token),Event("CLEAR",(z,),token)] + query_sites.append((site,j,x,y,z)) + elif op == "IDLE": + for side in (0,1): + for j in range(104): + field = (2*raw[1]+side)*104+j + token = ("idle",site,tuple(raw[2]),side,j) + events += [Event("SERVICE",(field,),("idle-in",)+token), + Event("PAID",(field,),token,8*len(raw[2])), + Event("SERVICE",(field,),("idle-out",)+token)] + elif op == "Q_POWER": + for j in range(104): + events.append(Event("SERVICE",(raw[1]*104+j,),("central-square",site,j,raw[2]))) + else: + need(op in ("ADD","SWAP","SIGNED_SWAP"),"current outer scalar opcode") + scalar(raw,("outer",site)) + for raw in caller["boundaries"]["left_program"]: + scalar(raw,("boundary-left",)) + roles = tuple(sorted(roles)) + need([r for r,_ in roles] == list(range(public)),"every productive field supplied once") + # The pinned occurrence theorem supplies the complete 145-coordinate + # whole-job canonicalizers. Each is a charged service, never a free name. + events = ([Event("SERVICE",(r,),("raw-whole-job-enter",r,k)) for r,k in roles] + +events+[Event("SERVICE",(r,),("raw-whole-job-return",r,k)) for r,k in roles]) + unit = Unit("selected6030",roles,owned,tuple(events)).check() + report.update(public_count=public,raw_owned=len(owned),local_sites=len(local_sites), + query_lifetimes=len(query_sites),total_lifetimes=18*report["owned_lifetimes"]+len(query_sites), + raw_paid=dict(sorted(Counter(e.rank for e in events if e.op=="PAID").items())), + raw_targets=dict(sorted(Counter(k for _,k in roles).items())),raw_events=len(events)) + return unit,report + + +def lower(unit,rank,source): + """Refine #5443's unchanged matching, with no partial/interface fallback. + + Insert all inter-round fragments before a class is suspended. Flatten + finite compiler substitutions; only rank-one leaves make runtime children. + """ + unit.check() + fragments,rounds = unit.pieces() + need(rounds,"nonempty paid word") + need(max(e.rank for e in rounds)