From 7e41970a5dc06e665ca1efe95b888d05fca743ae Mon Sep 17 00:00:00 2001 From: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Date: Thu, 6 Feb 2025 23:20:14 -0500 Subject: [PATCH 1/6] Update to actions/upload-artifact@v4 (#888) --- .github/workflows/auto-review-trigger.yml | 2 +- .github/workflows/ci.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-review-trigger.yml b/.github/workflows/auto-review-trigger.yml index d11fb61ac6..5d3233f47d 100644 --- a/.github/workflows/auto-review-trigger.yml +++ b/.github/workflows/auto-review-trigger.yml @@ -56,7 +56,7 @@ jobs: files: pr-number.txt - name: Save PR Number - uses: actions/upload-artifact@65d862660abb392b8c4a3d1195a2108db131dd05 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 if: steps.check_pr_number_exists.outputs.files_exists == 'true' with: name: pr-number diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bda74a5223..5ddd235fb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: echo $MERGE_SHA > ./pr/merge_sha - name: Upload PR Number - uses: actions/upload-artifact@65d862660abb392b8c4a3d1195a2108db131dd05 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 with: name: pr_number path: pr/ @@ -42,12 +42,12 @@ jobs: steps: - name: Checkout EIPs - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: repository: ethereum/EIPs path: '' - name: Checkout ERCs - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: repository: ethereum/ERCs path: ERCs From 5ef919e6c9f8c48a4032afde77efdd19b6affe88 Mon Sep 17 00:00:00 2001 From: Artem Chystiakov <47551140+Arvolear@users.noreply.github.com> Date: Fri, 7 Feb 2025 13:16:39 +0200 Subject: [PATCH 2/6] Add ERC: ZK Identity Registry Merged by EIP-Bot. --- ERCS/erc-7812.md | 522 ++++++++++++++ .../erc-7812/circuits/SparseMerkleTree.circom | 272 +++++++ .../erc-7812/contracts/SparseMerkleTree.sol | 671 ++++++++++++++++++ assets/erc-7812/images/diagram.png | Bin 0 -> 415388 bytes 4 files changed, 1465 insertions(+) create mode 100644 ERCS/erc-7812.md create mode 100644 assets/erc-7812/circuits/SparseMerkleTree.circom create mode 100644 assets/erc-7812/contracts/SparseMerkleTree.sol create mode 100644 assets/erc-7812/images/diagram.png diff --git a/ERCS/erc-7812.md b/ERCS/erc-7812.md new file mode 100644 index 0000000000..cd74096ca3 --- /dev/null +++ b/ERCS/erc-7812.md @@ -0,0 +1,522 @@ +--- +eip: 7812 +title: ZK Identity Registry +description: Singleton registry system for storing abstract private provable statements. +author: Artem Chystiakov (@arvolear) , Oleksandr Kurbatov , Yaroslav Panasenko , Michael Elliot (@michaelelliot) , Vitalik Buterin (@vbuterin) +discussions-to: https://ethereum-magicians.org/t/erc-7812-zk-identity-registry/21624 +status: Draft +type: Standards Track +category: ERC +created: 2024-11-08 +--- + +## Abstract + +This EIP introduces an on-chain registry system for storing and proving abstract statements. Users may utilize the system to store commitments to their private data to later prove its validity and authenticity via zero knowledge, without disclosing anything about the data itself. Moreover, developers may use the singleton `EvidenceRegistry` contract available at `0x` to integrate custom business-specific registrars for managing and processing particular statements. + +## Motivation + +This EIP stemmed from the need to localize and unravel the storage and issuance of provable statements so that future protocols can anchor to the standardized singleton on-chain registry and benefit from cross-reuse. + +The aggregation of provable statements significantly improves reusability, portability, and security of the abundance of zero knowledge privacy-oriented solutions. The abstract specification of the registry allows custom indentity-based, reputation-based, proof-of-attendance-based, etc., protocols to be implemented with little to minimal constraints. + +The given proposal lays the important foundation for specific solution to build upon. The more concrete specifications of statements and commitments structures are expected to emerge as separate, standalone EIPs. + +## Specification + +The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. + +### Definitions + +- A "Sparse Merkle Tree (SMT)" is a special Merkle tree that works by deterministically and idempotently storing key/value pairs in the given locations leveraging a hash function. The Poseidon hash function is often used to optimize the compatibility with ZK. +- A "statement" is an accepted structured representation of some abstract evidence. A statement can range from a simple `string` to a Merkle root of some SMT. +- A "commitment" is a special public value resulting from blinding a statement to conceal it. Commitments allow the authenticity of a statement to be proven in ZK without disclosing the statement itself. +- A "commitment key" is a private salt mixed with the statement to obtain a commitment to that statement. The commitment key must be kept private to maintain the confidentiality of statements. + +### General + +The on-chain registry system consists of two subsystems: the `EvidenceRegistry` with `EvidenceDB` and `Registrar` components. This EIP will focus on describing and standardizing the former, while the `Registrar` specification may be amended as the separate proposals. + +![The on-chain evidence registry system entities diagram.](../assets/eip-7812/images/diagram.png) + +The on-chain evidence registry system entities diagram. + +The `EvidenceRegistry` acts as the entrypoint to a protocol-wide provable database `EvidenceDB` where arbitrary `32-byte` data can be written to and later proven on demand. The `Registrar` entities implement specific business use cases, structure the provable data, and utilize `EvidenceRegistry` to put this data in the `EvidenceDB`. + +In order to prove that certain data is or is not present in the `EvidenceDB` Merkle proofs may be used. Understanding how a specific `Registrar` has structured and put data into the `EvidenceDB`, one may implement an on-chain ZK verifier (using Circom or any other stack) and prove the inclusion (or exclusion) of the data in the database. + +The Circom implementation of a general-purpose SMT-driven `EvidenceDB` verifier circuit together with the Solidity implementation of `EvidenceRegistry` and `EvidenceDB` smart contracts may be found in the "Reference Implementation" section. + +### Evidence DB + +The `EvidenceDB` smart contract MAY implement an arbitrary provable key/value data structure, however it MUST support the `addition`, `update`, and `removal` of elements. All of the supported write operations MUST maintain the property of idempotence (e.i. `addition` followed by `removal` should not change the state of the database). The data structure of choice MUST be capable of providing both element inclusion and exclusion proofs. The functions that modify the `EvidenceDB` state MUST be callable only by the `EvidenceRegistry`. + +For reference, the `EvidenceDB` smart contract MAY implement the following interface: + +```solidity +pragma solidity ^0.8.0; + +/** + * @notice Evidence DB interface for Sparse Merkle Tree based statements database. + */ +interface IEvidenceDB { + /** + * @notice Represents the proof of a node's inclusion/exclusion in the tree. + * @param root The root hash of the Merkle tree. + * @param siblings An array of sibling hashes can be used to get the Merkle Root. + * @param existence Indicates the presence (true) or absence (false) of the node. + * @param key The key associated with the node. + * @param value The value associated with the node. + * @param auxExistence Indicates the presence (true) or absence (false) of an auxiliary node. + * @param auxKey The key of the auxiliary node. + * @param auxValue The value of the auxiliary node. + */ + struct Proof { + bytes32 root; + bytes32[] siblings; + bool existence; + bytes32 key; + bytes32 value; + bool auxExistence; + bytes32 auxKey; + bytes32 auxValue; + } + + /** + * @notice Adds the new element to the tree. + */ + function add(bytes32 key, bytes32 value) external; + + /** + * @notice Removes the element from the tree. + */ + function remove(bytes32 key) external; + + /** + * @notice Updates the element in the tree. + */ + function update(bytes32 key, bytes32 newValue) external; + + /** + * @notice Gets the SMT root. + * SHOULD NOT be used on-chain due to roots frontrunning. + */ + function getRoot() external view returns (bytes32); + + /** + * @notice Gets the number of nodes in the tree. + */ + function getSize() external view returns (uint256); + + /** + * @notice Gets the max tree height (number of branches in the Merkle proof) + */ + function getMaxHeight() external view returns (uint256); + + /** + * @notice Gets Merkle inclusion/exclusion proof of the element. + */ + function getProof(bytes32 key) external view returns (Proof memory); + + /** + * @notice Gets the element value by its key. + */ + function getValue(bytes32 key) external view returns (bytes32); +} +``` + +### Evidence Registry + +The `EvidenceRegistry` smart contract is the central piece of this EIP. The `EvidenceRegistry` MUST implement the following interface, however, it MAY be extended: + +```solidity +pragma solidity ^0.8.0; + +/** + * @notice Common Evidence Registry interface. + */ +interface IEvidenceRegistry { + /** + * @notice MUST be emitted whenever the Merkle root is updated. + */ + event RootUpdated(bytes32 indexed prev, bytes32 indexed curr); + + /** + * @notice Adds the new statement to the DB. + */ + function addStatement(bytes32 key, bytes32 value) external; + + /** + * @notice Removes the statement from the DB. + */ + function removeStatement(bytes32 key) external; + + /** + * @notice Updates the statement in the DB. + */ + function updateStatement(bytes32 key, bytes32 newValue) external; + + /** + * @notice Retrieves historical DB roots creation timestamps. + * Latest root MUST return `block.timestamp`. + * Non-existent root MUST return `0`. + */ + function getRootTimestamp(bytes32 root) external view returns (uint256); +} +``` + +The `addStatement`, `removeStatement`, and `updateStatement` methods MUST isolate the statement `key` in order for the database to allocate a specific namespace for a caller. These methods MUST revert in case the isolated key being added already exists in the `EvidenceDB` or the isolated key being removed or updated does not. + +The `EvidenceRegistry` MUST maintain the linear history of `EvidenceDB` roots. The `getRootTimestamp` method MUST NOT revert. Instead, it MUST return `0` in case the queried `root` does not exist. The method MUST return `block.timestamp` in case the latest root is requested. + +Before communicating with the `EvidenceDB`, the `key` MUST be isolated in the following way: + +```solidity +bytes32 isolatedKey = hash(msg.sender, key) +``` + +Where the `hash` is secure protocol-wide hash function of choice. + +### Hash Function + +The same secure hash function MUST be employed in both `EvidenceRegistry` and `EvidenceDB`. It is RECOMMENDED to use ZK-friendly hash function such as `poseidon` to streamline the database proving. + +In case ZK-friendly hash function is chosen, `EvidenceRegistry` MUST NOT accept `keys` or `values` beyond the underlying elliptic curve prime field size (`21888242871839275222246405745257275088548364400416034343698204186575808495617` for `BN128`). + +## Rationale + +During the EIP specification we have considered two approaches: where every protocol has its own registry and where all protocols are united under a singleton registry. We have decided to go with the latter as this approach provides the following benefits: + +1. Cross-chain portability. Only a single `bytes32` value (the SMT root) has to be sent cross-chain to be able to prove the state of the registry. +2. Centralization of trust. Users only need to trust a single, permissionaless, immutable smart contract. +3. Integration streamline. The singleton design formalizes the system interface, the hash function, and the overall proofs structure to simplify the integration. + +The proposal is deliberately written as abstract as possible to not constrain the possible business use cases and allow `Registrars` to implement arbitrary provable solutions. + +It is expected that based on this work future EIPs will describe concrete registrars with the exact procedures of generation of commitments, management of commitment keys, and proving of operated statements. For instance, there may be a registrar for on-chain accounting of national passports, a registrar with [EIP-4337](./eip-4337.md) confidential account identity management, a registrar for POAPs, etc. + +The `EvidenceDB` namespacing is chosen to segregate the write access to the database cells, ensuring that no entity but issuer can alter their content. However, this decision delegates the access control management responsibility solely to registrars, an important aspect to be considered during their development. + +The `EvidenceRegistry` maintains the minimal viable (gas-wise) history of roots on-chain for smooth registrars integration. In case more elaborate history is required, it is RECOMMENDED to implement off-chain services for parsing of `RootUpdated` events. + +## Backwards Compatibility + +This EIP is fully backwards compatible. + +### Deployment Method + +The `EvidenceRegistry` is a singleton contract available at `0x` deployed via the "deterministic deployment proxy" from `0x4e59b44847b379578588920ca78fbf26c0b4956c` with the salt `0x` . + +## Reference Implementation + +The reference implementation of `EvidenceRegistry` and `EvidenceDB` Solidity smart contracts together with the evidence registry state verifier Circom circuit is provided in the proposal. + +The low-level Solidity and Circom implementations of SMT can be found [here](../assets/eip-7812/contracts/SparseMerkleTree.sol) and [here](../assets/eip-7812/circuits/SparseMerkleTree.circom). + +The height of the SMT is set to `80`. + +> Please note that the reference implementation depends on the `@openzeppelin/contracts v5.1.0` and `circomlib v2.0.5`. + +### EvidenceDB Implementation + +```solidity +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; + +import {IEvidenceDB} from "./interfaces/IEvidenceDB.sol"; + +import {SparseMerkleTree} from "./libraries/SparseMerkleTree.sol"; +import {PoseidonUnit2L, PoseidonUnit3L} from "./libraries/Poseidon.sol"; + +contract EvidenceDB is IEvidenceDB, Initializable { + using SparseMerkleTree for SparseMerkleTree.SMT; + + address private _evidenceRegistry; + + SparseMerkleTree.SMT private _tree; + + modifier onlyEvidenceRegistry() { + _requireEvidenceRegistry(); + _; + } + + function __EvidenceDB_init(address evidenceRegistry_, uint32 maxDepth_) external initializer { + _evidenceRegistry = evidenceRegistry_; + + _tree.initialize(maxDepth_); + + _tree.setHashers(_hash2, _hash3); + } + + /** + * @inheritdoc IEvidenceDB + */ + function add(bytes32 key_, bytes32 value_) external onlyEvidenceRegistry { + _tree.add(key_, value_); + } + + /** + * @inheritdoc IEvidenceDB + */ + function remove(bytes32 key_) external onlyEvidenceRegistry { + _tree.remove(key_); + } + + /** + * @inheritdoc IEvidenceDB + */ + function update(bytes32 key_, bytes32 newValue_) external onlyEvidenceRegistry { + _tree.update(key_, newValue_); + } + + /** + * @inheritdoc IEvidenceDB + */ + function getRoot() external view returns (bytes32) { + return _tree.getRoot(); + } + + /** + * @inheritdoc IEvidenceDB + */ + function getSize() external view returns (uint256) { + return _tree.getNodesCount(); + } + + /** + * @inheritdoc IEvidenceDB + */ + function getMaxHeight() external view returns (uint256) { + return _tree.getMaxDepth(); + } + + /** + * @inheritdoc IEvidenceDB + */ + function getProof(bytes32 key_) external view returns (Proof memory) { + return _tree.getProof(key_); + } + + /** + * @inheritdoc IEvidenceDB + */ + function getValue(bytes32 key_) external view returns (bytes32) { + return _tree.getNodeByKey(key_).value; + } + + /** + * @notice Returns the address of the Evidence Registry. + */ + function getEvidenceRegistry() external view returns (address) { + return _evidenceRegistry; + } + + function _requireEvidenceRegistry() private view { + if (_evidenceRegistry != msg.sender) { + revert NotFromEvidenceRegistry(msg.sender); + } + } + + function _hash2(bytes32 element1_, bytes32 element2_) private pure returns (bytes32) { + return PoseidonUnit2L.poseidon([element1_, element2_]); + } + + function _hash3( + bytes32 element1_, + bytes32 element2_, + bytes32 element3_ + ) private pure returns (bytes32) { + return PoseidonUnit3L.poseidon([element1_, element2_, element3_]); + } +} +``` + +### EvidenceRegistry Implementation + +```solidity +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; + +import {IEvidenceDB} from "./interfaces/IEvidenceDB.sol"; +import {IEvidenceRegistry} from "./interfaces/IEvidenceRegistry.sol"; + +import {PoseidonUnit2L} from "./libraries/Poseidon.sol"; + +contract EvidenceRegistry is IEvidenceRegistry, Initializable { + uint256 public constant BABY_JUB_JUB_PRIME_FIELD = + 21888242871839275222246405745257275088548364400416034343698204186575808495617; + + IEvidenceDB private _evidenceDB; + + mapping(bytes32 => uint256) private _rootTimestamps; + + modifier onlyInPrimeField(bytes32 key) { + _requireInPrimeField(key); + _; + } + + modifier onRootUpdate() { + bytes32 prevRoot_ = _evidenceDB.getRoot(); + _rootTimestamps[prevRoot_] = block.timestamp; + _; + emit RootUpdated(prevRoot_, _evidenceDB.getRoot()); + } + + function __EvidenceRegistry_init(address evidenceDB_) external initializer { + _evidenceDB = IEvidenceDB(evidenceDB_); + } + + /** + * @inheritdoc IEvidenceRegistry + */ + function addStatement( + bytes32 key_, + bytes32 value_ + ) external onlyInPrimeField(key_) onlyInPrimeField(value_) onRootUpdate { + bytes32 isolatedKey_ = _getIsolatedKey(key_); + + if (_evidenceDB.getValue(isolatedKey_) != bytes32(0)) { + revert KeyAlreadyExists(key_); + } + + _evidenceDB.add(isolatedKey_, value_); + } + + /** + * @inheritdoc IEvidenceRegistry + */ + function removeStatement(bytes32 key_) external onlyInPrimeField(key_) onRootUpdate { + bytes32 isolatedKey_ = _getIsolatedKey(key_); + + if (_evidenceDB.getValue(isolatedKey_) == bytes32(0)) { + revert KeyDoesNotExist(key_); + } + + _evidenceDB.remove(isolatedKey_); + } + + /** + * @inheritdoc IEvidenceRegistry + */ + function updateStatement( + bytes32 key_, + bytes32 newValue_ + ) external onlyInPrimeField(key_) onlyInPrimeField(newValue_) onRootUpdate { + bytes32 isolatedKey_ = _getIsolatedKey(key_); + + if (_evidenceDB.getValue(isolatedKey_) == bytes32(0)) { + revert KeyDoesNotExist(key_); + } + + _evidenceDB.update(isolatedKey_, newValue_); + } + + /** + * @inheritdoc IEvidenceRegistry + */ + function getRootTimestamp(bytes32 root_) external view returns (uint256) { + if (root_ == bytes32(0)) { + return 0; + } + + if (root_ == _evidenceDB.getRoot()) { + return block.timestamp; + } + + return _rootTimestamps[root_]; + } + + function getEvidenceDB() external view returns (address) { + return address(_evidenceDB); + } + + function _getIsolatedKey(bytes32 key_) internal view returns (bytes32) { + return PoseidonUnit2L.poseidon([bytes32(uint256(uint160(msg.sender))), key_]); + } + + function _requireInPrimeField(bytes32 key_) private pure { + if (uint256(key_) >= BABY_JUB_JUB_PRIME_FIELD) { + revert NumberNotInPrimeField(key_); + } + } +} +``` + +### EvidenceRegistry Verifier Implementation + +```solidity +// LICENSE: CC0-1.0 +pragma circom 2.1.9; + +include "SparseMerkleTree.circom"; + +template BuildIsolatedKey() { + signal output isolatedKey; + + signal input address; + signal input key; + + component hasher = Poseidon(2); + hasher.inputs[0] <== address; + hasher.inputs[1] <== key; + + hasher.out ==> isolatedKey; +} + +template EvidenceRegistrySMT(levels) { + // Public Inputs + signal input root; + + // Private Inputs + signal input address; + signal input key; + + signal input value; + + signal input siblings[levels]; + + signal input auxKey; + signal input auxValue; + signal input auxIsEmpty; + + signal input isExclusion; + + // Build isolated key + component isolatedKey = BuildIsolatedKey(); + isolatedKey.address <== address; + isolatedKey.key <== key; + + // Verify Sparse Merkle Tree Proof + component smtVerifier = SparseMerkleTree(levels); + smtVerifier.siblings <== siblings; + + smtVerifier.key <== isolatedKey.isolatedKey; + smtVerifier.value <== value; + + smtVerifier.auxKey <== auxKey; + smtVerifier.auxValue <== auxValue; + smtVerifier.auxIsEmpty <== auxIsEmpty; + + smtVerifier.isExclusion <== isExclusion; + + smtVerifier.root <== root; +} + +component main {public [root]} = EvidenceRegistrySMT(80); +``` + +## Security Considerations + +From security standpoint there are several important aspects that must be highlighted. + +The individual registrars are expected to provide the functionality for both management and proving of statements. The proving will often be carried out by ZK proofs, which require trusted setup. Improperly setup ZK verifiers can be exploited to verify forged proofs. + +The `getRoot` method of `EvidenceDB` SHOULD NOT be used on-chain by the integrating registrars to check the validity of the database state. Instead, the required `root` SHOULD be passed as a function parameter and checked via `getRootTimestamp` method to avoid being frontrun. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/erc-7812/circuits/SparseMerkleTree.circom b/assets/erc-7812/circuits/SparseMerkleTree.circom new file mode 100644 index 0000000000..22231aa0b7 --- /dev/null +++ b/assets/erc-7812/circuits/SparseMerkleTree.circom @@ -0,0 +1,272 @@ +// LICENSE: MIT +pragma circom 2.1.9; + +include "circomlib/circuits/poseidon.circom"; +include "circomlib/circuits/switcher.circom"; +include "circomlib/circuits/gates.circom"; +include "circomlib/circuits/bitify.circom"; + +function inverse(a) { + return 1 - a; +} + +/* + * Hash2 = Poseidon(H_L | H_R) + */ +template Hash2() { + signal input a; + signal input b; + + signal output out; + + component h = Poseidon(2); + h.inputs[0] <== a; + h.inputs[1] <== b; + + out <== h.out; +} + +/* + * Hash2 = Poseidon(key | value | 1) + * 1 is added to the end of the leaf value to make the hash unique + */ +template Hash3() { + signal input a; + signal input b; + signal input c; + + signal output out; + + c === 1; + + component h = Poseidon(3); + h.inputs[0] <== a; + h.inputs[1] <== b; + h.inputs[2] <== c; + + out <== h.out; +} + +/* +* Returns an array of bits, where the index of `1` bit +* is the current depth of the tree +*/ +template DepthDeterminer(depth) { + assert(depth > 1); + + signal input siblings[depth]; + signal output desiredDepth[depth]; + + signal done[depth - 1]; + + component isZero[depth]; + + for (var i = 0; i < depth; i++) { + isZero[i] = IsZero(); + isZero[i].in <== siblings[i]; + } + + // The last sibling is always zero due to the way the proof is constructed + isZero[depth - 1].out === 1; + + // If there is a branch on the previous depth, then the current depth is the desired one + desiredDepth[depth - 1] <== inverse(isZero[depth - 2].out); + done[depth - 2] <== desiredDepth[depth - 1]; + + // desiredDepth will be `1` the first time we encounter non-zero branch on the previous depth + for (var i = depth - 2; i > 0; i--) { + desiredDepth[i] <== inverse(done[i]) * inverse(isZero[i - 1].out); + done[i - 1] <== desiredDepth[i] + done[i]; + } + + desiredDepth[0] <== inverse(done[0]); +} + +/* + * Determines the type of the node + */ +template NodeTypeDeterminer() { + signal input auxIsEmpty; + // 1 if the node is at the desired depth, 0 otherwise + signal input isDesiredDepth; + signal input isExclusion; + + signal input previousMiddle; + signal input previousEmpty; + signal input previousAuxLeaf; + signal input previousLeaf; + + // 1 if the node is a middle node, 0 otherwise + signal output middle; + // 1 if the node is an empty node, 0 otherwise + signal output empty; + // 1 if the node is a leaf node for the exclusion proof, 0 otherwise + signal output auxLeaf; + // 1 if the node is a leaf node, 0 otherwise + signal output leaf; + + // 1 if the node is a leaf node and we are checking for exclusion, 0 otherwise + signal leafForExclusionCheck <== isDesiredDepth * isExclusion; + + // Determine the node as a middle, until getting to the desired depth + middle <== previousMiddle - isDesiredDepth; + + // Determine the node as a leaf, when we are at the desired depth and + // we check for inclusion + leaf <== isDesiredDepth - leafForExclusionCheck; + + // Determine the node as an auxLeaf, when we are at the desired depth and + // we check for exclusion in a bamboo scenario + auxLeaf <== leafForExclusionCheck * inverse(auxIsEmpty); + + // Determine the node as an empty, when we are at the desired depth and + // we check for exclusion with an empty node + empty <== isDesiredDepth * auxIsEmpty; +} + +/* + * Gets hash at the current depth, based on the type of the node + * If the mode is a empty, then the hash is 0 + */ +template DepthHasher() { + signal input isMiddle; + signal input isAuxLeaf; + signal input isLeaf; + + signal input sibling; + signal input auxLeaf; + signal input leaf; + signal input currentKeyBit; + signal input child; + + signal output root; + + component switcher = Switcher(); + switcher.L <== child; + switcher.R <== sibling; + // Based on the current key bit, we understand which order to use + switcher.sel <== currentKeyBit; + + component proofHash = Hash2(); + proofHash.a <== switcher.outL; + proofHash.b <== switcher.outR; + + signal res[3]; + // hash of the middle node + res[0] <== proofHash.out * isMiddle; + // hash of the aux leaf node for the exclusion proof + res[1] <== auxLeaf * isAuxLeaf; + // hash of the leaf node for the inclusion proof + res[2] <== leaf * isLeaf; + + // only one of the following will be non-zero + root <== res[0] + res[1] + res[2]; +} + +/* + * Checks the sparse merkle proof against the given root + */ +template SparseMerkleTree(depth) { + // The root of the sparse merkle tree + signal input root; + // The siblings for each depth + signal input siblings[depth]; + + signal input key; + signal input value; + + signal input auxKey; + signal input auxValue; + // 1 if the aux node is empty, 0 otherwise + signal input auxIsEmpty; + + // 1 if we are checking for exclusion, 0 if we are checking for inclusion + signal input isExclusion; + + // Check that the auxIsEmpty is 0 if we are checking for inclusion + component exclusiveCase = AND(); + exclusiveCase.a <== inverse(isExclusion); + exclusiveCase.b <== auxIsEmpty; + exclusiveCase.out === 0; + + // Check that the key != auxKey if we are checking for exclusion and the auxIsEmpty is 0 + component areKeyEquals = IsEqual(); + areKeyEquals.in[0] <== auxKey; + areKeyEquals.in[1] <== key; + + component keysOk = MultiAND(3); + keysOk.in[0] <== isExclusion; + keysOk.in[1] <== inverse(auxIsEmpty); + keysOk.in[2] <== areKeyEquals.out; + keysOk.out === 0; + + component auxHash = Hash3(); + auxHash.a <== auxKey; + auxHash.b <== auxValue; + auxHash.c <== 1; + + component hash = Hash3(); + hash.a <== key; + hash.b <== value; + hash.c <== 1; + + component keyBits = Num2Bits_strict(); + keyBits.in <== key; + + component depths = DepthDeterminer(depth); + + for (var i = 0; i < depth; i++) { + depths.siblings[i] <== siblings[i]; + } + + component nodeType[depth]; + + // Start with the middle node (closest to the root) + for (var i = 0; i < depth; i++) { + nodeType[i] = NodeTypeDeterminer(); + + if (i == 0) { + nodeType[i].previousMiddle <== 1; + nodeType[i].previousEmpty <== 0; + nodeType[i].previousLeaf <== 0; + nodeType[i].previousAuxLeaf <== 0; + } else { + nodeType[i].previousMiddle <== nodeType[i - 1].middle; + nodeType[i].previousEmpty <== nodeType[i - 1].empty; + nodeType[i].previousLeaf <== nodeType[i - 1].leaf; + nodeType[i].previousAuxLeaf <== nodeType[i - 1].auxLeaf; + } + + nodeType[i].auxIsEmpty <== auxIsEmpty; + nodeType[i].isExclusion <== isExclusion; + nodeType[i].isDesiredDepth <== depths.desiredDepth[i]; + } + + component depthHash[depth]; + + // Hash up the elements in the reverse order + for (var i = depth - 1; i >= 0; i--) { + depthHash[i] = DepthHasher(); + + depthHash[i].isMiddle <== nodeType[i].middle; + depthHash[i].isLeaf <== nodeType[i].leaf; + depthHash[i].isAuxLeaf <== nodeType[i].auxLeaf; + + depthHash[i].sibling <== siblings[i]; + depthHash[i].auxLeaf <== auxHash.out; + depthHash[i].leaf <== hash.out; + + depthHash[i].currentKeyBit <== keyBits.out[i]; + + if (i == depth - 1) { + // The last depth has no child + depthHash[i].child <== 0; + } else { + // The child of the current depth is the root of the next depth + depthHash[i].child <== depthHash[i + 1].root; + } + } + + // The root of the merkle tree is the root of the first depth + depthHash[0].root === root; +} diff --git a/assets/erc-7812/contracts/SparseMerkleTree.sol b/assets/erc-7812/contracts/SparseMerkleTree.sol new file mode 100644 index 0000000000..59325c4d04 --- /dev/null +++ b/assets/erc-7812/contracts/SparseMerkleTree.sol @@ -0,0 +1,671 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.21; + +import {IEvidenceDB} from "../interfaces/IEvidenceDB.sol"; + +/** + * @notice Sparse Merkle Tree implementation. + */ +library SparseMerkleTree { + /** + * @dev A maximum depth hard cap for SMT + * Due to the limitations of the uint256 data type, depths greater than 256 are not possible. + */ + uint16 internal constant MAX_DEPTH_HARD_CAP = 256; + + uint64 internal constant ZERO_IDX = 0; + + bytes32 internal constant ZERO_HASH = bytes32(0); + + /** + * @notice The type of the node in the Merkle tree. + */ + enum NodeType { + EMPTY, + LEAF, + MIDDLE + } + + /** + * @notice Defines the structure of the Sparse Merkle Tree. + * + * @param nodes A mapping of the tree's nodes, where the key is the node's index, starting from 1 upon node addition. + * This approach differs from the original implementation, which utilized a hash as the key: + * H(k || v || 1) for leaf nodes and H(left || right) for middle nodes. + * + * @param merkleRootId The index of the root node. + * @param maxDepth The maximum depth of the Merkle tree. + * @param nodesCount The total number of nodes within the Merkle tree. + * @param customHasherSet Indicates whether custom hash functions have been configured (true) or not (false). + * @param hash2 A hash function accepting two arguments. + * @param hash3 A hash function accepting three arguments. + */ + struct SMT { + mapping(uint256 => Node) nodes; + uint64 merkleRootId; + uint64 nodesCount; + uint64 deletedNodesCount; + uint32 maxDepth; + bool customHasherSet; + function(bytes32, bytes32) view returns (bytes32) hash2; + function(bytes32, bytes32, bytes32) view returns (bytes32) hash3; + } + + /** + * @notice Describes a node within the Merkle tree, including its type, children, hash, and key-value pair. + * + * @param nodeType The type of the node. + * @param childLeft The index of the left child node. + * @param childRight The index of the right child node. + * @param nodeHash The hash of the node, calculated as follows: + * - For leaf nodes, H(k || v || 1) where k is the key and v is the value; + * - For middle nodes, H(left || right) where left and right are the hashes of the child nodes. + * + * @param key The key associated with the node. + * @param value The value associated with the node. + */ + struct Node { + NodeType nodeType; + uint64 childLeft; + uint64 childRight; + bytes32 nodeHash; + bytes32 key; + bytes32 value; + } + + modifier onlyInitialized(SMT storage tree) { + if (!_isInitialized(tree)) revert TreeNotInitialized(); + _; + } + + error KeyAlreadyExists(bytes32 key); + error LeafDoesNotMatch(bytes32 currentKey, bytes32 key); + error MaxDepthExceedsHardCap(uint32 maxDepth); + error MaxDepthIsZero(); + error MaxDepthReached(); + error NewMaxDepthMustBeLarger(uint32 currentDepth, uint32 newDepth); + error NodeDoesNotExist(uint256 nodeId); + error TreeAlreadyInitialized(); + error TreeNotInitialized(); + error TreeIsNotEmpty(); + + /** + * @notice The function to initialize the Merkle tree. + * Under the hood it sets the maximum depth of the Merkle tree, therefore can be considered + * alias function for the `setMaxDepth`. + * + * Requirements: + * - The current tree depth must be 0. + * + * @param tree self. + * @param maxDepth_ The max depth of the Merkle tree. + */ + function initialize(SMT storage tree, uint32 maxDepth_) internal { + if (_isInitialized(tree)) revert TreeAlreadyInitialized(); + + _setMaxDepth(tree, maxDepth_); + } + + /** + * @notice The function to set the maximum depth of the Merkle tree. Complexity is O(1). + * + * Requirements: + * - The max depth must be greater than zero. + * - The max depth can only be increased. + * - The max depth is less than or equal to MAX_DEPTH_HARD_CAP (256). + * + * @param tree self. + * @param maxDepth_ The max depth of the Merkle tree. + */ + function setMaxDepth(SMT storage tree, uint32 maxDepth_) internal { + _setMaxDepth(tree, maxDepth_); + } + + /** + * @notice The function to set a custom hash functions, that will be used to build the Merkle Tree. + * + * Requirements: + * - The tree must be empty. + * + * @param tree self. + * @param hash2_ The hash function that accepts two argument. + * @param hash3_ The hash function that accepts three arguments. + */ + function setHashers( + SMT storage tree, + function(bytes32, bytes32) view returns (bytes32) hash2_, + function(bytes32, bytes32, bytes32) view returns (bytes32) hash3_ + ) internal { + if (_nodesCount(tree) != 0) revert TreeIsNotEmpty(); + + tree.customHasherSet = true; + + tree.hash2 = hash2_; + tree.hash3 = hash3_; + } + + /** + * @notice The function to add a new element to the bytes32 tree. + * Complexity is O(log(n)), where n is the max depth of the tree. + * + * @param tree self. + * @param key_ The key of the element. + * @param value_ The value of the element. + */ + function add(SMT storage tree, bytes32 key_, bytes32 value_) internal onlyInitialized(tree) { + _add(tree, key_, value_); + } + + /** + * @notice The function to remove a (leaf) element from the bytes32 tree. + * Complexity is O(log(n)), where n is the max depth of the tree. + * + * @param tree self. + * @param key_ The key of the element. + */ + function remove(SMT storage tree, bytes32 key_) internal onlyInitialized(tree) { + tree.merkleRootId = uint64(_remove(tree, key_, tree.merkleRootId, 0)); + } + + /** + * @notice The function to update a (leaf) element in the bytes32 tree. + * Complexity is O(log(n)), where n is the max depth of the tree. + * + * @param tree self. + * @param key_ The key of the element. + * @param newValue_ The new value of the element. + */ + function update( + SMT storage tree, + bytes32 key_, + bytes32 newValue_ + ) internal onlyInitialized(tree) { + _update(tree, key_, newValue_); + } + + /** + * @notice The function to get the proof if a node with specific key exists or not exists in the SMT. + * Complexity is O(log(n)), where n is the max depth of the tree. + * + * @param tree self. + * @param key_ The key of the element. + * @return SMT proof struct. + */ + function getProof( + SMT storage tree, + bytes32 key_ + ) internal view returns (IEvidenceDB.Proof memory) { + uint256 maxDepth_ = _maxDepth(tree); + + IEvidenceDB.Proof memory proof_ = IEvidenceDB.Proof({ + root: _root(tree), + siblings: new bytes32[](maxDepth_), + existence: false, + key: key_, + value: ZERO_HASH, + auxExistence: false, + auxKey: ZERO_HASH, + auxValue: ZERO_HASH + }); + + Node memory node_; + uint256 nextNodeId_ = tree.merkleRootId; + + for (uint256 i = 0; i <= maxDepth_; i++) { + node_ = _node(tree, nextNodeId_); + + if (node_.nodeType == NodeType.EMPTY) { + break; + } else if (node_.nodeType == NodeType.LEAF) { + if (node_.key == proof_.key) { + proof_.existence = true; + proof_.value = node_.value; + + break; + } else { + proof_.auxExistence = true; + proof_.auxKey = node_.key; + proof_.auxValue = node_.value; + proof_.value = node_.value; + + break; + } + } else { + if ((uint256(proof_.key) >> i) & 1 == 1) { + nextNodeId_ = node_.childRight; + + proof_.siblings[i] = tree.nodes[node_.childLeft].nodeHash; + } else { + nextNodeId_ = node_.childLeft; + + proof_.siblings[i] = tree.nodes[node_.childRight].nodeHash; + } + } + } + + return proof_; + } + + /** + * @notice The function to get the root of the Merkle tree. + * Complexity is O(1). + * + * @param tree self. + * @return The root of the Merkle tree. + */ + function getRoot(SMT storage tree) internal view returns (bytes32) { + return _root(tree); + } + + /** + * @notice The function to get the node by its index. + * Complexity is O(1). + * + * @param tree self. + * @param nodeId_ The index of the node. + * @return The node. + */ + function getNode(SMT storage tree, uint256 nodeId_) internal view returns (Node memory) { + return _node(tree, nodeId_); + } + + /** + * @notice The function to get the node by its key. + * Complexity is O(log(n)), where n is the max depth of the tree. + * + * @param tree self. + * @param key_ The key of the element. + * @return The node. + */ + function getNodeByKey(SMT storage tree, bytes32 key_) internal view returns (Node memory) { + Node memory node_; + uint256 nextNodeId_ = tree.merkleRootId; + + for (uint256 i = 0; i <= tree.maxDepth; i++) { + node_ = tree.nodes[nextNodeId_]; + + if (node_.nodeType == NodeType.EMPTY) { + break; + } else if (node_.nodeType == NodeType.LEAF) { + if (node_.key == key_) { + break; + } + } else { + if ((uint256(key_) >> i) & 1 == 1) { + nextNodeId_ = node_.childRight; + } else { + nextNodeId_ = node_.childLeft; + } + } + } + + return + node_.key == key_ + ? node_ + : Node({ + nodeType: NodeType.EMPTY, + childLeft: ZERO_IDX, + childRight: ZERO_IDX, + nodeHash: ZERO_HASH, + key: ZERO_HASH, + value: ZERO_HASH + }); + } + + /** + * @notice The function to get the max depth of the Merkle tree. + * + * @param tree self. + * @return The max depth of the Merkle tree. + */ + function getMaxDepth(SMT storage tree) internal view returns (uint64) { + return uint64(_maxDepth(tree)); + } + + /** + * @notice The function to get the number of nodes in the Merkle tree. + * + * @param tree self. + * @return The number of nodes in the Merkle tree. + */ + function getNodesCount(SMT storage tree) internal view returns (uint64) { + return uint64(_nodesCount(tree)); + } + + /** + * @notice The function to check if custom hash functions are set. + * + * @param tree self. + * @return True if custom hash functions are set, otherwise false. + */ + function isCustomHasherSet(SMT storage tree) internal view returns (bool) { + return tree.customHasherSet; + } + + function _setMaxDepth(SMT storage tree, uint32 maxDepth_) private { + if (maxDepth_ == 0) revert MaxDepthIsZero(); + + uint32 currentDepth_ = tree.maxDepth; + + if (maxDepth_ <= currentDepth_) revert NewMaxDepthMustBeLarger(currentDepth_, maxDepth_); + if (maxDepth_ > MAX_DEPTH_HARD_CAP) revert MaxDepthExceedsHardCap(maxDepth_); + + tree.maxDepth = maxDepth_; + } + + function _add(SMT storage tree, bytes32 key_, bytes32 value_) private { + Node memory node_ = Node({ + nodeType: NodeType.LEAF, + childLeft: ZERO_IDX, + childRight: ZERO_IDX, + nodeHash: ZERO_HASH, + key: key_, + value: value_ + }); + + tree.merkleRootId = uint64(_add(tree, node_, tree.merkleRootId, 0)); + } + + function _update(SMT storage tree, bytes32 key_, bytes32 newValue_) private { + Node memory node_ = Node({ + nodeType: NodeType.LEAF, + childLeft: ZERO_IDX, + childRight: ZERO_IDX, + nodeHash: ZERO_HASH, + key: key_, + value: newValue_ + }); + + _update(tree, node_, tree.merkleRootId, 0); + } + + /** + * @dev The check for whether the current depth exceeds the maximum depth is omitted for two reasons: + * 1. The current depth may only surpass the maximum depth during the addition of a new leaf. + * 2. As we navigate through middle nodes, the current depth is assured to remain below the maximum + * depth since the traversal must ultimately conclude at a leaf node. + */ + function _add( + SMT storage tree, + Node memory newLeaf_, + uint256 nodeId_, + uint16 currentDepth_ + ) private returns (uint256) { + Node memory currentNode_ = tree.nodes[nodeId_]; + + if (currentNode_.nodeType == NodeType.EMPTY) { + return _setNode(tree, newLeaf_); + } else if (currentNode_.nodeType == NodeType.LEAF) { + if (currentNode_.key == newLeaf_.key) revert KeyAlreadyExists(newLeaf_.key); + + return _pushLeaf(tree, newLeaf_, currentNode_, nodeId_, currentDepth_); + } else { + uint256 nextNodeId_; + + if ((uint256(newLeaf_.key) >> currentDepth_) & 1 == 1) { + nextNodeId_ = _add(tree, newLeaf_, currentNode_.childRight, currentDepth_ + 1); + + tree.nodes[nodeId_].childRight = uint64(nextNodeId_); + } else { + nextNodeId_ = _add(tree, newLeaf_, currentNode_.childLeft, currentDepth_ + 1); + + tree.nodes[nodeId_].childLeft = uint64(nextNodeId_); + } + + tree.nodes[nodeId_].nodeHash = _getNodeHash(tree, tree.nodes[nodeId_]); + + return nodeId_; + } + } + + function _remove( + SMT storage tree, + bytes32 key_, + uint256 nodeId_, + uint16 currentDepth_ + ) private returns (uint256) { + Node memory currentNode_ = tree.nodes[nodeId_]; + + if (currentNode_.nodeType == NodeType.EMPTY) { + revert NodeDoesNotExist(nodeId_); + } else if (currentNode_.nodeType == NodeType.LEAF) { + if (currentNode_.key != key_) revert LeafDoesNotMatch(currentNode_.key, key_); + + _deleteNode(tree, nodeId_); + + return ZERO_IDX; + } else { + uint256 nextNodeId_; + + if ((uint256(key_) >> currentDepth_) & 1 == 1) { + nextNodeId_ = _remove(tree, key_, currentNode_.childRight, currentDepth_ + 1); + } else { + nextNodeId_ = _remove(tree, key_, currentNode_.childLeft, currentDepth_ + 1); + } + + NodeType rightType_ = tree.nodes[currentNode_.childRight].nodeType; + NodeType leftType_ = tree.nodes[currentNode_.childLeft].nodeType; + + if (rightType_ == NodeType.EMPTY && leftType_ == NodeType.EMPTY) { + _deleteNode(tree, nodeId_); + + return nextNodeId_; + } + + NodeType nextType_ = tree.nodes[nextNodeId_].nodeType; + + if ( + (rightType_ == NodeType.EMPTY || leftType_ == NodeType.EMPTY) && + nextType_ != NodeType.MIDDLE + ) { + if ( + nextType_ == NodeType.EMPTY && + (leftType_ == NodeType.LEAF || rightType_ == NodeType.LEAF) + ) { + _deleteNode(tree, nodeId_); + + if (rightType_ == NodeType.LEAF) { + return currentNode_.childRight; + } + + return currentNode_.childLeft; + } + + if (rightType_ == NodeType.EMPTY) { + tree.nodes[nodeId_].childRight = uint64(nextNodeId_); + } else { + tree.nodes[nodeId_].childLeft = uint64(nextNodeId_); + } + } + + tree.nodes[nodeId_].nodeHash = _getNodeHash(tree, tree.nodes[nodeId_]); + + return nodeId_; + } + } + + function _update( + SMT storage tree, + Node memory newLeaf_, + uint256 nodeId_, + uint16 currentDepth_ + ) private { + Node memory currentNode_ = tree.nodes[nodeId_]; + + if (currentNode_.nodeType == NodeType.EMPTY) { + revert NodeDoesNotExist(nodeId_); + } else if (currentNode_.nodeType == NodeType.LEAF) { + if (currentNode_.key != newLeaf_.key) + revert LeafDoesNotMatch(currentNode_.key, newLeaf_.key); + + tree.nodes[nodeId_] = newLeaf_; + currentNode_ = newLeaf_; + } else { + if ((uint256(newLeaf_.key) >> currentDepth_) & 1 == 1) { + _update(tree, newLeaf_, currentNode_.childRight, currentDepth_ + 1); + } else { + _update(tree, newLeaf_, currentNode_.childLeft, currentDepth_ + 1); + } + } + + tree.nodes[nodeId_].nodeHash = _getNodeHash(tree, currentNode_); + } + + function _pushLeaf( + SMT storage tree, + Node memory newLeaf_, + Node memory oldLeaf_, + uint256 oldLeafId_, + uint16 currentDepth_ + ) private returns (uint256) { + if (currentDepth_ >= tree.maxDepth) revert MaxDepthReached(); + + Node memory newNodeMiddle_; + bool newLeafBitAtDepth_ = (uint256(newLeaf_.key) >> currentDepth_) & 1 == 1; + bool oldLeafBitAtDepth_ = (uint256(oldLeaf_.key) >> currentDepth_) & 1 == 1; + + // Check if we need to go deeper if diverge at the depth's bit + if (newLeafBitAtDepth_ == oldLeafBitAtDepth_) { + uint256 nextNodeId_ = _pushLeaf( + tree, + newLeaf_, + oldLeaf_, + oldLeafId_, + currentDepth_ + 1 + ); + + if (newLeafBitAtDepth_) { + // go right + newNodeMiddle_ = Node({ + nodeType: NodeType.MIDDLE, + childLeft: ZERO_IDX, + childRight: uint64(nextNodeId_), + nodeHash: ZERO_HASH, + key: ZERO_HASH, + value: ZERO_HASH + }); + } else { + // go left + newNodeMiddle_ = Node({ + nodeType: NodeType.MIDDLE, + childLeft: uint64(nextNodeId_), + childRight: ZERO_IDX, + nodeHash: ZERO_HASH, + key: ZERO_HASH, + value: ZERO_HASH + }); + } + + return _setNode(tree, newNodeMiddle_); + } + + uint256 newLeafId = _setNode(tree, newLeaf_); + + if (newLeafBitAtDepth_) { + newNodeMiddle_ = Node({ + nodeType: NodeType.MIDDLE, + childLeft: uint64(oldLeafId_), + childRight: uint64(newLeafId), + nodeHash: ZERO_HASH, + key: ZERO_HASH, + value: ZERO_HASH + }); + } else { + newNodeMiddle_ = Node({ + nodeType: NodeType.MIDDLE, + childLeft: uint64(newLeafId), + childRight: uint64(oldLeafId_), + nodeHash: ZERO_HASH, + key: ZERO_HASH, + value: ZERO_HASH + }); + } + + return _setNode(tree, newNodeMiddle_); + } + + /** + * @dev The function used to add new nodes. + */ + function _setNode(SMT storage tree, Node memory node_) private returns (uint256) { + node_.nodeHash = _getNodeHash(tree, node_); + + uint256 newCount_ = ++tree.nodesCount; + tree.nodes[newCount_] = node_; + + return newCount_; + } + + /** + * @dev The function used to delete removed nodes. + */ + function _deleteNode(SMT storage tree, uint256 nodeId_) private { + delete tree.nodes[nodeId_]; + ++tree.deletedNodesCount; + } + + /** + * @dev The check for an empty node is omitted, as this function is called only with + * non-empty nodes and is not intended for external use. + */ + function _getNodeHash(SMT storage tree, Node memory node_) private view returns (bytes32) { + function(bytes32, bytes32) view returns (bytes32) hash2_ = tree.customHasherSet + ? tree.hash2 + : _hash2; + function(bytes32, bytes32, bytes32) view returns (bytes32) hash3_ = tree.customHasherSet + ? tree.hash3 + : _hash3; + + if (node_.nodeType == NodeType.LEAF) { + return hash3_(node_.key, node_.value, bytes32(uint256(1))); + } + + return hash2_(tree.nodes[node_.childLeft].nodeHash, tree.nodes[node_.childRight].nodeHash); + } + + function _hash2(bytes32 a, bytes32 b) private pure returns (bytes32 result) { + // solhint-disable-next-line no-inline-assembly + assembly ("memory-safe") { + mstore(0, a) + mstore(32, b) + + result := keccak256(0, 64) + } + } + + /** + * @dev The decision not to update the free memory pointer is due to the temporary nature of the hash arguments. + */ + function _hash3(bytes32 a, bytes32 b, bytes32 c) private pure returns (bytes32 result) { + // solhint-disable-next-line no-inline-assembly + assembly ("memory-safe") { + let free_ptr := mload(64) + + mstore(free_ptr, a) + mstore(add(free_ptr, 32), b) + mstore(add(free_ptr, 64), c) + + result := keccak256(free_ptr, 96) + } + } + + function _root(SMT storage tree) private view returns (bytes32) { + return tree.nodes[tree.merkleRootId].nodeHash; + } + + function _node(SMT storage tree, uint256 nodeId_) private view returns (Node memory) { + return tree.nodes[nodeId_]; + } + + function _maxDepth(SMT storage tree) private view returns (uint256) { + return tree.maxDepth; + } + + function _nodesCount(SMT storage tree) private view returns (uint256) { + return tree.nodesCount - tree.deletedNodesCount; + } + + function _isInitialized(SMT storage tree) private view returns (bool) { + return tree.maxDepth > 0; + } +} diff --git a/assets/erc-7812/images/diagram.png b/assets/erc-7812/images/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1eb9948ea26c99aad4fb9b7cbd4a3c655d34ae GIT binary patch literal 415388 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

@J{Ye_~NkCRy^r*D=U&9E_LJ5w9rv*8Wnx zmb=D1_Yv|;%5%jT-3LXk5a=K8KXL{Ov0qKH-O?6w?v@H&Pd}F}bdhvRHA+j)>r0vv zlNaT(bfE$}Z^NAlQle#b8<6|KUKOxFGc-`Spr3~^+i=RU_3s#Y3o5KcA54+I%8vU- z$Q5ybfa`z;Dt+Pvzte;{u1wo-_Em*i^g^%{F6_dRhUE*T<)UzYc73_R!!Syv^066Q z-@jDajVy8XvXC4)=HIsF^f!(>ST>>`t)Nt;env z48IivaWN=w-mGWzect-;rR%5<5yHUA7XKzrXcY~XlcwGC z^6W~d^;^cAtdx9{gJkE=T(TKQbe|tq_YjuSvNOF0%B3CLueU>A%=k|a6MphjhwR22 z5zbpJPCEu{tOBtX`VYLzlZOevS|$n;))m`&V0ztu}3uhD?ZJpZy*z5=r}>xV*y1 zR2pMMgobffVKW<3xpwGFf< zw~CIeh7G)g5|(m8xmDqFVslN1P!7bDrtbdukzj2jy*oZ+psZ7yl+W?tB}$VgO}e`q zeNR;L!Bev@!%Rn)6vCNhZ$5b&s9PnEvP}7GDoTXm(Pz+Wz;hMpvZhp9`Wxoab4sPz z-=B0g@cLw9x6|Mc4b~L~*UZd58R$>fT<;W4=`24{!Zq#zyGu?gRLl;WCU(%)>56E9 z23>Do$FY9ZwKepkQjtlBA?rA9HV4nrxJ%8bR9RgNe8 ziG+I|6eL+2z%}Ze^TvH$$x&m(--)G=Kql+wW;xW(Om{+lyH zK?_#Y45nps-&e|?L~x}ap7cIeL)Pr7bD|B_zx~#pZfEkL)6vmT@~KZcUp|PW&GF%# z@{w^QADIKs4}9kssu~Vkr}?2p`{A%%)Mm+GY-gJFsWb7@bgjW@m+S-1*vVG*!qkGhqokjzlusd~DemHWrN zh3fu$t;TqSY?Cf{5B=) z_2TYFdsfy3hJ|;rh|}fX9D(mY6Y>u3cH+$bV$jn%=yY0u%lOJ2%nw@e^%Byz!$m9h z6~(H|0=PqIj9!O}hKAo7I%j{h&3$)Gqc~PuB}L4xTUPtP8XX76ebu#;iQ`2Y%LpY3 zik`44R!}w)Z@w7uJ`!LJ5Bf@vj#lHKm=NNVCW2w$YipCPJSjBdt+<6tcbBtZn*H6M zcTBG>m~_^h3^be>!Ttz?!I3|YhfC%28sc>+zXnm9CONcg=C1W(1TEb4{kUE;+vd97 z9bZV9!Ac|%f;w2g9r#?t`WI&{XFkJZxK*M*Fq6Lb<`n3@iI6P?yg-P7iV|}bD2&*y zvswVe(G6~I0ud z<|aK!M!RF#91YFtULf{;-sc+6wlq6A&vw$RXVVSLmR#~;-N$XzOiPyNIJ5}_1C`!y zM|6_sSdL{YD1%{rTl~0!Bm1eu8ecrhso?}sB}Km8*#OC$gSNP|(qEsODbGY-a_TfU zpYg)1Yf7{i5NQ{1s_Hjx$b!LD|Cg=kA^IKy7WQK--&lk{V|_axKRSdqmVUi$n&q<<}5=!l{^p5 zDA*#PU8y42!D3f%A`%G!!x3o$;KQL@dZy^@^4(hROg=EY!sBv6l3|QQvnZJ0GA?wv zr0b)-h`gV!?O>0yVfFq5KkXqCvm=EYlU4Z4W(2#C#omt(9L^T^K{gVcyPJhX%Bd@= ziQZmEuQHHl7*jHAJG;01nJgraFEzJ$%W!J9$RcCJ6q!`o+qL#IXHtWx9cV;XEA zwLtjDLqkYRQBdOBHK1XFZCMt{(VFJA39oj38ok*(@)91Gf97XUol=<&))se_?$H)0 zsc;1K?Z(&+3yr`JBhiO4gd4EV&&P+*O{$i>~P^)8&s# zmz*1OGd}Aqe?bn4>yFeW1a%ue^ZL^Mq{XI~28dmdp*& z3#HtqhhN>*u|Z^YbE{2FKPa^J5C3t-w&7`4{qqqmzr+s>@Yyk_H2@6PH_9z5WWD%Z z@5`ars^fAz8r979wgPu+D^0>(h|Nc;m)?A#_&s9m`iHNa;3C4}d`h^)rcogT^A^zd zqg8;VpLfX{Bf%~_ED8BR3ijZx#<_+QCB}4xMJ2jnl%c z;B@#^Sz6}DTh7hB7tShE>@06ykp^w5TZ-C-=b2+adf1C3PyvK8%{BRn9 zt;I`v=16S{LxSNSC6qHQ=dyw}AH#B(YOp? zO#$ak5^Gq)s{9nLEF2Nbaxsk$4w#b$Ji0j^oQtMaTwSR(F#*93Z`s*JxqZM1&&_AR z-i8u|&%QY!eC^7UeAG_08FrBJR%@W1Tyi3|h;FRe#X&MnVPELJ8|a`Xvdm;uW`0;g-4R>&QlZCM<3ArCx!Byra5DT}2`(msn+mfO>HQsz78$QlG&)Zo)Kns90jln6Vg(UhC% z^<}k}M;M*uM_QMw^8WWz8V^HgH7wD)q_IIdB79e?d%~ulNA@J@kK;pJ_5u!*9OKaU z05Xbv>H6dWR$%hy2UpR=K855IR=}pC(JZ@qVeu-TrYlZo55{k)qkYjb>VLB;MeC^d zn|l1AA6n|~L5aM654W6=T2~5y7rhfv3XtWsn|*_hENVkuoAAof98=Z~JXK)CtIMSB znI73=%B3La66TcPl~7_*1WG3#Ku7#_D=dc_AlY8vLxMsV|tGB zr)LLLI62e%sFkpzQ^yR~Af1${WnhVF82{EEv$Nmd zubyT2rW&5jFP&yD6tL9X5lZ?!#Aso(SpWa+35cvQ5Xk#K@)KDETECG(MU)-#qdQP;aJLtpjd<}CXp;lvgzKak?T`Z`P=azJL|NtPMM-?uy(W}J zR5`i;D^hqdjZk?o!w9f5Z{O*#FaG2mggFwX*#79BlxY1Vy}`!V0R)Qas2DIa@jF$n zj!PX9YSlK6x4CNRj#@vjd)?g)Bd}Wv+mTRgiZ+!W_w@FLqKfyW@Q9L&rU*LsYgE#= zUe@H6S>6Fu*k`+Y&nov;I1raJ5m7!zMT>iQaL>-=d9+2b75tcz`*?nsl_XgdQm1W! z3sp_}G^}X<;|xYrL7Z{izSWxX->DJv41y;uNZNm?)L;I zR?9&)!v-Azo8t#V;y*LTk1spyADcI?!M6s^B3!~%;LiPU%E6o^L~f-LF4FjPCA?K>M`Z@Bk1id&%VkO{-`LfnT}l+naPlSooJJfn0k=3(6%U-sWsK zoIaoUd!MJ#W(IqH`uLF(Sn5@;y&B-d!F){OY*#uLJt+z<3^rz#KU4;P9#~1{Q180>y>pd(tFMbS8yrGi1)l;c9+3?xR-4O~>bDK* z!PI+yVp$HRG+o_1T#)k>TgTCQAkufd|$XHubPy4qqf zrU`!{M&*4UPVp(Bm6PcUjo79y$!_C_o+wpIJ!+_!rdxKZDAcjHdtQCtHtMN$Okch@ zoD{W=33(2RiEM>H3@RKE3}eqBCQ`!pNWBF%Q_l7ti(vC~F?j-k{Hv<+-!1sR zXQcHUvbXsj=^OSo@y0C)fo0SHQ)9{Po1XdU?CWMk{r$SYH@o3AI~`Swh*20?Z4rtO z;MIfxno-lIY0M`gBEp&^#b_!~gvn#BU{g|i+e`#8wwHXkT?;^_vJu-HU=+Lyp@2U# z{0=;q=k02=fkbI`l2y)ZN8C$)>`1b{$8l@Dw#gCZ+2!D$9~?^FfX4NCenaQN)PsBV z7^)PI^41L4e;)t+`TyslzPmu^sW<-R4Qs6Ybc-L&w6LAJ{tfpfMWq8QN;_h}A;CxS z=WptI2kOta$G~^~tR=dwKLB}eeM4^~qDyTO|9)@2w7S|)`*ynObvOX#yO=Py@8$f7 z0ZYcVapiOOL0b4#^{L_619LwW=pPun^3GWBl5M%(VhA#LLJAP{-@uRlueAjEFM&y| zZxAa&(|OkbX~qpQshMc2Ie>eS30c9ccf^pYU<}^X|fw;g~gwKg;dFi z`(Ry~f0#1TZb6`t-Dk=cimw&S)fc5NM3%nu;>to!F@f3R4@IWez&N@QcCDbFmroAZ zZtMvc`yM9DR(Xip{4dnF@e%_Zk>L|e${Qyj^_?Dg{Hr}}lU6in0~=J-MU6~+s(8}M z@M&H=iXoZjzgR~41#l5*H{53a{U{|YNsS4aKpZL+Yoztkhu>tDKhI%TZJ7@!l(mFj z4!NppoqVaHTZ?RSUG>ry#Gl3xi zT^LU)2wOO-O}PK-DkPwz88CiIdb3argpOuD-=gOoJU(Y#@RV!-0VCtW`e!TMSHZj{ zENK3>O{u`wRL!_Cx3!_Hpz^GGzD@1bMNYw5a`ZVZqP)MI?{E0~wY45pr}{G>ab-%C zKJ{NX`7yT(N)q4RAJ0Q4C{vnE261XnckZ>)oOy*uR?LEx=?@$(aX_dhAY#NS(rFd~ zsW|ktIPY)r;b-Kv^sD$*%fH~kjg3sc_@bd7$|%j2k^olkpaa`saLVY4P9h5`(*5>+I)TgeyN4U4{mCC{kkLJm$oIZCzI^Yw^s^Tx3MlAu0Jb(^AtG})omFm(<#uuTJToJyxxREj?cqW-tjxI#Rv)}uUAlni zuq`eb;yuA>4A(Wpq+s>_TlxhTDJzajt*#*i@*24#TLCGTd9CY-`hx3W_bjtbCq@vE z=NWSu9~_s+_i+kktt@N81C5PrDfyQaM2CyoKkL23Gc{}5NnmJ+YT@$HqhsUWBr2r_ zZC@``_l>GBKmlH4@F;g93W^6y_2vqY33frQA>o^F#l(n%%T|YW#Q(?j{~gPeAPZzN zG`=yx$O9J#EO5nBn+f`k1PS;+xCvH+`q1c_{I7agay_=q+LkGx*mX|D1?_iK4$ z|NMDtg&_Z1bITtyr<$&|m+gA5Mn>)oZ^zNb4jJZm?N)uVw?K`_dB1<$D!EN-tYI_Z zWImQ`t4SextL)=}G?+(=Yd_>-5Si^s+4E;(618guqeui9>1$M|{s-%YcOZt`kluI- zrPArNFnKFd$^wu`>1R`@K-tI?i*Jy!q!PMJyqdjl z(l~bb=NVDFTU}{00}lMDJz{(j-Ok~ZEg^ji{YjDp3BBr%+HBP?PcIG)K)1KfDq3@V_IKBPQ8xS}pm?6NJ&1Y+b{L8VIsFKh0Wg;xgH^U67&Y z7toc*J{T{Wde!!U2NV;f2By*$aY~E?3gsf;N^?d=AeiAc31Pic4D+k#xj_hyP<`Yz z*dG6{3;k;n|B6}Hp!B=^-LJ@wTNI+RY*$};5eVHCTnL8(RMw&)l327}$&np^eY*Yx zKqM*|%oCCoY_=eoU;@(cL!+uk^Iw^pPEkH#^b!=>nD7Fvao$PX?Z?``hY_&GcTMSh4chW)=UmP{)RT#3TZqJJ&m z-v{YGTgcA_`VK3^{`XYq$I`)7m%p`YV5gbK(7 zp3d9bH!+^QVm%6%w`%*s#_er)p{O{{CEL&l;vUI*M|&~ExEc2z*&m-g0n@S{{^*WY zFP`%8ks2;W7FF&1>DE!V3KxNBN!Eq%(QxDQe^?rlQ@pamN1*&naWt-bniIL<-y(mu z|NrkR=UjG%B(p#x6n0erFicg@rExs5V)|3e42i#u8oEb9Q@#?CJN|-u~Ogzq!Wx1-)`eTarQFp2`XwJ2EPoM#DfT}|5Qd*um-OeDJw@?umuc}mbTq2JbgM&o{0VX$Lw7^Tn1QrhWkUt+f? z)}^KmmelSXQ(OExSo5eeS2Q=uqOWj{M-CZt>)<*J;j%j*y*hN%F4t5rR|5$E@9&oP zbZ}XV2UnUwPRLDqotLx!M;uH9ai6l_;olem-Iq7Xz%fF7JM*Ehj7Yz5a^u5qW3q9N z$IIw|3Q2~myF+Yw@@E>WAvaW;AS>*nj#GsW3FgtsrtAbtC0LET^^$hw_0-+E@8fnf zySw2QTE8jZ;e2`3_qabpWz^Oj-XTMjm`jAF1Dsq#xh0zYnI zFRM*XfKj?WfQmF6l zFpa!CU*lxMILv7zejjYFA4?6mYtm}V?(Vr8M!r^uh{O{~_gZdz&yKYuvWQ<1gqEZV zpKxgDNg_G84K$CS+pq;*<~VM#D}o2>{l(G$ilJMMt={Gqc+!$yalsYgn8q7z6OAn44Lm5N*GiA#6PyY2w++ShH}bFB zZ4I~g-lB6?jWT85S4h!W?aPQZ860a0ihFQz$21yGlHzS)#b)9DgGa}?nVRXKdd*=F zFG+yfKGSHTOx%%LTl-v?PiQ2xyV>xB^qB6(G)9h|7m)L{Rbw=XJc24!e&ai&SLUP* zuAPcR=MHq8)X-l(csarZm{RKgVtIO13!Pfvu#kW_^>M42(7+E z`r-P_SrDiHWdA_k-@O2Iy4}ULdBxVEuAn0zw70h<{x$h+{u;?Jb;e}}`S;n*!r;pn zR%3kC6H4v7P|m33ENTtp;NaNVte8$V9xW!5O1y)p8O(cS^%5pJ;$w;B?(sj89uhF3=o--hh-Hwo`>4+G?;j~<+?hCmr z&JdxINF;UKJ46<aQHIirDdZ0UC3Mj>#ag*1W8$Ykyd#U3?BGmg=@r|vnwq9Xq>=mTR z_PETa^!PHATg%%Fmnol~k-XXlUuHhL#5G6_O(;(vj(0zTQPAFMT)K2??KLF?q$y+O ziib$^*f(Rlm5qd`A{Aw!A#S@Fyr$r%y&IJ>NzEZ&9z43xl^dpfXDGJrtWi>@(l*GT zpw{)=T5>o_=EHR#UclLk^k@DU9eT{6gaRI^^4xyZ#DEiz;jSileo32}z;ll=Q^DZC zW}AXfPw^mrs&x#-v8!c#{Mq>_Oz3c9l*tF>!GrI8N&InyV&uGi8g&joIy*(JI7ubr zn=++Sc8+#+97EReWq-B?J!26(J=_#8Ki=!*p55O5Y_~nNx)t*@P80mI%hUY%kfpmZ zft#d~(!zW*!`vuf|7+SeJmdZoVCB5b?gP*V0jTs=GePRu`peOor6djBjt2PP-LDWK z?Z7PfXGeLoA(38`a z`7B%AYRt?^&d1Lmw3ZeSxDI!aY$QR;MQg&HSZ}Dy|z? z-a(F}S-~k!-#pS(<|{`1imd6Rk|(tFD(%LN{G1stp2X)xtJi@(*;sBkh&WuJIjqi| zP04IDgtR&K&1LjQXvY~^_5>K(z!}>>IaL~DhPxnm7jry zZj}tHK~IYQRCpUtP`70qR^a=u;Bez^Axhl>JP6^9o0`Z&1T|#+DmS1>4vJVY_pPN016#2l;ac9c)!SC2_u?{$(e+q)(W55~D)lG2!xpA>+CT4gXc(QzW-KC$#~@dSDn!SiCx z5|px#98U+#6RzK!TY#hLGjVbeI4>mK&9+GgT}NBXuv|}*?g*gee0P}8alSF7OYXmr zZJPg@+fE9cI-a#ovX%-q!~3S#*H({NOw}e+)T^x#;@E8X%*_k8n5E^5_`DEz4i3r; zDkCTrwTE(*G0Ob1J2)K=-{h%uMB+r@G=OEetoA!va^j)$Bg()q+0AbGKt!_^Dfl03 z-tB$&Khix!2vxB`gwPGk{TFleA{U%fE&e|h02@rh<>U-5?@WdgBb1d_L~MJ{HE948 z-a3niKQz~yKF8cWt_7<+zRG|N1Gs<}(E5ELuXU?BusvzTN^F?_Z4BSBRn~~JHUVfe z<{6Y&ugJa$z~Jl;DU--DQPjr)b$hm>8n~OFU%9hhC=12W{EEXD&qsp@*l1*D3N~DTsB&$!fh+Cl!;O-$&_IpOH z@3-W#WSZw@9rjoLKhoYZtje@|A08D!8kCe4kOq-%0RfeiZbZ7fyOCDul#t$Zw}f=F z>F$v3ey{B~&%^USe)H*_!w-A(IA-L&uYIj^tuvO_QhT{Hq@qfgfHgu+daOVLnTd%h z*d*FDQ*sN4#^vK7jofJQJE}eoObj)t{SYqC zQJo*2Hp)&Q&?#%tITCBQWA zFE6HB$e-h&JLMZF3ll+#S6C(lCdA51KIowT;;wkJ|Gv1ceDFByVa-ngS97Aw+d=%$Y-FSoC|EauxFOjR{mjk+7&ejfNuy-T9W@ zQp-1|hRMfsScFxWK`vd&)vK-1oQ4X>&uhBWVQPSsQG(Fu!xc)xy2ee~+8#R?8ju0c zsw>a?KM(Z(K@?}8xuq+7c=zc8oJ!Ih^jh5>2Gp9uz`>rxOc9oAf)NUnc&tISwU#ls20-*0ay%pFcV*>&$Rs$O5evP|)psBgb0!Bmru2SDk`JYg`QIF= zJnOzu{XH<+9D+i(Dy0XVZ0$v6fY0xvZcKf=n=Mfc0_e(FFQ&)7yZh1t{#>x_m*j-w-kVD560G5^FDCX)DU##j~RGscp` zZ%mff)({Z$RORAXjl5k>cT|QW%@QSGP0Z8_DVXWcGZd~ynmW)k#=&%ipcd98{SS`) z=UFDgE)awNC;o2Xp*q*{)2C1GJ6Wdu9+vaK=!a<95xh$&h^-h>LEL>QCIA_1EEek9 zaR)7&5uqZWfD?m3hFVz@$n0F$ZMg|zUzK`f_V-mRUl#mp4go;epn(CIwkp2(f>#TP z3U&}TSjLExZ9`fCoCKv|uEO7=f*k@kQ=_8O=3Y0v>Tl7T7~)s=S*81us_JN@G-ds( z+^Gj2O6H;smz$rTo+OrQVA+|(Y=>T8UuRnKtM6-#07_e#C z0|SOvKz{O>RP$wqWHM3Q5RR|IWOE=cRWV=YT7{1L)e#z?%I62F%l(JzK!4^;kfBy2(*{UuXK!yiTSm{9^0hw)C{Ulg+ zOFyOHZtrohU9Pk93nbUS=My|U5K%lkK;-Y_V$`~W@;f%KW>iXD3|Jo zDwvVyz2BLxW_CF-&8xAPs$eKkul@*oUlduz_P@plb9cI<8G<7)RvKdU<|GALwyaMo13I=b7&G4!2s7Js)`2sv^v%h6gFKbbW2X#o_ zrj>Q9Y2Z*Ivk9G`wDnYIKiq;tOHm5|oD(VMa%q~+vL-%rPCLyOw|$W!pqPJjnfZ|2 z<}2r;f7%E7|!2~Zv`%> zzbBc${w-&-4=`AHr8|UccRK5NtosEg7^8Vjf7#-HZJ~AH`T-)Z*#@%@FdQi*%oIpW zGq56_*ztt+6*w=B$4o{ie_YM(^D$6r3cb7)0D{Gb=(|^i3#{5WNaMn!rk-i?sXt+j zHecosuvydV5jby81z#Z;@*65Tfl0Kg-E(je`_Z=X#3rqTkslVF74io;Kb|DK?iS3D z)V|=^W74r%SV?FPI&mkmZ|2d^E?rVn`(YqTGwo!nIXJEU3V8M6TpN*4Q5A@0)judO zEYlKgTob*K3OD0p4c$ER1BRgR%x*T73u&fLKy**dU#QeTvKcA2lddW@h2HxUD7u5f zgH|A+1p*93_TuAx_h5abr({tJ7Oi4_;13@JHP(Z{bg{u&2aDcD1cuF?pHVKyn||?Z zCaNP_05BH0R-eoz;n?Z7bTNNyZAudfjv({VYpiwH7<#zYmsGkSF&;$@yN5bzTdHBW zBaj!M4f6hIzPlXSe}Rik(**2qP(ifhdIvKmzI(O%V79L$8x#*xbfVW~89#(0X|JEV#EyAv?2q0kthSkdVBvUyd?83QqcoTYs!-b*9mQvt)8{AHZmIridh=)+l>{FB<-D8TR zTG_lNG6V@XXKUj^(EZDD^?x1={o9D)~2QQE?lhj9n!~i&n03pJg)W;7Jr83 znMBel6?_v8KzoFSHmU%+qLuy>lHn}rF}_~_8NJZ?i86DnGI;)Qni*D2y@8sG=XTZV zA?%iV1{78Qs5btu+RO-}WP;78WA2bP^UC*~N%rjXRZRLtiM@AUybSKmq|2hP%jZD0 z?xG8}yMJTi@ncqwPJ&%(Ckpec^VRJW83;k=4P=B^F`R@0QUA12|F+W#-kb*GB>t*; z@)7+McM}6ql_3&mE%?d%8hn}nZ!_TjTHh7zCc6d?u_kQC`7b~V((nto9Fv5oP0Ac& z2^euWG%>&i;=!!ef($Tk@cY8wrUyyn(rpNYRHtj)SOhGZ8`>fSYBckseb6KUx>p4b zo{xjabl8|&X8Teq_qa@`0LaqV2*x>`j0m1HTBJ=DChrz#w6FXC12ODv0;PT7<1ZS$ z1>&^er16ekvB@i@#0U+T%;xRF%sf-%ZR(C|AR zEWdpn5HfNi5`^_55R<$IUIUj=J#fzBmS}gjK6vE(b=l$1P=a(hs$-8V-)*&Kh{A`Obzh>Xn-b~a zvO|!bnyV!c`?c(1TlW{gsz5T7Gbx$at$5EVi6(L{=E=N+L(G&cz(CS#4%D|fU7Iz>-VDc$(Ai9=u)W#=xZ1PjeM-TL) ze{2V=$**lhyYL8Zn(3tEKh+X`q_m5Mud)g4| z!yB5jUPvYv0+)z_lpLD^cUV{M)1h(-dHQ=wh&BF9DnmHU17Wx8lMag362RrO3vhx$ zDXiJ3vEA?n_aCi)o$bb#1=|4@gTB{L+h@E|06Gj-T4-T0sw)qU0W`sE&_~GYxJTN& z^jZO-B#fBPnN-*xMN}9b4(`M4&GmSd6?uVHBeBBp0w)^9JR{kdOE^;+(BjoBuOu7! zM>@%nx==<^k7IN`A-Js`gd);yJO+#`kv?R@b3UR!=)zgEDa`}}A=`Fs(8+X~2XlYP z5nmI9+(akUv;N`P%*-rL)Bc@H^e)^6YoS2n-KS~!{0=~2q@E8V8^dX!!9u^%mApmu zFS{iGJqo9l5i$^odV%bpEq6yvsrIMS_Q*i0X!RqH)H;TOO8J_bzfhl3SakRA$pUfp zlTY5WYAA1w9%cA4JpL9z`VjfyFW7XJZ-ndlLsJ+|-Z}cN?Om98b}p>AWVxmU z;xNQ_?n-}0<`B8$9=2uD`!hyQbI%b99ZcOpnYmV$+XuRWb++p4RcBoYkn{@yHTCnc ze0KXT3Y8bBmsU`t<9J!D@MKz_H?X}d{_;+rUmEGRhG2r9BL$Q23g6oM*YPD4*#a8m zS?aV=eSddkOXr z8rj-^WitO8LT_j%+}j=(r)wPXf8yI13CnkRy~f9zGaBa7oLa7x`;OqB=IQP`hILm> z*RX2Z$hQ`B=OCoXG+_%D0Bp^ccptk$S0br@@0G;(Gpd>$UTzXKw4T>Z!BhHB;Du?b znhSg8r}VtkPUVO42QXs+V~-kI@rh>w>1NwGjDnf=+iyR#cr;1ID3jnWxWbOqT(Z?q zEE(A3!>$0?sk3XG@|Xe5+8;MtqXKtRX|MRv>cE5mvyL5)NCK#VgN5G@e3gQ^$KE^r z86LtKp5^akKt=BfXV-#@C_{hbmOW{ak~6m;*o2+;Q{IH)-m;h3jSxs->OILhIe22U z42(tvC$bJ3I3!?BuErdl^PzC!Q?a)&Y@UoU)$|sIy^G#7X$TbnMbM8)4ITOtL@h4W zvh|J>2ru{8saPH7C-Mw}K7o+?xwrs`@z%wX@7umK_Fd<6oVVMGso>ZF}F+4Mb3yk@+A7A0q7uI<3v{ z^ud%5TK60ftIhd1k-IC=iaJHRk%g9h2RA8eCo=>bwp;(u+np;^r(J=8^L~B{1zyL9v8F5U7ypHNSkWq*5!7k`EY&`Rn!NHKbl9EZGQK;KBsJ zuKJO(BbBQZS~ET+A0r>_37%7Huad&?wv`i#~gHDB;;&179dQb`05s5)A7mV%ZEbrT(<9Xq}AsxiF+@VYe zxC{Hua;t+rhNj(}zIu;DzJD3in8Io~1KR}d-9K+etQrzl){6cc+fJV?SQYx_FhfqA zG%jyZVb<|5-Xy>usGyb-PpXg(R<`-(IaPO4uon=2jaN!+k#!eRKh6OSh3?R zesm;oe1bK9lwT+$OuizZ=}G;oPK`r-3#2H#PO`55+)VeCQtnz+N$SUxyCE9Im29ak z`b<`?+s3P#9zGX4bY`7a_FvU`I6xC+XHd=P@cVXjfTh{`%f<1#J7-nDId{;2_1Bpv zx-(Rs#e^MkRmK(^ygdyu64rq-+@u|g*D83}(S8W6(^&DY|_FJ%Ieu*TCK5#aT2 z7{#wHVrQHlHyIIaZVYxM$#uWoPm;qtxbB~Pb~3@@8ZZ}6?^RdT`US?5#~vGq)!kwk zo`un5Rh}4EykiS7$(`E{&|eBqYC)a*uFLOK-<<}mfedj-TioA3vV%jDhB=M~)^?N(Xcj*RU_t)9VbAH|Kt{&hz_Z7;oW3rQBo z_MIeE9V|+)M64Am^K}sN+yDeaiPsQhru);g`SeB)TT$I}cW}s>SyjDLu1hFNti-A6itP);@CMhz zM}_wv>~XKtfOiJec;RP+SBPY{JbXQLg0xuOYE#cs-$6Rx23i4@u*yxc{LlKBaneE=a=)?_2Aw`(>#>BP6^4S@ z%aVq<=UA+&F*#p#D5vRuL?3dT2zf&Q1uA0MkyVJ^*{N=DQu|S%Nomyq>_4KPnVw5~ zG7MCJ>~L%pXQ`EczQ=YM-UP z#;tGRQQ!luG0d5SWC$CIUEsp>c9s_h_PkD3Q+pcB&PRA}l12#PhOl0Jx{qphAq4MK z-2N$8jg-l&^YcDW?P8ZWci2rO@#%vC()DXPu=*ArUv9-GkuiZ!n7M6wxeZ_ViVnY_ z`<;xEP)&LF(a6>8>L1zRk=%LhiT|#twAL&e9NW#V9#sm;@iLD_5Jg-Bo7?+Hn(2|W z-5vGfRzRHRDHQNvHAXt@;O8g?HQHN-ZSW-sSf_Dv9`7wG?91k^4*UwV5ruKeDp3s=m~{Q^p1f=&k8Be zS9FDpR$TmcgVG8J`bA3pu@Tbr6L1IOAAgH1wosUY}0RT z-)rg*^rTcJjgE&HnuxLqu3Q1G0-s|neVOXrZ)Pwu^gt^E2eL!zm$?{0nehrltP<`} z*debt5Qlhvabah0Crn3l+?g~7nPO9W-pq2}!NhG{#zC}|y;)Mtf`_wv?|uu1U_a`d z7fi=>VrM`qoXg8dmS(rT(yvPFrkZc{iOm`lw56cdRa+#o-K}MJuAOH<>o?XRqnC2` zou8$6()p`Hy*>W$-8j3oiMeb*qbgFndpIVx27jY}>4ISi1;3s!j%?DyMp2{tBzaOd zkwt61E0TK)IuR4q@wuc~F7Z6Q3Q`Zvc-jkzRJ<2agb5(o!nn7JlhqH zYZO&u=8mEwwIGETMD%t`oKU6qGwN8!qQ<_<9vtz}dKp;v*+VzR4X4**E+;Csv?5r< ztc-T6T1ramhF~d%t;CU6<#s5wA8@e^UU2Fj3Cb9NT??_)8v5bMo)AGNhuGV|9ops3 zA&8k$Ir*10w^yR7<@u){#X&C>y#<70{b|~B5?ftr z+;Wkj7Sofb9aS9bMrc7JWg>I^8-4`?M#wH4qVRsz_NrNn)5(bdSh0NpUxa!a`o}8p zUkFCVbW@tCUTp&hX4+oU356;(0c}+GyHlzSfDv6kWZa+6VWl}Dk8YQ7O!QyWVcjq? zttYtrF6{X5*)w@BO@xU1)e7dJ$^0VZfhf!8rf+Zv3=IDa&-H=r;dLpAX#6kpKY-qt z$Z7n$Hi#E^qWuI+8y#O5{`k2AlaK4CMDvC)p|6CfsE?UCD#9Ov@fo1UF$oXemNq00 zKcz68Fn5I4(DB#EfCv>lFo zYZDb*!eH4#$Qbq5H8)6A}!GkHlBtEtc_}SuDaLkICb(hDzg1d2Vysz z@O0=a%_1r$Egoz42e8KIRC=n;euwy>@)kv#BS%Sn3@ma=j{gMfMS*S z#}ATyuCpgXH>cJdg>X4C^cH3bzO?15&&hs*%?yjpq1TTboy1OqS2m+|1GrZ%Vl@r` z+}YdPP-uzg1#^!evo05#gU8MKP_Y&kMMB|kLoE909d55ogvu7ED7G%mgap&=C<7C) zN-wk&l4_@0ZZC@jfNB~Uv7+mGujq7SseQk>$6YBuIbqsFv!=Rn)k97uK_2Ku)~6Pw zDWnsB zoT@XGJAIZ`^h~(mePD0uo!WHwNqTTb`M|*>0ViFP(=PNWhc2Xv5_vOB^jrcd!?B z>zNQS@Ga+AmT?8iXO;aIs^jeEr3$a0i$q|}xluaDusG*gNA)p`LLbC%_6Y|I$AA9h zdjf01Q|oz6DGoz1`7#%@zdMj<(%la`I0r5ThRKAzsNSS!bUIkQ*Xavb0nJ>wPa#eR zU90{aO94!62ctq`DLBS`Tb;pbv2|(q#C)~;$En2SMftXS9xgZ+EI3Q#mF%=j z)?hHclrNNqyloG{M-Z`AgvFigpPft6&vCzcuVAt6xLv@kT&s4uAnNo2@*Z0N=7$)> zv%c6q`yOg}J&Oo6ioYx^KPzk)x6&;T8H0r~yl*h1(*;?TkL};{yv?vpeQv1bP$P29 zEvyG1vvv%p7*Z^ZO{&8*k$ENgp=+1H^4Hb#Hn9U2uPgT^p?fYcV+@m1m^iq2NI%}+ zd29{1ImojnqaFUZ`20lv2|WokC~leLuFd%?x=srlh4minY|2e9nhZ+qA-2^HQhwQ^%7?cx?SWXklkQw{YNa4 ziq55A2ly&~IR(mjqk^)0W@0d(G%JW7T(cI?(#&=QNgTnGZaMU0f`^;wq}sMNBHr~g zKi8Dx52cjg09EOFeO`>5P~^O3Dg13}1R43eAQ-VRx3BqErzV})fXDWCO3NME@4p|% z)j@-o@U=wvE*7}*fVFsN@d}#zuL6@R+q(%4`ZX^RV$6wK{%jRVL&k5-AweT0pKH=*Wa9;(-pJMIR+~7~V=y>)oLpVQhnB1$P|gnIo9m;F z%pjL0d!ijyu(fq@()*9$NqVm*Hi3$Mae>-I+Tsz<===n><=U-TMX4_o&MFQPn0QuCZM-aFd~IorMpI@AjZwH6lH3PAsbXw95CQ{<>o$c~!~= z+org(tmAsNldoTSQlh-U*De3*COxN#9ye~B>2}+3=I7TyDIm*sO-)e}(pt=VV4vYJJxH1Foyr2^sZRiaU>q%!?*tfwX|~{YNj)o* z_pp-vhpV9!td#B+K0y46#xGAuXui6~wEOK6?ieH2;&K~o1J2gJ{4)hn@CgScxGhq1 ztw*!2aE@POZEzxVbAonx@;4tmeFoXFuF3ZGCzmZFenYEOMyWcMXjrk;mu^EXbxMCL ziCk8|)@eG$guRS44PXiNCT^z!(M$q8bS8W@$T~;_jF@{AV>mWWjT+#=l$UPPo^T_y z$$^P}cFPPfba7oYMMIxw5w?J-8{SEV*;Qrz65}z&7;UD|y!I6E*Whh$Nyza^oc0&{ z`48hZ$9#F{Ap~TNJ{}Zup8N2CF8}$zh2QTikkd zNaL@-mzaRGX#rVrvg2NG4|*Im#t1IvVucf|{H-4S$?DtP@GT{3{g7keGZo zBl=T@-XzvIG6mw0Uuie8f{?dh!^~rl<5z6knR|RZ?IYlJZV{q2+OfEAYB#5Nzo1c) z{!w+KY4FQ$z0W~NzEEji2RG61WAyS@l@gBs1IKgfOiO@&Ea>Z3^2J-qZ+Xyw(Ui`R zoJ0H@iLR6};AIHTn$Kl={ILVNDDH)Nx31n%s?8695?gb0Vr_M&#Gc>`9D0VzZ}Rdq@KaZ;KBFi9o&F$X5hgK!2k-$%y9B z&n)_Y=^GvY$zI^6PChB&SzU{Qj;Toy!c^4uCBR4Gcn)ZKd0p)Kv)_TBmU)5s%xa^! ztGXyHV_{D&*PJsmla2@Mt6ku+zHpTKUWmTe;Vfo15pGKpN+fX%Ce5Ivi{eKQ*!0FG zq)fur4EiPd8|S_$f>zGh_sXfPEUR#Nv77!OYMCbrN8h#q`Oybpz8k0R6pZpu;sJj&8-z$RH0L5X)}(G!vOGT;v&;;yG@si zkTL4=&0uVsU9Z2vcZflL6_E6Y%tuJaA0H?B(xuMYx3H`~9X``kW~C>(=ox~%A0gq) zBQ)oG;qfegnj=ci=m|*R0Dv37M7P{iz21lEK&fWxc%A_fC+vrdMKO0hUcl`(+qlqP%Ze);&SyFEDje7}=O^n%f(QNq$Bq&y1pFY6Su6rzeH?Q}FB<&{2EAoW6gA zb;~emnHF_9!ygtb<8Zzi&r2rXoLn2mAoRxY5d~oaFn5dCOqN+7DPC`98OrTXv4cdy zL=m@*9M?bUXnh5)_jVsozsBEFGOAi>LdhT3zuNm;jW9qVL67d4gUu(n!?Zm@92@ec z=|sE{HrWQ?ja6fr!rPwwC4SPIXC4h}XjKmpeQH(li@!Zz)~2TsP$Ecmx?h+FN!UvD z%!9e{jCsI{mZ+v&B4L=apv_W1;c3Xz?;gRqMwWy~)S$^*5&3N$;`&|v^p&~WHgZ;_ z0_3L#zpGv7T&8m6Ce%B2=zKlZF4KHYl?0nA@I%;1&42j@HLR?7S<8M`{fv=PXDBV? zlNnU!Dsw+J#Yezcu{#BFKNn{=kXPj$0b~huik#Nwd>{+JVnoqm&uVPHZM@20aqKc{ zFx>@jm4Mt?qJ^*fZw&0L`P5)XIcGp@I@FnlS#%{AuT<7(83xi@+d6$^U(Y#n+fr2HHaRe`_(Zu59 z9yR_8VArFt#Bcc19pYb~jr&QSnap8EcPuJ*nVXOO7y|s0r>gQoAN_n$Q=kp=+o<(P{Hd7#tES~I<*-qKQ zAB7lJOVIALmjmfoZt@V&xWgfMyv(JgLWM!HSwUOy0sO1JqpA|~OOP~19FHX5mHO94KK#Lg2IrONgnr6%%Q9pWoszntj- zma5Yy?SRiJA(LCE{P9zr?!)5qz*8y;9ogYY*rK{x1CqxV)9H$IfG7H9<5TTFtOo6Z zQO>sJY;9t5%Qu*fY?^5g|b9 zIVR9(oT+Njy-5}@aXKc zO}J$I2Ee}Fx!0E!bLI!hyFf*^zjaoZ`$MdrY18HUga(+(%vl@2tc#Dz%?AW=;vF+& z1vBCi7US~g*2l`g)BM4{_F6pQeW{!?rB@sb12v-*rDj0#U6jhROfj|h-R8mVqq$0j z1Yh-15U==>N1%G=l2t3+xfh^bvojWqiuH;A!rpMW9I8`Z9eYi%P7yfe^Mag_-AII_ z&_@3k{MMZvrsyCSTc#iQ2~r~8_=X+p$0b#kDuAQ&|0Md|t<QpdaQzBh9?oLgmm`N5Ryh49$aDfA)&p}C=73mugXb(A-* zX@nx{YW6;04P@nw{^tL9o41hXejGp^6div%_(6tP`L2VlSwmrNy0DTZ9#D((y<72aeA1I<*PdLb<|5C{)nO;7|6MellPLltH$p@c# z!jH}+2vvW-C9Jtx4J>0{C81Ie*#89uN4%)Z!v;jZnOHUPf11kwRzz5xd=0ANSm1f_ z|8PwbNaN3{)(u;YEy~7N#JEIC#D-ViBs>d9-psWd-6jqea0soaxsLJ2mt7G7^b4uY zkQ%^Q0U)`UI`{JLSmBLrP~?(ZK&lniF)q3jiqki`XCm8JeIThy=T~6>`Ox-Qg#&R? zdkEBwOi;rlnAcZf`?4C}lE|`l)wkE6&2!4z{h8Z{edd8eUKowfa|fPKUn@D< zpW>7g01JH_+n?LJ*tY3C2fpF3+0ZfNdiSjT>bgvCoy-x9yF_bqg^`UFjja4$Z~K2Bv_P0*Pqcw$>8?2N*=J93;(||xQ`^kn zNq5fS(d#-1)+$LGq+<+@#5dicugqE3KeUdT-^yK;SlDyJfGWa9L;MC>-# zOKCz@aC(=z1WJJw;q&iUTnBx1t5(d2fQ}Vym-A{Gxp?nv%`~26GE;UW-z>m7F68u^ zz^n>IFvIoKuaB>T{f=l3(qxO#I^y1+Yot$_x?3cx-j5+u!>Tk?W?dI7n&WqN=ewEY z!5`bXNxz&)$=5RuKMcg@t5|)$d|9yCB1^aWWix)(#|J?i@)iJAT33J5urp#!hLFv` z-L_@FfP+P06UhdS@F#SbLloVgTvce(WEMv-4F1sqoNOxQEl%23{>7Jx)yy|19;Cg* zO)N6>TC+kbYf6ju7cB5^_w|KJU|-L%^+?uT3nsy{&KlG3@c-qH8s% z8^BlhO48HZ&(G%|T@Lwz3Gz>qC$AHs3%vo~z2I7)@xC^c8F^z;npXriqh;-R9MTcg z=I_dK*`6HK7vK{J7wGdU?0ou{e)R-4hHNAfyE}e+rPPFpKDMs8Oy{u92g!ccGg3@YSN+|MtVCque2lxyW*5D(giKaWb(^YKa!>i_<-wUzOfGkzTF zka^iSNN4#u^azwNNH42DD-LlC43OI%O4ZqL7_)-pP?I-r=9%biks zs*XkTg>E~x4wPpM`?M~MKg=5!$*UW z&92=`Z~oG2(<5j4YWkAmA-}6@o^qx9uPBf3CLGwfeirjTX!?I9tiTEfvzR*x+~M+N zNKwGDKubwH#{Pnw%U)_P5Oa(`pqBOPFZr8>;g~tKQX3S-T|ysE&;Izaz^9bl&TOha zJw{0QngQ|$kwMAMlB<26Q?YVmewjP%bz_=APd+Qxn&f}Xvl+o{9xsw*%Uf)m_i^6=r0yot&lvsX!>;y>qwF*o1@e zJO0B&s^$2OO@~afe#M5E4P^)BmzlEgJZAOiCs(CdHj0&{cCp4DIU(m}qwl~d#XlAI z)J&iT1Nrt>Zfu@}SEix7%6U@W=(An^n!seaCc}X_zdeAgDUyZ%DI)mK1)zKmYv}5Qv5#<%xV-_jtD}hJ38eri8Ncc-_b}(zE z@TFEz{~mABaUvJjkgckI?ioGGpIKlS0xB&HfAa7t{IpJM@s`AWgd9J0owg7J!~uUL z9$S6XXfymkDyET^d{MfEFm+|3wSsL$Qys&+?Kd&c!doh-6c{p^Uw4dVA8>+Q#jOit z$cZv^%c_-E7+1>jw`8voqs80)Dz_|__lO-nty!J?-sKsBI?;SdjKpG!AkhO@1`Mu; z51+x@T$uA1Rd6uOg9b~P@rq4^MK(4m!TyEYz7OU5z|EQ;tXRxsJ!5))rPEGb+m3)H zk;KZwJ*okhV`@|eIdge2x|@{0KAY9att+Y2v(8%Obc=G)M_sVK%ePK8J)QP6Sqze{ ziru%I9QPu#B~_-Efb(qB$0oL+1b^AZ#wEcu<)+2KY){-Tm0fbsSy!~q`S3OK^Zc9Z zwrRHQ;>*^@ZO8FSDM5=)9_2>c6}ILqv@DtpC#c7EP@w`%n!}Hl-DZk0avq*9TZyOm z$n;MdOuN|=Gnqh$uFc5wzvaE5zHT+aIDR6siE-tus zQfoC`cvuOdpYG0H()b&QYZ2BH6b>fYgD}SETnuA|AT?I{r$?`B&=5PiQVJs^X+`Mq zEI~wZ-?$erw)5KUOn|J->iB*6YARsRh=W1p)#0^S;1BJfmr2)^9-)Q~m-v0V)iAHv zRU$x>K)LNtX&{WMt16V6X^X9`cyKk#Tkh<8Fe7zMA|{k8J2~vie)2Qgr*s?NIOim; zB@fR1TANdrqR;e@kVUbg$!j=q+?+UaBGwCgS z$=4$1;vCNHXb#-v$mki3;z}n5L!m^~7@NB#&v<6i5zQs3ePmJb zW0TN$VH{kWAFL}`{0p{ClfVyO@np^YuIlDaxAZ{+R$Tr^?E6UgUMZh1rMz*J`tbAa zPugboM(^HH_M={Asz%)u8@h}z2q>SjmI-;eU8sH4iI_C?# zb9n^|+m}j){PdxVEa9>H%z6C^Gj`$uKpCR5Qn8ThMr2i(J@Lj;k@%pb^4#>74+DaM z8~)Bh@?Sn`H)e9*{dv%tzMUSW<)WKPZn)zhE>etX%z6vderSKc;-mJkR7v=f8`-vf zYEp1ZFyGow_1ll|)I!J9@?`$uV8L8&UsLCM3L73kGu55a@9Fs$bmRMwPd|oUoBy{Y zC~@l-T0B`)A4ymM*e()MEG%QtCXw6$HnS#$MZ(P@!%FS5EYDKdj0O((tbTqoDSdx! z=Tk0I5VCVFP-BR;r_`JA8#*z^*OB%{Kc92M0pRIik;4fyzTRw<1X8@ajMTP=X?FU| zZphR>tKRjJ8or;VaGi|*Y;V)Ufoq~1!|eU0O1Esm7dM5^)^25mW)KG`ji;5%5Us_t*Bv|6%EPk?eH z@4AC8fco72yghk4)*VH-AXDI@dBne9NOstr@dTIWu2;B;{hk;cu37EJ@zWiSbT}aR zC;BC{zeLe8veWfJb3h6tbGDt$Z3^Xz7?I<(fOorvBH@a8XH z{(8X!+?!KG0$yi?gZV;sE~ie2jKp5CX;OCVEO$d=%sOX-n@Szr*0L;-XTyR z3T>&LDAc_;$g=5+KN+|A_{mtw$xxD5Q_e(|t$HSwJ}3x<>@v*UW5Bo^HAj{disa2s zzMxF*!lFY0;)xw|r@ykm#wsCMeK5zgJ}klw1}i}SqK{)49RXrv1~&MZo)xrvEO6!s zaoH%)5jK9P|CnJ=H-a~9Ot9GcPWP;W)5VTMlp(iZN=q|7hFq9No@s(;M%w$l)8b8>$(gk5@N-?c5EDJ z#})2~i=n2q=rmt-i-RopR|P|kbJCyIM0&{<%X+68LoS!^SKXckEt2Ovevv*#*=r1c z@M>sz1r@>{xg6;79om7SMLP`7C`&s6aFgj+C>azxqsv=0Ps@s;3)kGpPSeTJY-YzQ z9*SVCN9(h5?7>l1fle})))|47>vrgV_@L%0ml%bOwfbFFFM|GJrDRu=9jyANFVMPV zL5Uo0E;K`wzukO`k+(^j-tLJBAbvpQaoECK4598;bEQzP(< zU1zzsCqlR9L2t3@B#u|^;xqS|O@mqZ)VJ{0AJJeVJWGBHHP`)D2+#ZNyQ?Ae>UA`13*Drf)9=xytAYAYVIp5Wl zKxbld9L1J%ldjyXP}*?excibv{!`c0iX9+8h3u@@kY~nehD2iRR+& zN)&Hj_40ULyb3VN=e=&y)xyhVg zN+~ksC}2M`D@nu~)sOkSGC7mA8?p$%VaTRqPCRcJ6s?=T&3Uc3EgE5_?1tAbad|2~ zY9MFlV{dsmNdjuWChaXs$d)74+b2#F^;D&3po7V$>UQJ$y}rYKaheGPdf9_#+w0yu zO#(hE-ZMa~e&;FGFpN04Tw4p^q5|PI=tG&o)tIz9u0C))rq_{FotUbYe&hK%dbi!1 z-N|cVx`AV1b5q|i>{}9A@=eP@IEZr{bhY~C>VDjZh?1xw%IpzsD?;W$#WJZHy5~JN zWe~J;kW}DWNf1A3Yxu6sA@5*jt?s5$n1x~a@~u;`hBqh8eALTA4I8$nk@ClvjbV26 zp9M_xX1Ji5Vbnf^3z_!&%)uVb8{JdbBv5)NGF1FzK%=mpXoPmOOMPMpS8VsEiEWlf zO|<~~PD;U~bOX8;>$=w};lbLw8&^Nm!L*;P-uE2r3b#Xu09yGex0d`bXyqFSNT=KV zo!a@&$@5M1#1}3wws6B0QlsUYb+g61){h>@H;rd^Vni{impjx2o~`hO!*Y_@Pna_g z-ac_A)1HppbF+WY&~Kijn1$lxWlUM4azA1;e$vO#>zcAEj#SFp6>YB)&P$m8MJ8LJ zW=DDd(MPb6L_Kyo$9mho95-9hFyfWbp>_@%U2&HWpUN<{NF8VA-mewD4j+ebt!d`6 zU2Z*ub$Cf(bH}zhpJMl2-8{5|0U7o1*64tTb8dTbys^)Hfa~bqOzfbJNgt)l20K^d z;^FIkS#8-dIc;kkudnaEFPncoFsbQ|d%N;iP6Gx8#)o0mFBEUW_mjen!Ztu%rU)c1 zIW{bM%*7I2v7y>G5C^a?r{2yWKFpBpFSkkz9^&5{?W7W1z#Y{?F;7pXRBoIq+bK^Q zpUaj*&1L-FPQA|Q&0*CFPv_3D65hp*C>RT$Eqk85lR6?$PIYtY1y(t?M3QHIMUZ*nZeQ>;3HZD57J(rcvqS^9k(?xa1%G^2Ds8}p-Qd-lyJqKo8S?#79 zJ*$D*-Hg!>pcigCFmLW&)*m7XA+*P?yWSZ9;nvQFV^+IvQvC{xwg$ez8YJ!aVgDMY?LM&v#D z$%hmkq&YoNRwDyv`W?P=4c{-mm%A1F%!h+c<9tY)R=v+ztc>yRMFMB4-0P$h6pIb) zD`u7ivMyN(@mu%x$38q++#kQw8TGZ>b>n{Kn=e-@I*M-U>szB_p}+mw@L?A3YnE2! zvjs6vSDYC+t=?me?T1OFvI)(Ta7r~kO{i14AjCL&Z0!p!BDTtVzm_bpRpgOcQDq7~ zF6g!MMp#%cv3K^6(e>p1s$GFcP5Rcb**Fe9>=o@HmgRQxS6~p(YeCWh>1=T zBf9Q;AM6cH7s-9whePD4>#DpBpH1yzW|_AY8!<-gwrh4%xXCjql6RN)GQm-H+M8^c zuS(9px?y`j%@=6piOYaz(yOCfCn7brddS*8>&jAEc=zGOMTh}>IP-e&KU#GOUji=> zn~uuwABJxD&q(|`E$Y5;OGg^Hd@@ev?T=Y?#JoB2y4G=_j0w8*Gj&)s5}dlqSp_P@ zL7fRNE~=vQK5w&1y_Wf6CsE<6>B^hY!vHgdlqJLv|6nn=zxJp_ncf z*~ICbVf>xl=`*rzeovlfZnjl~n)2}$7!w-M*h_ZWzxApJ@;l7rC~_MP@oRjZS+5n7 zCs<^=@N&1z)c+M@k(idH#Mji7^k7q?p?BWf)F;g>>wBr;WapO?38YD`qKxUeXaJ55 zc0xsKMLIz6w7;l8Vn4W-YW=2NSP(9M3@69n*<}e)y||DX#_DkVv_-Y%_83GsPGeSR z?dh57%o?se57jE@m>!g1b(VLjpIxsSZYtgjx+X=Gu~_Q7LDjJPNfBGOS$I_hhx+Z! zqFxWX<3pbAH@+x7H_bzgx0Yvvp9VfW^E6yv_f@OGx%Ym1Elb?^n^G934f*(-|pd9Ta;V1&gD@P8V2h3<61=exuHl- zYi0G?7~KBmd2pw@$YOpd_apIZ=6+fG$NZ8P2?dMNS4hj$>^fvkRa}_zlP?=5R`dvV z=nK4`GQy_9nf^R5)jIu_Ijdv~Ju0Wgr_%ZBl6bDndq;)GVO1=Hu9_8lIYXReAgsCA z^$y4!4~#G&uJHDw{$h2Wnyqm9mh|RGP?nMZ{H2hT>^KK*WqQD(&KH)cvmtqgneOQk zkg6sGV|DB8&I?0qV4j>r%#+^57-3tTVwJ5SS7(aK!-Y7PDe;+wAE_JjYSy+@(qYGs z$JoyIp5=FUZCl`yZUYDBwX0MT}q@9xYjXFi!J$!X}x6JLvEGWMhle};c()i60* za<-nC@g)1;<9iIR3C$k1Gmm;I=xFKNmKA=myR8wSduvx;)5CjQY%66I=^=+E=iOpJ>kaY-4IrZ_I;Af3cXaP!53&62isKc-@mQY z*j~AExPRer_QIj<{%DSkcSgqGp~uWAb@iQA!u8JJ?+XhPC)K&QT5^=gMMk3aD=a*9 zQCx7%mL_6sHr|rdsp?M0UBc8kP`Z`ca|*BgT;Cj(ckAbj!HM}6w{r8BW@UF@O^a3x zY*68_k=#WRRG$dts`;mAdxb*JKc{?F%yw<)mdBYW&4)J@E8eayv$gTiT_4&?DSMmF zAfuuB`~hbfIuUkdj;5m6?wKE9?Sl=YH!57jqdPtmaeRK3SMd}IT^mg^M|cMEPhftK znhW*^Y50$vtOh>tbEOcnEZ60an_!elr)Gl(`Sip`x8r(E$K4J!eR<3W?%t ziE&tBLma6*_wDFAxWWao4O+RmM-Xj$xBVIWn_xwfR@AjAw6EEh_l*uGVtc3DF7L>H zv-c93qH}T`Ej!sBcg}8^t%`VxZ#mcWhb0+n;Aphj2{6Tko!n31v$UfmEgqCC^4Iv? zTyStG^y??jIh|gvkpFx<^?Q}8ky@6=R@i|6^!qRm7Sa27X*5)Z z;JjI!oDsnrUsGAn(udGbxYGJo4huLX=j&ggCp1{)uf$zi{~*A2Th^~GKuhUOI}HxE zWj_~o3X3(OmqW&kgoTem%0Z;EUuv90h~p)Fv(G1~0__Ly@k+55FXB|{mf4e;WG~f1 z7B|Ezhd-5oPwfJ&+#3p)YoQWgdoAfTKyQw<`EK;7W{m+e?oTUN#AKIxC<7vOpH)lD%8wHm!qrunB@diRriKk134aK((wVqf+b|NNkBvz$RNboJDr|A%;zYn;4sm9kxK zYcv_d(|ZHEC-4|{o16*@_B3)*&F_)-?#gM7NPdZzO4w+AMx8;l`XG4FcksK3!^ixS z+>Qq<^`+v$jd8Nx7sW%z*!O`C!V_l1|HEA~Ku+%ylU=(0*V-07J_yWHG~BvGlelaC ziuwbg_2Z84Y~o#ZO_Qx3qDW$o;bVr}=9+~{$>Cl#IQ>0gxDlegtA%~3C zN%2qv+j-j%LXbjd#|6%!h9elTxW$?_qgRc-zKM5N3{&~40}f`Jqq$?iTS`80hK3t~ zGXXpMs~S-X>CYXb-gKa@QX`hy(Vd-4F%2^TDoa=iL)xff*x`TqkQ|mVt zz$$*jhhID;KjXJ)x1cdPTheJHN)d6{H(l-`p`>h==4= z-K?yBUev{HStWOs1Qp0seC|Fwc&&#FVonR(Wh8&Rmfzd%=MMCNmK}XJ@$FEK-v3cS z!bg)>3yF)dg1kVKlxZ&j!gvpD5fg28dw9xOhH$av)D-LTvDflU8mJAJT# z1XJn*NIEZWsV-7^*T%HqG~kRD72mByRdAEL9B*5$b5|6o;rc!#+%jg zJeA|M@7E5$OIf>C2w7{~J>5)Xk<4>2RbN9*C@8e!nY%{{f*?+DIxi@c&bL^%(gmYi zjs0zbdNF#2!0iT!L*w%=F4!6m8{G>FIu{r{jM2+d>?Yc}NtOrqs{5{e&VR_iPB6DsM;{CP z5q+=*2BEOA9rMCmZ?4|GVY@f(QctnRsT;_2_t_iQ)gdypR-_P$L?PJCPW*VmBc1&b z{`w#nLfgYHMlwZIE*Lxx`DBmx4=KOPhj(IuQuI+zcZaN585@OD>58VF^ZIPGl=H?4 z+U@Hb!s&^hJF~a=-#-byq|;abOu5zqS+wQrWt6aJny8UO36Jro#VR^klQSpr)`m{FKsH$_7q=wW^vk>~eW79Kpdy^ILxzv*v za0>oTtNZt6Lu%A#c9K!T)gx|yVf`4O-~Tx6a=1I@_S4Od>64R<@ypLoJ88s-ne-ZT z?OGuzNqhMn`+hJMf*6auX zZ5|5+IIRs+y5~8k8G+R9}X#a=X@CXs=3=dA3s@evl8&;wVuz$C~RfTNh zV>pAu{5=m=whv0&*{j-34xN#904jZR?MPN zH2i~{OXkpP{8Mk3rv@NsT6wtEF!Sm)`cjRQGI3E0b}oNu`wX|YqhY=@0smlFp~sg*=sVXu%Qh z8gdZjz(KE5LdzJuvlusSs%Ur{A{j5DGa6q%D4liV=@+D(TM&@s8#_M_-A1o#c)RZ7 zU+*unz4b$={)*$8qiCOLf6&n&`1Fcu^(q{fy@wAcMLxa*0!=*s#H8JS%m^1jO8c^2 zO*wkfvK|sPciIB4F>mpkH6YU{k~X;Vc4xNKt)mSZnu)mWjZ!Z90OSgyGZ{Ovr8K9w zp8(zE?K+2&=h2Wkax!s@RBhWgl_klCW9u$5i@hslAioyFCT|BYwdY^5jT{!0ZuFTn zO-gojJKi$}>8iRUwsq0%PC{)TfJ-*b%{H`<*^wcw$0wQExRrnFg5KR%r zIps4gFf`(*`FzBZ_G*La4ahbeKdOJOBE5lGQ<^?yK++UCfCm_TP#lVnGuTSMq#KKQ zE$NEsPE}yc$mHmGbep+Wv!xvq5?X?co;%+QDQ3sV+fRwTn5P)iV!%~F65Kdom3n;^ z&DIjB1H{6Yxp_HA(HL~UmEz9REc$RMdRslBA#cMI1#p+~kcU&_xh)>(U$$>0?wT(@ zX+QpDWALd*>w?E4p$+lfZh!alV2G_pk*FiB)`byc!XuV0R<&OBpn5`JF0Lo^tWq$n zDsq;kc&q(*`cb`k#Eik!Lsm7EKj%nn*1#26RfqRb9PzHxg;14idWMKF`${%sWnaup zOgw;CyoPAL1sK*-h&8w#O|C8v_$OnmGRKHWN^qdC9hXf>^Xz}YbY3NzuJD?w+8Za*FR~`#uI%V3Eg4F07l1x? zNgSo*!YzX-`s>Wr_aMnr3|RT#?FZqtNc8Lb%W@11jGOL}!x^Z6sgvUdL;)V;mPs*j z{AK>j`6ovH!51>&N1XpM5bhj(JFDC?{%DK5ey+-RHkP{PoPa93{K?)HtUM}r_z!G- zPrWFV06avq{KEEJjZRgJHv}xsseGuJ9t&Kiv0Yxl>_Kl3J7cQlfG2%_uvYP_JX^=k zq8qE-Ee_R51YhPHF`S&r&tc=JDf5{3j`r2DEAcn{=h?PF zv1@yoeQ9defpeBHsAlkVnD+657@@Qar_BoxyXBr9)k-AF3k}4!ba&R_{p%hc;qPN; z?;u;+cU5@$^-&H-&PZuOkF{31|WClP<7CIk2SKp;IitmyeOCyzTPgDmb3>L>-FfhJlepX2DQ&_%##`ZSd zwP6q3-t*=67O&1^-u0vJILt^r-$8?E7P=hxj>p`0GpT0ayV-WM&X7ryVQFdU{UV1o zQ37O8E|kB5sNO;mIQloy&SkHjfWsIz$cogMJ^PRZfcv^<;K!W^4UeuCNSRzUG{TB3 z%U8yKd)Y|vv{hM;j^q$FS|s8N(eqkZ!Cp9`YyMuI1h(SvdVl5U-CPNH$nDdGEn=5c zGXNB?xovz(e&qW8d7y7_!yCr;2KdMLlxyJ_@v`u*24&1C_y{Zfw#e;Yd&Qw*Zw}O@ z^j*Czq6%&1)C(?C()KCe8|k2D+99Mr7*0Hfk=Zm;d2PtW84MdziiOIHh-=je0Y6gL zy2t!tjkY{sKzOovJeeTEhWx;dc@#Os3vO9OLP>`s++JcPYKSYJS?wj!pzt%ndtp7K zj1!E}r-)tj4>S45b{GCvoFWnk6VE+spoJM=(Jw?;LJ|2;#aY!{iM5SQg!FZ5-!UN~ zOUmPFZFI0C0Z8_vD?Tz1Wt`?0s*BD23dKqFsFGqDNAhh<&Vpypu-tw5S>1~ufOKoG z>rp!4l2Nv1Rn7&qR%hQ?tN}&FYs>r#{t2^(??9)1S*fBF-0{5re2zjg`VtKSD`>9g z)y!JB)Ava1^h@+PO2IPUMwXSaN24??dI{oBd^K1nsBItIlUxbwIve`rrhU^htt&dC zfrEkVlhvz60O-WG9<9mu!GyPZ)g018RSF)W^KjbNA$HvmMM@u;WWJ;ck#T{a>Nbhjd zWg|y6cp*)6H%175O4kLUg3_`Zk20QROwTIO$Q{Uk%-%wgkqkjXW|fHS9x0e?{x6M8 zgvjnkjI)VH_c`FRqb50n{Q7f7`5wV36`~Zm(!^YJFE2_4LS!`ZgjYqP7d{rM2d+%| zCsx_<_gp7RDAEvBtovo#Aaj(Dr$4Nzg{u->D1Sb(U2oXGYlK7PVKxZtdT<0&2wx7`TZ+F;1P3!=k zDaS_;i%-x_6lUz4Y^N4!Q4THk2y@zo!j`cQs`cQJj@-g@g7#1NT?yqh;)NPP=G^f` zB*C9=ll4#C59^#p<)2JalVzFBUtV*UsomYl@N?dNivyhs_Ur;%`dRL8yX@#xx_JQ4IC@mriUQgicXAcfdmb+4(6E2lq^Zc=0sK7S8eiKEEu zOLp;<7JzblO&7$S+ltyHS4#R6-J9}73%aaV&2&}-UWxB3TvZY4EY?vFJ(YdM%4=F( zouEmLFw3m{DuLBVt~Db7lv7J}+LWqpR^16?sbQI|*>4h+nbXKI+Gg|yS9#Gv+5JjS zAf2R{_2oBJqyv4doYerw3>mxENp$TE(`><5#}$CrmL_Rs=tT_Ah7b3IZO)v@=^(Mg zW^vI&j%N~{1FB<3>0hT{77FDg55J}&B-H#&R;wrc5g>(bOl8?w0@Xx7O*kNt>B;|~^`+nD@?R}Y@XI+2=|-%-$5e=540by?BO-`(5$HHjtwlWPj8a>EaobohESO|UG$#XQ^+2u62v4wU)ATTaG5k6*Qu!} zl%W$9kYU|JdkDw_OkYU)nk0h22pY=~Abhr*Wsu<}ISzR0KAZQmNr=$!5e2roId&sH zPNE~L(RW{&ndQ`rP~TJz#P*U6I!U*|Q5$%Je1px3_QHe`1Dx{%VYGTy`&UN|nj?g~ z$^^FDEk?(qD#ObX9vYabA3>hEfS{sYEWa<+JC%wBZg#ot;XP=>E7WhCwBD5|sBT$} z293(Rv+*|=9z*~rpkZzcJ*&OMZqNoY%6dhCsM<2K*3a|NBE)7~_qTXLEEfE#=tJ-N zUdQ@X{#J;NiQ-5Ra~_U$>RqPP5ZQcnC;=JRqL52^jIs-60-4Y}&i}&$K(j6AvEA`& zuleo^m0|<@SLVF1xVFSZJzTwSkWyC&IG2;Z*eDp-JLJZ`dOmMM{6QdCE1(&dBgbBdQ0z}$7jto zLl0*a!VN2xX6na6nimSaPf+kzKSk0y4HacKioQqJ97VbtIgl=_8t8p|x5BSHKeu)Hs?q8|x`o$`4B>vIdW+cQ&-U}d-_2IgP1m>aX z$x6eYv|gph3!ZnITuJa`9@f!;@Z-YCG*LP^(GoN2_fWA&Wgq^IGfJVUJ*r{$9b|tw zW`km_zEsx4ORfwA?NR4SO=l*HDW^yGSc}D&wQqmvc9Y$!A_4mY6Z4|vt5Ie1i8cMb zoZC4?R8|lmxSHL~Dub(@v-w5|*Di+CGC#ojBZ2r6>qQzU4?7*MEbqW9&bT;I>3I@T z$R)1xNchyDO%vmE>_N$P2f!Tg6Bn|>ACAN@W76V8>h{isFz-*iU%#HmFGQo>@bR1Z zDnVp*z8LEW#6)G6Tt6ne(72iarFSuHJ&>jT1b*Oj)Q{l33uqUI=z#SsA>reE@KDhSf3Y7asSC%`7-@Qp5~Xlc^$t;Am~QI8>A|>{42pvme`1*X4bYc@ zuTh>X88X}Kr1NrFS+I(%sm3wMwkRQ`AR94;{tPW~Jfoio{cXQ3@z&4cZAE-uw97TP z+a&)h(vxm~u2l~kpv$@CfeEvHhU@vh=^lt()c{!~jp%ZN`cOLIi$}CR`|PS<*|8O&>iBO%T1~2! z`3(f7;Bp43YH-*K$o*B45%1hw65|;YyyWgso7~^NNqRDfd1`{85 zeYeQ!nMt*J-vodcd4Jw>b{y?%xY~8rkrA^FUm`qtsK3Cbch*CC4*dgz^!PfWI^yd< zR37z;{$|S72w`dVPc>Dd{?$%i_6Slva<*L;tg?0*T=uDfk`FQZC^_vkwNXm7WJu&A z9gP7gl2h6_uX*ZjwfpijlN<`I`i{noKWO995GSKWe%fj)d?g zwkvw{y@$dIGm>@%YaX>v+Gpsgw@wQ_qofb(ad0{8!Pmy=Q2lyW$Eb2a>ja;b;8pw@ z%Y_UXTI#PO{=Kzz0^hK>r#e!6UWjp~edSAAWEgg#QAURi)qU4C3)xTy^tj&&T*hP) z^Aj(h+S%j$X@|XmN@n$qC0w7@s0DpIOCJHk5sF9&va_wiyVKAvCKW))<4yl&Vh>U*OIZLXpualj zq`D`iDs8T+ku$oFzHbt&Mm|{GE=tg<*MlqeyBg7huXj`YATt;nGQ{jqqOc^iSurt* zc49>|y>(zv&63g^s_+?nWpbVLYP6x|vwY=~Qkc$x6LYSSls2kIM0Owfxx$B9H#Txl zD{zv%Mm;#7H|6VGO@f7hO@dB88J z8s68Nev<5-F!*5!j-L<0?NcAUSmv>gunK^XB>GI<@u*Nl*^eCqRYC66#PCDr;2l3` zrI0%FwB@KBaD<4p>HxFfyezVD4OyLEv~5R1tQ%20P7reBMpAF>4kJTZE{N~gb4tl~ z1~n<&1k&CJcC@_PRJAcvwHzlscrKZk5_gScF!0K|+$S z4hm$u==DP=yLQe|4i}+221yrE3RYwH*61$pAhpBeJfC>we*rST&6UJ8Hy0G^NM^ju zXr&(i9ACB=>mC;(`GUKk=Ppj9-Xkb7zF;3Ns#f>j>{X@vKCz{^k&^ps&|uG@pg3fi zcqM}<9h;1aP_@yK|8&QBu`)c-GZg2BKwg~-QK3+DxZ##@L z97u-(cBrJ5Oy#=+P6kptl2SI4cA0c??XyF84D=~H4{lt(S*qhQ)NN6Nec-!HBPJnu zm6AmMi8(^zSc0bT>`S}sJNTJX%@q$3#@s>s##XV@@rLg|mcWY{vC87>tBe`zI~V$94Bag?%X-rr=g@SH9NFr}h-~t-8Y`0%y(uT>Ayc8=yI%X7{-p)z*yfdV1QDT@vm0k3XU6(R|1W zro0A(e*+@-@Rc0Ct}oL(l}^(-_Y&8%g_P|ynru<_vcR_&a(g$i$~bcb3F|iw%)0rh z`H-OKdJVZq1nM;pU;Z;amDfrEG64|#?qruK9e(^ok*%-wibc-q?;-t|{6&N>=9?4S zMW&q_tb$;Rh18}cM67OT&+!YEEEGa~FR*+Xop1ML$PR-1x?97g+R8jz>byqNlq0V7 zGagAEvHHlnpashE@Sn;^dbxl|v$20>HnlF_<%iSC_tWX{!bIflc$}RK!nW+F-`M!9 zvHydtH>r@*zAGvJh;G;@xZ=R|zGsiNX3e}nt%PaK znRcx!`=)s(mQ<xyT&}Za4Dgm!>$>26H zm7II&5Glx9Z(Nk`(4OgtA@WBO{}2iP>Lz>Nc3FrAH0dpNz8@qM_FjX4Ek~t-S6_;k zArhF-&COPflaG-KzRQvPF8 zGiT1}U(okp&*1#L#{W?fa<9J%#*6Vuuq6*mw ze5i~<^@~%M+5-2XFme-@HbeJhfPa` zhqY$1_5Ujk@-yRbwFG!_Mo@pH-36i6=0OI1F-7$GrDIsLsosGHls4brog6kxhqTLe zsINJD*_c1V`oW^pp~#_Tk|o7CZehkJ2P(;w2*!7Y2LVhxky&JDP~E9!gPezTw>vgE zop;S)qk$o`$Mgp`d5|5PA|)3U#-Njyc(Sj(;u8juJ|=+1E_K{Sh3+qw8($&JiiGQ^ zwjaJI-dy8%KI{?e+T5$G(L!knu+j?t4di$HI$hn$bx-dGM0hTJ+Oy!fAfQ*{L17V1 z+$F%IYMRASbShVg?z4&HTCK&K3Ov4bWQyy$QgfvqDW)>IK{MoP z)4m`;O-M&K7Y-oBh!yf0E`=_$J0~L=B;Q<9m|0KNzJ&qt+v2+xo$W~dD|Za<(=Q;b z{K}{O`q{1Pyq}C8?kMN704gP1p|gtB!`pqKh(-!bwUF|k5utCV2Kc$^(RgHk-7qMQ!)hfLWPHfeV?3pCX)o_ zEkwN3tRTC#j9?r5i@-Y-{(GK18htEi!Fo(J2M9e>iU9;xQOS{Ql0mZCJNd< zm8n{E>hl|eohiP3vyTICV)W_`lrP(kePxtc`>d6rn@pKbuo~~CnH6L{y~-B{klFG{ z%jMkpT3K)&)mdd%Qee9e@J5Xv{POz=_bt}! zkVDi~!d(x^$%5B5<=MBesbCOBCsQ6jH#pUCv%P8jr{FsaI>!HT$~%r9CjK85{7t!= zRNp~wU<*H?n=b0f}lc|0sYoWow-cs z%FI5Sn!+{phnw?1-TWGpCu7cU`YXR8PXCll8 zobGAA8ecs z7MuWB*6$Jmbv`$0@i5K>>6NiFYXymDwL^HJkh>x)GZ~FdULQwOf*?baW6a?4j%BD8Nq zIt&Mz13CPZpd*1$eiM89J|L@D!A}`pG*h+3Cgc8TIp464R-<97UG>jjU!Af_d2!WB zdU%l!@n(ONZ2(D+Km)x{7J%*6+yBbR-$eYi(;q-+p?U8g0l-_dkS!#BYo~=sgR>Am z>cg4E(QN`xmq?(>Aog|Uv`2C%@tY(+SSzPP^paHpX=yB^QlS_oQf}i>;Tf_>5Z$LO z@@_a?!MxuL2bg}#dvzN+gCT+dJWx`Ip4r5{Zm=^(h zCSf!6x%2jjLV?1p{(Z4(CPEG&Yp#n}iMv)!oTby8&PlE2&Xnz)FMbwUBBkC4bjw&k za|LOJDr^JVs+|wPdH-)g0MhjTIfUvRi*s9Qjqy$@(*vegE%26ms9ztvdV#&Roh9~V zHu}li5azcMG1Ll~R?|>H0sXx$fmY4_tRQ+1FS(%ir<4EsxQupPz%NgPaF4iW*7_MG{=Hi5!w*aC~-`4^JGx)D_?YFY(Qg8IwZY@~d2#w2fLYihd zwg~_-1P-pzVJ((;7~B+=R~W~0E_3lY6xpcm_5QRTyQAo-#@I-q`2;qGpRuRbxoS8m za<_vi=^OX0A%ZtU%gasP)Q9bs5kroIT%DetYn+LxXRc6dm#~2-47X3Z5tvyb2x_jvr8XNYWhk>TN?1YfZ zzxnk=Y#OS37Dt*A&+S{PP|BV-AjkMRgrW2LW&uDA3y1vfwQ$ust+v&`R!}`-l#OmL+F{&IwAQ-Mj0`;&rtpx(o;Tu^n+s z*rIv25rp2qt(qmMVHc;Px2T>Yh6{~`{EtI*9w5<8kuwik5Nim05%RKJ-ge!=teba# zfy#n<8x>Z&?4@r>VyI*x#TEdv5k+}qCfC4qK18cvAnCab0Snq5nTGmNKQz!B+5j$D0Qi(PYSxbk^|)CqprBcwhz>SaRY*;Yx#V?$h!ii zJa#H7Vf*JQ_WrXk`q#@;3_Z5rDiqb|1!*;KQAD1$%R#eL^5`{b!ml$gPD$`l2T+1Z zk0RrI^Fd+`vt0WJz=gF@UoOFJEFYdEjM-R?Ubq8cF}v+N=-TiPtT(6v4FuE|QXU!c zAIjiQXH3?=8%3D*?AXJG7gMpNvdAhq!Yj<^$@~78*3 zW*Nuj^4=V7ylJeGPyBK*{vNs0V@!Tg#XeW)@9`W@!!XN=swqZ?HX!!>4kzeIdyUm| z8FNKgI*nC~E8VjwKNdMDvc|g^Km308M1n-^)GcSe9KPV+%V0s7bTT~kZSKUub z;U%i?FOAI$UG*@suQ&NzB^|3yWAsS9g2*&p1gzh=t7U{>pQHhkIiyd{7=y`2kHEQ} z;KXPjLG>P0q+UPZWX%6BLo~&{LSimuS1CuV#W4ZCqh%ZQ^v1vhoCs!FUab`Rk3I3EixAF5@o>+#W6!a(ya`OJ~^x8ytC2Fw05rLd(lWD2n#K$1!B06^Qlt z9N!Z&&!VUCzVw`(tdM4hU|F_thvKvJ$t6{zO}!J!m&>8h;t^nZ9x>7m{B+z#qFX#k z*ects5~V`w7RY{9l9~{BTyzw`>~KyKbMT;f$h8#lblMXqpT|I_W&-0i%aC*tUY1UY zRL_%3n^~^MwpJ3J&G8iF-gf!b8%{iAS;gZo>F_a8v7rRS!~vfi|3^hL)h8r&6(01X zJLXX${xVEzRS*~Cp9MwUk7?nA@v~no%LOkmKQaG_>On{HO~SJBH@s~Kt`0ujfWoAA zPqV}b;-fsjh*UEP4KVGGeNp`yxka9sZ*E|3|Lo}pT?KPr!H0Tx+7}%A-R#2JL~3h! zAg~kA%V8pteYX%PIzS?((W`U`Vodu(Itj7woU)Lu4L&t>;5g_!Uj0A@G~15te7U~- zBzwo432-$0XK;BUx}aq!wC&MO#_m;Tj3I(xw_Lic7c{9G-e?lm>_9q%L3U}Gcl+bc z`2^eGFXiTMN{UZ7k{`--t(vRYVOOU5ls2;L(DldQm}9Xh$6^9wo6LWNrk+jEMlNf8 zJL)Dh$!xp3fFtPx%`x8!c0`qtmG@|8o6lGvok@Q6Q7b?K3?Z+k1QA};_<%@nbru?;Z*YemvyLs~~W%}nJ3*LJI35zlV0L2J54P$>?b z8%L6BGgSs7D~cZ`Ef_c1L=O}hweehgeLV?aIvFln+I!(qhHGFoe)~3G)x#|9tjc)H zF@5o&r!`qEbYeKUxH>U`0>&i!Ebbzd(u^g=tRC)`me#I&u4g=3^sLc3&^+)|FFkp% zusbT$;z@hQe5Z%`l#cEYE|g1yBo{3(Q^uvyVyZHHphBcuV9tcN`-rGzj8?lcqFG>< zI{rk37isK_wDTycpm*rd6>SB7+fSU9BFG4LVfM3KNb6$q%*NDHOnoDcZX7=t= zIG|*jrQlN&rG5PBbQxRlLzD09jx1vDy7Sf3oG;Ik>Mf6VoA*093$F0*o`ag1>!2_t zUwk`{IIK!9G_vG$v?%FWAVz|ES!6DfL?!`xGdPq`yYyjM(a&0WdRHe>rUsPswN-Mv2;$CVmvWr~YS$ClB+S zScDx_XRF49r2J!FSV+Zg5q>ykhQFzybhY>ex$SxF5Y&DQU&&KACj#i3lp6>e^Q_Gt z@F(-DZoAst_%>25b}jmOBj$UOTGYsp?re>BFX*s>eCo{IrAPzGnBu4l24xns}9|IiVUr7)8%VkvJAVZeqDB<-N!0J zIgWyg!LB0QR1_C^l1A7|*ci=6hi#A)AFhuf_i(BHTy)|cr|t{Mt+@32cVQA#ADxy? zBMv;Oo5tP)=y^mAdQ8_9XX<0Obg(eWX39OVqrS`d?M^D67hkd9JLJF=#PRO$|tU^j-Wtq)UbH z&vAnp+%VAVng=?~QSP3?C`(Q=w}6Ke>8Yl|qqAOM;!*|C!7P~^>U54y{nrNz^?*>D0#{G`CXDw3 zcn48oUh@TEui6NhPzZ|mZ4CG+A@Eh!M43K6`QhSW(X{|F56kyAV`}EL^X8T*-z?EZ zDtHOMf)PfXUa^CTng+o<9#Ub8c^&h94wN&l6iJr&U-TD_{QzH(JL$yp=kx3Et&o&H zMmpixNVqq>RFVFS-e$3UMAGrj7DG;L?c4n?=!csEUluwq)8HBxb_C?yKcJtkSLE>~ zLsqENC0X7}I1LRJj?BZ2B8}LYS}ra0!2~AmrBWEu+w+EF}= zwSE!i(`BkDt(@1BK(inPpr89zTPEh|bGUZQ+u_9SMpOrD0i%yY(f1@Cl}=13G;UJv z22P7B33x{W`DO}jljXdG=YbqDHK@mMscs^C_L5yI>|a=50Y06D-+b%utp@lsuO4e7 zK9w+)KG0xiA@nmIu?#GfhWTX8es}M;4+=5QgI6mUM(lRO42iaP7bPY~+Vmf<3howh z+kGuk4CJ%ieg3Wca5`q59hh81IUHk zW7j2=lVzVcwXOyPuU0XPlzfADpo13e+ukan!(04Cdlg@zBn|?(zb}koK0A!@+{>BJ z)eR*=m!w0LzSvpdAokT_@MeB`unY|4JF>7fevGg-!U8~$%}YGKe+KsFLf8e_yWQr& zc)!<>T@z^bVeASpp7%v~2PetUG)5vVYz#b$SAGJnUnPgW#@we1AR{5Qou*xLl^(o{ zu$4o{!ozb1j^7nBR#W$!(ebE)1Yr4=Hs3!7X1Ey$TqGbJKn-I#fCb(d6(jt^G=DEl z6XD-zIQ(z?;rUo`;ieutWD0rk*t22%o?rl*vDClLGE&ih@_JXc@oz%PD_0v=SkRo8Z2&KevpC)@WWnHhHbk&jA*>+H6962rgO6+1rr*)}<_|agxeyMAf4jRt8u9y= z*iZ07l2r{N61;^$#!k)d+t)akqY_?zAJCG=J&E2%{kSp{#yzjrVKdUgZZIOz_XwE&z+Z5Px&hTMDF!Jl<9Gl*9Gfg1o&L zPuv_bL1L5E-Qc-5_EwP_t3-{T(z@-gx+&8N8^ohH`i7@QZXhCy9O2ln?_`l{UsyEK z^oBnR^Lu;z*|s3resiuJtYY}Xi(waF7#FEQ4q@`A;58w_+&BCdBaGfO7OqdQVgqA) z69ID;V~iNV)19>N!HXglr~mg{y~#kN&%{b4Oa9&qe+4S+ryO`+l~MprkR`mqV!Lq( zhI~~KuAemX1j3qq2Eo-P&(i7x*LUGf$#G_~|02P6K#aDTjJAgVUS=wEATW>VO9l`J z26!kvW7iv(?BhKRMrp}c5!T(z(RhuJ17TMlkE&OF+O2(L_>eeBJi$IT94tPP9 zt&{4%d`%Pi+HLjLC%?ZIiwpn!$TZ;sGWuk%pp1HvSYi~4NEUHQRS|gaINa_<1>&r; zjOhs+3aA{1Yk3ewW*)yu4^RHyI#f4dKNk`G{pF|7%0$F&&{-JmbM|-a7_v&W4>w++ z-s6Q=U1NlG>uPvI1lJAJV|pHB8fWNWkDLL1w(n|JqwH5-x~(b^TZ`i4`Q;IcdI~$Tm9=ZdHl|l<7BF#}YT!Kw zZmB5nbEIVLe)%R$7>4n8^vJ}7RYCk|{p;6-#ewzNK4NrJU6q2lNulsY!Sf_UYn|@D zWKF6V2#zzfe()lyMwFF4`yqa1`ai?|bJ1x4kDq)#RlW0|1pQ3uT2Fe)WZ0CO9>BTFJ^Bp{L=Io zNFh#oixl-D7D)>cCpJ^jP=&(dY;# z{Uix@7!2=&&v%~ROMT2+3Ijt<7NsK%SqQ||YdC+$6?Fkuqu<4r7N;Go6!^{;RQOJ1 zbo%3C-s{MBa%LGX3diyz-#KbI{QXWUqNFM48vp+CuY?(+g+&g*fWbVyJQlYzv884N zn*@3G_afQU=v7B&{ELFBeFCeNh4Yt+42Tu~*xVF;Db#>B)MMMYpkRYTVRs`!Y5#+=e2|DTrCVe)8a*M`kRNYhRupMy`RwmkUtj^CRDS(pE1z&}MP$zJpahcd+( z4Otg2;S5y%$32WLeRQ4N@SO%tQbe6;BBqp{G z2mJSAu{^;1ZMKetFrXjI;r$Y`mD^J7G{t=eaDjTAr@@_OM5dQM{FFHrxJ=}H1{3`A zb)TRNBV?>cEc{vxlxpoF&cBrU%WkQNR;2iQClN7LP|~Rpt;p&sMq{Y|um!aW6%Cq31pAQzi^n06udU zP-g}Gh`5XjIjYiL!nTN6Jg6NEDhx4cPyDr8|GW||0$|Kqr~iIj2?>H6?+Jomn%)3u z8c1*RqF$r|(SjMv^9YE-~BBet-0M+>M$0zOJ*M z=Q-!PdDr)zVf}_u(M(`7zlo_bc%J!pM|;xU3j1JCx;Yn8V?9@;%+yw7e^GGQ*4b0|wa>hD2)=C+l|0P53c8?qJly&aerPR2gwKkWe+MRkVxdkK1= z>G`H-x{+>|<|niz?jl1Vy^2-F(CSlwqFD4lIF6J`g+^S|zpUUTGu*8m^e4PN?+GG+ zC#JA`?T;Aaqrau2avhTC=Rb_hE^q|%KHs&f^ns?SR)xlxbSmNdBwH+h2)WBy({=+K z!1I8@knJdL>#jhFT);H_u}cpR|T~ zwC#67X6-AJ@X3y5`BEd*u!qOc;%FE~+n5V>o|n$sq9_SZ>L1d~q;Q{^n?NKi9hGHn zV-C@T2-2Ur0iM0)V0J0&c<(x_M#a$a8};1)VS!9;KgpIx4*|5#t5G?DqsxWT1zM^+0b;ZQLd{CeU1F@ zwYsrDvyl%P&RXx<;n|8*u#SzwYLJgVJB=If$84!6j?@0M;BjaHS&)asiIT-<)jMvF z$%|?F)m=~S;hwtp9;3~90BIkF4i={2)Kg5&x~D-h{1fg0N}rEYr&SFETaN~tUb=MP z10iN-U^<^{?+~UHb?a@Q7)rjV_wguBq#E}7et*%Ol6M-vx#P(nqD7g%8iV^F27IMj zNRJ7h<9eySz)5ZFJMF(Q$==4~QrpIxIQbc~om7dtv6}HLn3$Ii%1rQOqQEmA)xFS~ z`NTedjr@NE6gN3iS@tl^MPp4_H5r5!guPC=c|ECkBLdlhZ-vF<7Z}LyGDfOCM4|MhQZlWX`ebv z2tl!PpUxxeETQ*q2HDGPJM@CYO5}b{uz1=VgO4t~bst}RJ5ZgiEh4IzfDv$7tg=wWpmgCRs>|UM;NeRx0%5nwYMb)x%me}^YUYD&Dr4S!r1M1IC zhag{Oin68Eh+@Fq%*Z&Yiu;<*KQxpVdGyOL2uUu{_$rWjqPqsWy?Ok*9|ys0tfJRb zLkP^y2e*rk35^HQLZ+JQpm8Ijg{U*5#lEW2^{)h9?>;UaLfDbuho}{>2@glCAuewC zeI$fMJ)yLOZIRhaxDfsqRC2@PtT{UDeT?as8^7;c`y|CXX}oXm^Y0N3Q813c*uXkI-M`IF|)s=Wx4}s@JcMln&n$Dy3sUE$eTy^2a=n-Q^opqJYYLP zosB*kh7*QzG)F{|0S! zUt*$f8X4y(-~LQ6E3gT!tY}Z8G`p+AkPX!YsL>;ixM8}c)XhT9AT3;#sGmR}x+%8Z zdAaBAr}e%&xS)P8QrfwQRS`Y|gn#0b1=SWJG4`IqC2c!z!MqvRy%lbrlK|{ao6sKy zxJc0<f+ zbxN5*vIJwL$aKBXgddo|?GFk+*7-_pu}1?oX0$&}%bCP_oHVG( z+ZET!?|EI%QP^3lgv)#O@9o=m!bWHVnGj6!6VbFE$ZyagI-JD~b53;&rd zrM(vo2-ZSaX}mM=)13IbFv@bKos`V&b}Uoq672Ja==L^7lKMf9Xc5F|k~}8QsaKWq zH*kiV?1m};hTD@WZp6s@HSPrZV#Yh_l$Te|*q;Vy4I@Ww*z@Dz3_BcA_B{5h^dgMD z1dJB(G#1(gt0pKvcI#@F_*bD?D<79$hyzEk3ERG0&FDo0{j!Q^b1mP?4As6Vy6imAh$2_l*ZZ6AKJ29YnY!r=c) zN<|LLeR7cI>B9&^$0w#0%jA&qjxhvDn(t`#Nw4!3!rB6Z%lLky8sw$38AtmoJDt@K zc=ZH4NQtbx9$a%fV5{r~tNeeR=oJ}D^)bRRO>HMs=z^(2T z0PBxkvAVRo(Pzz7-ij5USRY_kKw#_t>BCDTVANg~Tc)Z^b zbSqGuKXG{E;+L5);hnT|047Pm|1NC7vr$FRU#G&Z#sp8rD1X~(HEd5a3Ibt(&wv1H_xP}Q zagB2lE8Yuyc!k<}QWc04@==Cr%{>M^tx!58g(m&XLk*ALie@wO{Id5;* zYR3Fzx``^exip=Pwl}uPtl#N#`(cZ7xzZ4b+=^xNxi8*)GlUQ^gAI7Aw*xJ(nkt~H z*mi_jNA$qe8v;x({48n(f(P{18-i?KwOFa?4=m85 zdwq>rb)-jSQOWuO@*Ix%M`=P725Q*W z25Bq~=OCW^jpS+;=UP=tYc1qD1agDDMhj1@xKv)&qZy-yMe zBG#D+QYF~u*$_%t?Ik%7s>=3BFt;)C4m|;t@qO(dGiO;&$#Pe2?(~)rbL(0qI{9Lf zfwlAm`g+mcWy>laD6u+W@HCw*J{`l}02%Gr09&4obP;59tCk?$@zlqY4>I4#S8@No zSUpt*s2o$Zd4McYJ7X~x2P*()+3i<3Ap2g0{xVb2@5kFP-1<~y94nvtvNIR-NDiO5 z^V;h|5|j_mWSHQIOo2 zq;I$fa<&QKszfo{w0irI3XyN7kG8k@*o!|adwV<)mCPQ184>kJxs4mY$;t>UX6)Vi zbQZsCJ__6zYx7h?7F>SWNC&YNI7D|&r`@NsrV6Fx$C4Avds<~lPa!{U8P#P}@}Hn3 z1a^caVB~0?>h$vZN8S2WU!40<6ux_Mry|=kmg)UT_t;PJU^1L#!_W;b0b(ao(j|m? z8-%4ZoR`1)+_@FDA^Ikxx941F`asfzvmm>bpOz;7_C+2{O@?@g)QCN=YweWRy`0~~ z2@ohnbrfXZxK^REtfE+8`F#c!W!=$&Z7)O{PO2S?? z1+7iwNv}U?X)Z5mX~sVgq9`_Rt0WTl0rcTk|9vy@|L_e~0guV(8Hl&Gu0FrR|Ceck z$tcZQLOE|6wc*i?xrGM-^NK@Mx$Bmf zF|YlZ8F#1!|1Y;YmG-fx*?8~$%c!K8K;D(aLXj$+I+ZaJ%y9E2is*T^DW>vrO*^#r z_9&#_uI$SzSj2fKq9VYu~BmtP_yaAOB|gHNcX z_a5wXTI=g+?61c>A?AY_qA6{&}?*^`oT&~W=l(%{vJe* zz0Yq?>^DNLJe(Q!-eIS^0`8U*k`dlvyUpg1E5S0o<5isSHHf1c6NO$wyNixXOGNNg`xM@FX@72Jtq8% z*;#T;7?veL?Mm(im|aZKC9GRz>#>=Pv^-^r*JYRNUqEtOL@3(X#@BM@N`*@4(P+}u z-pJe_D~%}&GwS z;=Wa6BObBEj_WriKMh!fKI?Y|KpeX{8GnVOx!4+7mthZ#iL;Oyd=!hp4POXr?$0eO zgA~g0y73V~&8L_RKttyuX%V0yFZjLIV2zfOATQ;#qnvSZ(|G7xib6~^vbrumeJ%C{ zo&BGJ(6>GLFV<|5J1RmcB(tjV4l49M4?=|IR`_mb!?JLMOW(%4p?T0Vsk}DPq{cFN zC7!m{2I!#*^w81?0LjAb)@4>TBJ}rU@io|$_B}r22g0+B#<1s$kt3cbImwObxQ0+fVOCI!J3z&Mq@BU*CMWQCE45}gA$223BS}7eP-wO1YQ=mI=Jvzb zGZ+zo^zLtDF&-(8<16PHxvlbsRs}i{_!+M2l<%`;hKdR`71z|~%{zk50Hy}ye}3C; zDE5-8+--~!&4YB|qIG!buGl0b91C2~U%))nHaGR+%J2PwlV&kTXtJtOMJh9g28_1$!O?QgI)zWJY*+8m8YNqw06Uv3>;t@WZ0f z00`3K=H#;G{ge9oUH-L6_>n~a;4eA{auy5qpe_TrIfwgmy*a*L(!@k=ZCblef{OYK zGYhAQyukUX%9oRsS;h%;i681{n7I`Nu*9Ux?ovn(Sp=iX?$2Sq2aq>f@*|vv-bs zjEWgw)M>7TJSBKLgJ0$Cr^LpOKC%(J zuQcp9y1RiJaHmBynHJKL^(@n=?Y*@cMqeVn%zT%l8Tg?Wvsfd`N)SkK^IY~hikwp9 zw$bGSz@{%t$^n+9D2!#eui^O+|DXq>7&~5e6q<>s>riH!ks&41e=~Tzuh-skT#pCB zGr0z-$ro1AU}Eg$tFEDYa$5nmezRg91IQAVikB{7-ORu*sr{Z(>0Je(tfJeFE~X}m zS7259taQ2%+X<5Oe&c#;enebcBvo1Oc|eui>7MSOsgN|d%#8gku>n;od+|ReSN^UvipW;8d z!*kDT?=g^HY&}H=u%6@2tOR72uq4bn>P-bbZkHY&6-#NsseO>eHB<4@#;IHlfj9DG zOUCHStf7D5^;&TZLKrn1tGT>@#>7C*-2r*1f^FdT5L+g8 z)^)`9CsxJ1nyfuJee1P>M1|z-%N6A+mIZOE*R#lzP>z7^YiHJevaNKALng_QVbriN zun`ar>@2J=ti?T+rax+B-d*{sZUysp4EGM~kI&(-tB2{L*JJe#m?TR;uJ*L})Vvmr zIm>~mgvj|@8dd2Wl-EE_)#_()OLNps*=yTr#v(Qa?g+p2ExDfqnpQt7zbWB-8{S^i!lnYa0kU7Q)X_X=R! zt)eBWO}P4~K6!Rkjc4^>k9T+Ot~rd~B)XW%!LCM)XzL5EQt%EE zRV9CMTlOcK%@>k-IygZ%H!|S9Rw#Xbb!FVAUZ^;5mr&(?8L=`=5>k?E2kM?dv*rIn2*{}2P;Qax#i8_6p+C~#xBnN*M<+R7jzrr3 zdU1zp^)nT28>d^b9PdxUOGc1ngZ|zy^_!f*|FEzpF|a z4CQIHk|&=xwR3bxrW~m8aWSqa|920A^xv*$ea?GO4T0(_#q)`7;ELIJJ+<*MUt=C$ zMA$t|F2~8f(QL=bZ0o@vGI}%9Q{mpvLJ6@m_Vub#@JPP>2Fb}hjw-cV^43Khx{ANL z5jCh?hXyr7DH~?l?)-_B!_v?kcX71)p(@{85g@Y9CYKhtar46;=n zSCl=_rO|j*rOmuZ_dP~;4FE(0_-Ss3?VHZW8YtP1m-xG7Ix};LwPs+KM_n!X(AL$( zWFD?jj749C-u$S~_(!?DwOXEzyuIozWp6D3!jk3uAob(!&{$}W3&9U$q_5u7o+4T& zlx|n^rXp&M(a{LH*7ObcI0^$<{WuB_`7T@e^(=e_hwJ2cN4}LQh#taoKiKWsVFQ-8lFQM^E+V=~WS z+`Vp1{&1JgrIZp&a)%0qwL1ejygZzaH@8`Uj{P#8?vQJIu3_@XW}t;b^)=3@&o&&D zrq|2r=*C7G-6%7}T#L;x>TfM8GU~_JJ>gM$!RJ*JsJ{)(VFRMBgW2!c8;$l z^=!@gCHd+Gdg?j%*V|SJHR?>8b8}8jyX*D1`zzd^x-^1!O*Dw<|^^^JaF7@N#^^d*x>vO86;*4@P-MxXBh`T^_!oVUd!%*T^RP&MUcD%x! zh_yy?-&TgSUg%_yu-C5j)sOub8iY3*8<%VyYn_>xF*dRZxADVlytaAzgrybR^k&ZE z1}gsqJc%z8QLB9~vN_q$qAKSQ%Pa)Vcm&6K+^(Bh!9Dc#_Atxwt1)iAH*F`vSbA8R zl5lrrm<&u!-SK$*`Hwd)n_F4Q$jD@yWe*JvWolW~GD(eoqF?p=6!%#2R76C|x!`df z`t-iScKz!=XSDXQLf6Z}a1u7u@D9>D-W@k6L<4ZB*ABy#X89r&UyI+%b+s8@B^U(k z3fgm4SoP$KQ!fKljz;7z)9V^km-u*K(q}UHIE^kZgQ1*}3{Kc`dh@hmzkz(PWQKUV ze_7x9n|z$+eg}-zU)!{JM_tN&YTcnx&-w~F^Y5;t&w8>=hBeV=t%x?ZDzdZJiVOQPTpdGkz*F+VU+ulhz#UMBjBv6K5-B_SWuEpPOISlpX6xcT>30+iZW^s=?7A ztLYK5+=od`UFntuP8YOoeqR?Kpr2u^uN}PJX*2B4YrDC1$IOJqGv;jJjaNqH3?8h^ z^5pOi^>^GXn)br-xbY=km$?Rcvf&1gd=LTr)D%L*l7NX0=m=2`MTU>joFl=Hfe=Rk zv>Ae}XwG4{uk9(-QEi0DHLJP$Ii!5Uf;eYZ z5~4u`e0;TE5(-5mlYe8!^=MqjbAFA+Pb;}x^!*(Us9Jahe6 znpfhb)l!iWXNuhor|mWw2?q|+d^qjP%B*?)NR3%GN4CHLQPK02`EkSb@1+=2$-}04N%cY_PjQ9Tjk*u&)Y^5n;$mv&(vanSeZH)pG>h0l9(PMnCq0d$Ym8#cY;p% zKX|C*>3GmSyR_;7-G@!1g2~16Lr$_%?p+P>@QH>)UKE?zdU}(&L*pafw+RUc$H&JT zi{2c~A^%(*TDGgUTE8HNtFlmmza2lkRqy^)g#%BvUlY4*_%%3C-gSS0p>s^Vki-?M zSXWWwwz7b}&xP(^{T#*F1&6o}RYrPF5B&K2ZfK3|+l;G2_Mb{@w{t)!x|q;hMeU%o zLtP|^S@rB#!?7b3_jK#i9L#!BN3xF6OKfjbe=70@q08_sZaXkCl^u^Zlhc4pa=7qt z{!M$%uYaL)%Z6mh7}!}^A7imt>;7C`y{0TzFXjnC8FkTx{Eb1wlN#i)+uM?E{LV}4 zjQ+Np{?6JNz-QA(oztE8HRAV@z5e{xxY-q|QnmV8X-^jPOrGAO5r6G#%F2~1^+vjD zqbxege}25FKR7bd8gjssOlYz=&t9lO%9(Gd|D9Y&M8rG9h^)1v6Zq@<@4sp@m!R!m*+TM4}$S#nuAJiO$3pAES$Zir)*F)}_#%(9zME?Bkk=diZJ2 zdg3=RbYOEeZg)Q=|M266mlAfCnvPRLUNhVMw>Ko&jdcG^vANk<^Kt+9#Kg_B&W{%L zaG>|%P_k^9g}2Bn!MJ3<}~K>L*(c-c-5&hjgpQfN80_ zNQRJmTDc{#zrVf6UVE@+J;d`7_tev;x=gc&yQ)i)af@M>1SP=&AhC*qINZu0sD~Y= zCx0fG>WI%w4g_m|o12%?L+ySXy2U_r zPaa_kn$P>{{I=7@em_sFu+c!b=iyE5i%UKB448uF(Or)hndX=izuEiEuRbic>>?IW zfhfl9nZXWSV}uE<2aDV+2Rc`bu4w38{9iW$$tXr!h#!K=Ao=$5F0lI$ z0fMUy7bgJ4Qk$V`T!hPEpWG7b-@6N0_r60UrAMVmV`F0>i}q6Mp)%E*`}9f{L6Qi| z`iH`;549UExP=9>P+l{MDt&n4r|>FPf{7-&|ZWtBOSHj?^?zMbeI(2n>w z$!fP1mz6Q8>Nr?{6%O0?O2TgV>%p`>*Plrip;}rRHC!(i=M*&Tq84Pyd4djZ$CJv} z*Vk-ns3IFOZMK!`*qu`CMvj}BM&OKik}sc`-77|$`su?N6gy|}O7=YxwI98HtulJY z^km_TxM0aag*kq1qrQ^w!zA}Yz_lz?HM=p>*?nT5$8lz&uPox0$gSZR|0iSzvrx0< z4@8mIn779R%HX*>UVLqp9QmlX=0uT2$p`s6_{-WXhQw{M@_5|SYR!M8T3MTiy2*%3 z=A@~rs(Kp`uuTQ8x!I^ZEO>IHsu1XJKayPUn%t8n1_p89{M$o|y9q#5QJ3!9{KxYp z4wFXxv?!BFRdYl7%tX3l%~u+&fijtxMMU4@0j7WIf~u;jro&KK6cB5}3l?zP$U{x{ z3(o9=Fs1nAoq1&dN+pFR3uu^JRlJu%){4$!cgQ{e%AZhkrt(7AuqU-v!nMkc^pc~x z;uD=QuBkyk$aI@`krSH{rWS)dNtEqS`}q{>KBtd7Vu{^#sbaRawihRcyS(w4&GUXh z!5A!zvWHUW67{}ad#$=_&c_)lYufzw+I9z@d)JU0E{b^8?k9K5keC5nab+@q*AyMP z+48mj_qV2`4!kpH*al|nvEMKF>e)q*LXkbG`eK`fUGA_}~ zMScnW8C7qNKIE}GG_TuoZYv%~u*1W{ZSC!kz4%m*TUm`b-R=M{%`SSKJ06HwKVF{j zHa%VHt}>yKWl?JE^?@Gj1r3nin?#k0M7&4S93~p;?0Q@ua@xukiIn&Xljq~-(V&T0 zmI{w_!zd#4z$QU$@r$=Vefsn>)y`^gaPTYm$85)C`ipFSb{G7p8){cNfPrM|0$`j3 z)rlgJ%J;vbzX>?g&~0)N-LX1JvNvOSUt55C78tFL&Ba0#LPY%WB~4w3b-ZqOw3mg- ztW8Xt?Ee;JRDu7QXr?zfG;}$IwPZ;}Jr1ZyoB#!hxS6SP-PST|nJd*;H@OC^(4uD- zUH|HU@#DHW?IRVM=B10JAOM0=Yf25iq0h9a&|>D`;K=3>6&7Y(zI-`~C=+LgpfEMdOOTHN1O)J?llR14fQ`Edo(WGNP zs;Vxe-({w@&Q2HQP?gN&x*@#vpZ6~se?8=K^A)o??&#>KcA`{%Zow4$r-kWE^_=+K zkLQ2-d&5gHE0f;x}80J zNIEf2*Fkx1EQRu$K@jw)(@|`|!wy7i=q}f!?r&_uuCpJ$)=$;eXI7+757ktB_-B#L zQv8~dw$h->{D%5v^RW~d!2*&>J8#PT6X>rUJekYuAM0$CTYj5>szD$&PK~ew2#CC9 z*d=U**KtW|)<1HiNZ%=FEbg73ZqK8l&RGn9Hn0V%Qj&v>ng)rb$8p2`<9=|e8JERhJUTLfXG8I=r z$FXmHgCz=g|8ILThsS;JOy*u1Vp5 z6dGnlf-wJx6~YSl?br)Jt6|!yhY8Nw1Yr}CmHty|+b^gR`T!P{Ao2wJoQh%3 z&~3lqZk0CR+sBsP$M)mLj}20ghmg?2_)>w#L_hHu4gpdpOgqm?fd>sXK0ZEg#E?%F z?;>JUes0>XOW(j?=ZY08-UbHpLY2&KlG1tcI#5Oxg^_Day^59Fa$0zdPa&qwMW zvG4cvcR?wJmoxpkby;|=Ili1541By2r#yggK}GWzm1mZ!Hn zx@(h>UPVD!pslAzkk2b=Dc!;ff#c*~OCcsZ<1%QNHP<`#u5?@vsYo_EwU%7!cE;I6 zjuxHi^Rs-n3z3#Z8?kCJS26)`*Bfdti?Z%(+;CGiO;3&rpSuoUonUI3%dYioj_zbS z5H1!^>pk9P*tGgG`;UI*ZG7u2aJYMS?on$6@xEh&!^6h`bzwhjzB5yeg>*`V2O3Eo z&%%?mW#?UthK9y>@BO^b1$8(fY11+{H+R`N@%x1i!69b3vhmf2FAdTC)iemw2g0Fyl)3r27bh%RPfMtLF`QL?nEZY?@rh{|Ix_%g$OlP;gA}g*!o6VV7kW*<4QnAjt6lBL!B{<@Pto{@ie-Ahz4%2S)5PxU&Lz+3$^3~XttE(#g!Fr z-n?O9VQ~uANXVKRspp!SnzGrIyV%@0fu>j&FltxcZJ3?G6)&gHD{0?od zlcevG*hn%fp6GCh+5T^m+=G-xQr*GdHxB*Njr#OU6gg5 zRge&Y8a|`c^e0uLhd!Xq>W2Wl@LfBEFSIDmtsR<(-^0?^D&juFkvH zZnzU!#grb09%r4YGM(_whVc={nGq^{xX~j%(zZw>A+iAb8Thj4gBLBSNHWVUVd|Cw zU$#({@W&9E-YCU&pmOO~otYsWRm%t%c%OBGm$YyYX#uWLnEClWT~phSfW86$8S%8~ zp@{6e^pY=!f?shhr4(~~fKdw|J>Ac9l#PEFJsPOwO!c`tvg=G#RW$yP;WF-&b|sBy z%O1f2HiAzbu1aivD%aTi>kCT%Mu!v9Ie-u+ei@=M)TJ!xoV9?4z%8moT_a0P>6X1J zMRAZ#Pq#-*@9s{YnLd2njMNbht zwN;&sS=MHKl%+SldC18+B6|A&u=IJ4RYYz_0+7oJajd2n?r2 zTpB6gUOMhKlESMJq0Ir#1pj^S>V!JTpS@;A=Mj9tGXFZbagn1Ks9iP7i)iv{;5t$PUS66L197n@92uzO4k4e&l7G?WjYHr{?7U?``tbr6Ul zcYx%$#YpJL5)?xx2f&DKcSJksu?y}!M{DrC-+e^*P?{d98i87L+=IkdCrS?g)HADh z7?Fk$=h3BSi=@g#8-qa_SFU#F=vI#}-I~G}( z=SIpN5O>z=wScl+t4ld#*)m`CdDOvML_j^4qmkY@nMQh=!?6jJmHUY}31x6uUY z+Gc4gzrq&KS3Q(6nl)wR0p3NqU-GZvV*VL3bIYaORa95U`9j+9bjg)68Z0n@K_7E-=2&5!$%l9K_E zBT7!ZNiFM0y`v)(m@7o^cb8seK2(8>;}bh5BiE}m1!6rZ5Z_B~0EF_#s=LcquKW5y z{uQ(fs20V=@*Vp{*bxj!Lf2ZRx4z$Ix#xQx6%-WYImkqZRzUMjae5*-v|S~9iui zl@9nsk+#PVNRh|i)@up93!;MV7R#FJU)Dl8vhRqh5%Cla10PCoMZ|Oc*OvTO?h{t> zuRQ3;^gktw1M?<19Oa(5QnDAT*Gj*3ZDvLWMtrQ<6NK*gvWnHYhZkuNofW;m4yhne z@uVO?y5l?knI);P7G+aPG8{i$Qr&QeNEGY|y6=7xVyLWNp?OpOH;rMgL@i2KJIcd} z39J90$eJZ=Io!kmbvwtr)0(R+5!SYbK^E#BUz`w{kJRtm5z9!H6%u{I5I_*VZLT0mAjNwIQMDqAZ_oMr8t&3(#S}_v z9A+b--L3%t8^3=4WN9^=dk8CZPgSwV1W;}a;GWkz+YXD0vXIM07H9HK&(_HQM}5y+VhE~^sjxFPqBVr*+7&(5-B#rbO9PpRu z+1q*H%5bZ;(er}3!khIKQ#SE2wMJb%H!U(l-||qkSz$N9E<^ z_h_ex-kR#r$*zhs8Ys`on)R62aG0>HwH4DRHGuq=Bs9Yzx*`YhR~FPrIX3Rxv&ZEN zy_7h#lreBk{LH?X`It!vnmvNT!a9pmh{8bKuL?hRj7aq*M$K9ZI2?}K5-^CLR|9=7 zLPL^ULj5ft@`BYNppZJO|dCc#7Tn zfAQMXBptzT@u0$k({Ne7PL%txvvYt>`YjaVAPr6dzpE7>t4t~3^CMk2R5B;d6UVXi)<8JI~h5gWX^OeJ@W`kf#FV$`ev6~-; zVzfb-TgraNt1bSO990k#`_%qnl2|ff-@bjza^Tu|7q)`}E9g02E0;rQa#Q+PzG)+N zC1>02--IJkC?%03P({0dq`sf8Ert3X~QH zo(Zd2eR;4}Nl9tL@87?b)YK|>S*R^?5*Cq+MNGi6?D%c&Ky$(x2lrxqt?CYq4|OmT0`Z3&mQJX>3~-Lg zZO9CKu{0E$71)gDwC{>CpU7}-4t#y%qKHY1t=iJbQr zh;9QNsA)!w3j#SoIV{Kt%YT?TbR6OfbTIHd6WDfvYFESIE8kzTh*@6aX&x^pmaR)Easa`!>bNs1}Wz1-+Pj^g#(z}M({Q>eVSXVJJF*0J@&aNWKr@0z=QhB5a_jc_Vj+nof`=G;N@+#=g-e_iP^# zBio;D#tR~w_1uwD)WvI$ofiFdZ?us)on^<49cuSW%geKX<|ywG0(>Y4kFUFRUwx4> zGf9wWkRUZkD=p|iYjer~sHq9+VXn1S^%6!tQ0Yf#^2NFon>%=pWtK$yJEsdcY{r&{ z>>JV1^p4|!j(InNgM%N1goJ=>mauf6D;EkRw9#o>W2nxQA^Y`=WkZ?oZ+D<>&X_CtkMr{K@T#$oDQ`>uDO_kB z1B>shx$5$q-XJrLHQvSDmc%cT|5q{9Kn9L)Hg3Q;4 zJ}(`$$3p96`wq(D4z+C%hBoQ+Yf+&GYuPqI3RYP4JISKs;-@<_sFn15%oTZhrbtrZ zi@a`3>nb3LWZ%a^2La2ftAXdEE=r$MR+hG~uxQ<5LOv*zQr3~(JqSrxR~ECvpZQ7v z@Gw6XY8F{g#b$>LnaSLk?%M$6H%M|j$7_mDe4+SS6FQ{YAJF4ti3c! z@b_-2;q?U;Vmkl8X%F)^g)P`#FVf66+(f2l-}1^xrSxE43~p> zClp@$e(JfSK%x-}P;IZbhAmLTc~8#KgJ3~CZ8UyCe14{AsP_xKJGjrU+IC$`Vx5sk z_voaFw-owwd3kved&aSxJBt9hlfB?JH~`}&2)VFr5HKcX%|-E;@tHT+=r|%;5aZ&hgAc16EZt?t{*5pZ5)OI)dVQY&p6wPIBP;{wT|? zDifuIt;8^npW!D=t~51q%~-cMIQlybKZ3IKF&i5jK-X-(@!Sw5-VFDO?j4(>*YoFD z_f|7pY|eS2mW(WSWsH8d%jW$_V**}F^yv}Ra?mqMnmF<=$Ip_@&QwPr_U zbH4KK@lw@(#AcczjK1Q!&v6InuVr_P`5t~|JFtWw|K6%`D?D<^-k zEG30cbCe;8bz3>CqjtQ17dc#@uuyPngaS@ALfb57%fqkGYto@0tCh!T-}@;nyXxSp z0P+$DIm^kDC*MLSl;zIlKQ{6pAU^&;d4vuZKu87VH^TAw?pv?U!3ng9T9>A4nt zpAZY@)%Qs-`fsRNlQx$!59Z} zXKOgc6LYhQU8T+tf?+h=<`-iowzN|-Uk-99k>+54EO|k&#|)k_Dj_3|(pGR8>b_=T}pVjgbU`z+@a7VrhW$ z`*TaN6rBLA!PiQB`w=dA^}E|0kr%!+y6i7-A_#K&hYvgu2@w!?plWx##L&`?(DoTJ zx=F7OEXYF-tLmaGy0Njbtv1;zWvE;u3IOW@{tUxeS;QoR(X5vLjhS60sP&r7`?jY| z{uVsQcD*+8!qIc*&LQ-0rZDfzifl^b!xiptfNp9mdhvqSsh3n}~>rlCrYb>O=vJ_){4o z?%MS6OIA9}9YDM&2&9q18#2x!>OJB#?C;E`do~1%{NT zKw_i@VIhrBHgebZv*F46_AMYfdY{g!PS2%zVGNORa{l`>i+%vW|Mu{ z*{CT8+T`t2%Ymb8g2zoKk_5zF51o@-nZY_x!`2H!8KS$bAG^_egw#5L$k=M zYbT51^fmR95gV}Gyn6xu8y&Am=UmBUe;u6nN))8O6w*7sM?E%Z!uU9xYmOd*ac7b} z*t}Cfzzrp?hG6Zd#)nLvmFY#qyOQf2bE}!<@fcL+eR?APnV?8DVC-?DY;EHMdM-{+ zUImi_ZAk!rCQc1kH}z$66)MquAcCc=bnix59j99z-3AK81P>TjF{05#h+N1GvgQcA z;Cui6z4t494(kSNU&|}gE7Sg$Ax-ataRdwR!%Ry@rQDIo3M9A&s1Y_ervQ*Qx8H#Q zIr+!XO)ge~eQ#1)T6!rdtJbpGI4R0{wksZcdXsF=4@fWFVLbJtr)oSqQ7dql7oduo zjtx+Tdj3(VTxVun)&4&;K?33A549Al7X$}d^4#|gR;*=Z%;vDtbYVZVkFSjYtDtv$ zLDx!`;pNZ;3ctQ>JNC|Khc(>-#mSq(+m9Lfz^tg+Zk%`OmQd~)C;{LW+Im-$3 z1$9sgIG*|Lgy-9L@80F&4_^DZ9`a`;ZSC$AYBs$-k<0~kO|!H1Y0|EwxWoad&|g!&{4udn$T7Z#zdkc&iHLfa}E zN}Hi0Bpd3G0LLb+H2S&J02Z=Fb*XhlFl4=kN?vl$IV- zR#xU|NP-&jvWnN5%RHBi5vY^mLGmloBt!lur)tk|TbTI*%>5dmGWm9eWfiEDfVwRp zd9JKi)%%fPM7rN){M6w^i><2!*lY;$lJ! z`iR%BC^c>yZm~l;iKHIf3yhU8kr4=K=S$bc?+D=qL0m43A?mU%p=!kh!!;I zBj&<|3&@3`18@l7tUP2Hnu&WkZQI_UBWn)U2lo@Q5{wBA%-Sk^MN`4Bh-+8gsA}8n zK>f7V(Dr{LIkJ*6d71Oy6nhnh5`6pRg)k5iMWw3%KoDRD3Bl)&^o`pFrlicuHDete6ZS zMu1tOY-kdG3+WIl4QV9=n-I)tWIp(wghRorDSx#%1rP58&vAtCVnB-h0T8WTB%&Mx zE*P4>uk6uEI#(1oAm~n*EW$ZM;BWbZE?^Jgfkl}#w6wGrp%cd)Ws7cN-7J94^{FL0 z>+Ju%Wb{a#FDoOpX;re!(GevQzu;$Lm0fp&nTRrdKM`~^=h)<6;c?&kM5@eFQ z9(mX)Cfymre|5jnoXHSzXyKH!w`Mo{x*-bs6f&U>r9w(Y1%Lbbxlf8@ zp&TbiKIDN&i?(=_F?tJDo%R#|Sc&VHt2BrMhwZ$W2#{y>NdU$*PWa45Y0VEY6ZVrw#clG($r|2vbThT_8OkX8ix@*}EYB@)b3^xQ6Y(p7D_$|KKiD#|e$ecGdL9 zFzsj&tj;tWLT}%b)8Wiqs9hS{iV{rgMO$9#HF_Lf_XwKlvQf{&Kx?5pY&+b$;LxmC z$UtNNu+uk#**A*mzM^GhWISeOX6C{wvYSWVr}Ukjk@~f{(z>Lo=~)NQg%2Yy2VPt@ z4>=((8JA7y^+>-p)d*GXM{!0K!#^FWSO{WjfZkhe_l$j(IQ=r*4p#*JM+`jqDe5f2 z-uxvPNM5n00Y~W)Hk@nEqhu$x3x>~;qO{ahl6G<*EI!f>8GK445yt0Z}mAN{Zc-Ok_nx3Nf`2D zN5jF8OmwM*!0DrlJ&y3)ekkyYCV=BKe2LQVk>K zcuaeXZPAgHnQ%@E0uuY`XQt}WtWyF1XCj!LVafCpO!CDd+>s|#5oo>{88!=xARRN0Dp834W-$DJ#ds?va5`b4`1?QDu<%b<0d%l-$ z!L$u1$lm<{a`@f5cQ@jbyEmHGPQN%ov+!PI2K;q_p@$b4buDB5v1#E`jCl#Z1e%%k zI)6s-uh7zm;sctp0Kmm0`F{SAjo^!rGG{+T65`1X@p2?u5%n#W9~vHp?lWsUJ>E*r@`!I^FX2>Q!}N_|(%p96y;=%sxWU!J=^2Eo&o_=K_rf5)0^ z^?);WE?*Y19c*I}y{_vSq6&wA?bk10H1Fc6IO`2Jg#IP)o%)CEd*Z822&auegcEPM zyOrbv5ARVtca9OTNi#U-HXD^R(8v+${O-%KI55La>IK;5ZfkfxLC+}B6u3S=*13gzE%VHy((+9}Nel0D^k!AA2W-n^NFvTTn3H?=k^WE)1 zb(#bv4MWcpk5L4GR;WUZ`Zf0J2oP`ps3sx=!<&smm>m$(il#!x>6?X>?|g|g(bDF2 z5Rk9c;3d{>&zO#j+g2MVpw^rh_09`wSd>YOFf`{3p|`nFejK|c5;DCk2#>jD1{G#X zJD-@Qja@-OruMC|%kUB{cq`3O>J`xJ0CR8pp0)4($pzfrE=Rzai0rqu6QD&lK@zn1 zt_HO`GFNQgf5m(#JZO_;E0x!M>FgSDg6Bk6^t zUS*H7i=mFTYzMA6LHi}NOQ9Im-O^4?(frZ~GLi@#4y(uCk>BV6+4ncB$#lfXc zlRzSYEkLbX*UTvAW#(4#f{Ep@xj~J2iTu!z!^}jzyTeHBK^_G^&6%H2A7w9;7}0z< zj0EXQQgk?su7KG|U6)_h+pL+NoKGuE?8Yt%BPKO6?K`C)54*A)Pr&~LO7 z+j|fNyC=FFScqT{m81IK2CzS&Jykx36F&$T%5Yemn`~Gq734o%u3_p53$k*4UJVT^ zdeGNyhJpj=Yi60~O3;}a+qG8=PL?~R8qd%1(Z>o7;cH4?DGk8l>7$aGizG(S{@5)52n_tMhDL)ovr zhaj30vTg5~p0dPIX1BWQw`{Qpw`d_o3qz>^Cch&JW%)%&U$D97|duO zQ8T}~<@35(Yf`PKi+XPd{hm)(7Rzp_fMdwGi>3b4P)eXqcwQ}ey9EfEjR2wk3tVFE zNt-Yc2Z#v)63ri-2o;r#=c~}EQfAFhWXk<-z&Wp3;M;sxzkb(yRqJ3$sYDmRJf;<; z0RG;vhZOl*MbsZ0%$|yt@W+M2CeKzRLcUq;y$;{C8GvE4GG*0FICrM9{nypHODIYh zKK1GlkA?G8uEMQotrlaeC+q%C<;F-5%!jMx=Q9i`ra29k@p>v0^E#Hxx=W55Xx_{h z(Rw2+f>?+-xE^`aQ~r{vX~hVaC<%@=LBmx-_M^Sy^-?oqg$bLxukkzi+zCUKHHg6W z_(F%rXr5|Xamaar7WpG}rI~Pw-qf}7D#6sjGby8u&Pw2Ak=VmXBb*(rlAQKosuoBI zm4y`Ph&!>}aEiXVIIrq}iPDpG|Fcv88rZhP#;%zX!r5EX1OC~|R1uJACp70dT zK!>ptYRCs{6;*ys(#BeNe9sCdHr$cbI`fJR6cZHJ8(#UBT?oeqCc<6!#eMjZY}F%M zYqD}J>oW_@q~K#oACKMKmhatSB7Vk6l;+Y56is5g9>%ool@^R34o>#LmLb@gS8Eu4rbgd z-?L?Hb}I~ICQgrcba0JF%#24|IT~iMl5osqlbe`;(f?!Yy2EmO+b}6AD@s`*adhQ@FW2Y($bWYLyCkb@d)kWDJf`&gJ&m#ja}?X6cG zNppK(_M4EDk)B$Yg|3F1>Jui-JjC7sX!+rV=-+fT>m(pZ(j%GkobQsRiC{=iA5>=i z*A*kuU5%+h!yqX1CpJ^c&WoC5`ra~*@9CO z`CF;kF$90@6%tK|-L5(Qmkqa#W=l*m%39%T)j7(kI?UfVhAP)@F?p?IPltzhEE+lij3mBs(j6HqbxO>-Ggp97ddNK_icvy)ej1$OX??z z6*md5Fr0igzYD(+4dn&vI|i8Nhrguu1bfL-nm8=MtDZ<|M1&TTc<}}vC1a9|P>nzX z(vE^sA+NNCM#B`2#eWECY24q$)j4&Ck&La6t+QS|L!|gzdlJ0NN8n}J+#!G98-asl zo-_ml61z*l5At%ZbB+={h^GBigNZX6oQE+-THMRkv9%_BJJp>6b)U&I)2YNN?R{XhXA6 zmS;RXc3G`zrPe6oR7C=Ds$6Z;QKPo#PXS=>KI^p^r^dFGxoW5%@2baPx&|C$5*msQ z!uv|@e3DQ{%os?%^ttSHx~kMPHrNK275v=fhRdapQGji}!OeQ)&`CSu`hxN=MPFEG z4f2}9qhy>1Ottd+sX>Z zLQAw=mZ~*IsCbqmw#jgkuIiRRCs@0$@{}B8+N79IXrZ8c;#(L`byicMgGa~$Ki6Y# z7p#1eq}&>vwK(F3Nc}tJrLkvB50xG-%t{fuq?$jU=ZWk2AOdkA);Z{{tF* z(#%K*uVy6McwieMkDSkdM!q9rw|yM+=KJX)ZKUne)|zfrwtk=cR`C9^f&X3E)l$xV zyYkV~IHm?1t}|p``w%iggUjMLT6*AG`&)Y^-ZlGhMEDz!9WCHl6^5p5)z*7uu^?Gr za>?VHxRUG%aChb(E^NuEATr7VKsPP36TcMU+i`~RqEP382b+Q`B_0|+N&6OAa9Shh z6pw6vPEk=rup)LS;Fs#13p`qyJBoTF8#@C+;=ZX~)9AE{ZhH++iHTI}Z?cO=q)cC~ zwB{^wUm7Rw1(-*ky`Vt6CJ%@-Xz>IeA!mdFJ zo`>MB63!E@Hv~+igUjT1de??c7r!snki7IHN~C&Xwbr;BG?Z&uJ)H~VeNiaa>HNtS znkFxNJI^Vt(vB@HJ4PdBBl#}QnY07|D=U?1XPW6w=p<*doEV#FhWIdqN4G#}ZPHM4 zKanP1h4YdM(8F3quLUkCDxa-D>=zPJE!EQ~wbYC&XaUd7+tIJX1(aS2UfR9jmT4z$ z-Y$@~>?`|W)774c^38)etK^g1EUNtKAwnP|ZWde?Tjd|H&b_8;oBvWXvo3HuY4+@8 z{N+=83@^WPV*qOFhoeh`ripr|I2l=VV#n^JI`rs4B1#KZKc?zD)v3lYzkwYUz3&17 zOD&y?tlZLGG5}r#_=z7ccnP<1oo#vkeBw$GI_Bmp5@7#5`F6T+R!^bkmAob!l0;GU zRS-TT>wZW%uZ2)AmwVbuR{zyZb!9!)87GP=r>s9oq;+uc6+*;xo z{n!@nzCCyi4xf()t}7_*fmoqWhVk3A2i{!V`|7kojxMZxkba#x_3qh6dMyH!^`jX+ zCp#{!-i5{_wsoFM`}1tW?w$TkJ$jBR`cA^yq=n85Jy~`nDJCygriI6y%-N@xy~w0K zk&UO7WrJ1BwgA4kog_-(ExcH=Cj|HX`551+Bj2w1?Q+0h(g z8@sOvE@qH+*!5-7ULP4qCf+gnr0~MZx(;&Oj|AEE1besMgeS)*WK^hWYgiQ#i(n#r&a0QSiqXILhwMtYuxkQeDTMEKoR6nVcO%5WecIFu?8S z>cA+uG&a&VxEv|lGHPDRQ_`AL$Q`5o>R>D$c(VL00Il^w^f0EH+8K44hfCamhu9KW zL-cb8U#&y@7$j%1tB3rCc!5GRQ#j7l9(L3jI7S{!5PY zFKaJQFfOqZevgoLUymZ=VlCJqJ{PMReVrSG_OH>3@w<XFuF*fe`A?gbkT?rG z>^VJ!B$8iTgiB(5z>WQ4oYrmPW_#e}C_6hXIFl?t<;jd7o-H7~NPiD#WHUC&O9ujOf#gzH%L2Q4u3-2KIF);}-s<=58BcV(|kn>V|1@|M(C&m4E> zXnP%WY{LV*ep=^&<|o&}MWB9o)1H2vZ%*bnz2vgA?R8z1Wt%G}v-3#j=ZO5et$YxH zxB>fJhQzXig+gqn$FQ~3)gL|iOfg*SuxX87=Fzw3^em_D(y>w~uqDaLKxG150-}7M zy>~G=@Og;oGvyfz1lU;Rxv2-Zl*Fd{!o7ooE9(h}@s?zJh1`|cyYB~L_FcZK4@XAS zv6$}AVpJ{`q_anxPcDBqOloikv+qcYnh9vARRE+8fBC&3{GcJGBBKNXiWW7UbZ zFnf}|)lU3Ix|`^FL*(IAebW+SDwoefTKl-tuIK}sqbb`M+er~kzABnDO$f)g$=_)9 zah>bklbiR&Q7pyR@HrpJ!h4&Ejn%kG&Vlr1fO%Bc%Nut~D5Pm&hgLRW)Op>0psj0d>PfufMR;?;5sHx&=Fq&kSBo%tj9 zQXS7LlNjyQB!!eN!kRH>rD~YED(;4mOC_+y8GF5qisGK*&eNk=VJB`KDYKI9Obg88 zC(AUFr2fgn<6sWT#v?TRmA(g7a9CLVPEI|y1Gif?zP#{ z*!1qMI$L{^N+$iu;pUAOO|?&n!9e_k|7rCb)B>quu^_IkC$UP2gWR|EWT|paQ!lDc z9ZFN=SwP>K+2u0zE@VP?uexzhZ-%viM28w(8lGZ7zH5%Zbu3(`Euo%!i8razZF(_ny-Wd)#w|Qd9+jVm7p8XUbpkx3F7#- zRO}UBhd((NZ!QS-L^yTCJ`I%;X-Niw?oW3NpE(nMlhDMundR(jo~dP3pIDEbBKUES zq9PL^c~gD4o=zO$l2hBKTw_vFCN?B6DNVH8?QgYC&$mOhxYP_w8&N-4r5}5@McA|= z<7K6f>x)~lKQ1pIj6X+}>PUx_h|i3mcyxG{AgW0bi>sghQ0Zk0o?sCg7v&=CsomHz zPQRJM0stAlzjPU@(Fef5Wg5Hq4Q|mTBoxjzR%HB45;V;!&uYEa_hSKKP$efS1V>cN z0Bt8dh>AUVL@)+UbdB+^D3?~`MC~+;V#B|-D@mW}?rd`eJ+B$d_iw4qm6_aM%t(8P zs_&!dHl-~~R-!IyW zT&KQ?h>~4D1@>x}O@lKv+77xe_KhEnvtUz=74$aD7WG?DZ4aN6WO!br?Q(Y$TL%jv zbNtj`Y8H7qk_19()W)&-9cfWJB5CVABcFsPx&-BnO!vy__4}fEb`k%afuPn!a2HiC zvOxWg&dO$y>WVQ4q)>#?lT^w<G{PNE5p4RD<4N^FpL>x(%6i~$02x@!%VEd410^qudppiyy z!C)?xQUy+H!2= zG{Rc`VeZ?QcG+tVN$JfTe#h>d`ee1VuR^fdQnMJ*ny}1+$etVI6uf*~MToF*Gud>R z`@PL@6E%5Jww>~Af#J)CiBZaDJerh+m4w}?Q9Ct#5mghBPr!W5)qLdhO}odBl0y-D8P*5wVMW^B47bm)!cPS-V@{GJdjH1sBQu2m3&2 z1eRBUR;m0;*6XmPx(%f%@`nDIntFNf-FHVGNriWTQZ*d0^)GftY3?mX&Z>3Y&ehH3Sc70m2wlKbw@LK{hbi2 zWz~6v`~pdl>gCNia^PDLX80jgtLS>2hll4H&XKrMM&u9K#XsIdjSnsMz`gDTmIeUq7_~j)(M~8Aw2JRx@;|a zVGa|G;Ow_J50=MGsqV`du`Q(xU5&9r6{`?(@bfvm@!@&4PnaLoW^ikrP)mhSjP8@P zK!X10s`sltR%N3u>{6Ye+^Si1)Fo~O=?>OQ{cK#%!lea2)!E_{wQ%FWP%G5wbXI+X zS>1N2MK*sAfG=mw2YF^0BOi7gWl@%Pms@f;9^NKUR(J{}q;)m6Fc0e?WcWXB2DqzF^#_6@F*&OWZ|z0>zj znmp~OSuoLJCEQa&xgWD*4ETSKTRgKP6U#L$r+|qyMy^T*V0oYSEHC9AenBnHt3c3K zLC9~CegW|~2;JAda$kNQzv_y+x3UhmfKvT`Xgu()IVGdJOG46hsosrdJEfZuAlc-0; zED2sV!HJM-_c>lTJfN&;S$Wgp^1Iurx-B3ure~IFVDR(MAJ7G_%jAg+r&ddkkub2| zzu?H2x0R~f2aaFm}uzidhBLQIuZ zTgtBYh(+DQ4@S48L*|hHzBQDqRNb8ot!_)QaR5Pw^{tI!p9kl8si5e+A@}W|B||_u z21kNd5C`2nb*E}3YM9kOK}o3FRYz)jq%fiHf;RAXR3Aainxnl;IR3$dR+95C+qNYnzS|2ucx}s1V^i!bYeP4|d+@+61hzHRDp=p3 zKj9YM?NCPZhUDd|YpHqpf2%#P?9?A>(2Z(f?=ub_Z=$*+AFHo50ZkEk| z^vc_xxAQ*TeM|q~Qt&mtO*3D9zP#i^#GSdS%ER^?(<-vaWhN6`8xv}#NZ4L|c#O06*^^nc zZtt;=^n4nP81Qcg#Yfuq&J`1uPKP$L5Sj?i$! z7b(c)W|g=uH7JM{jB5!GagQkEDsG?I^Jk_+Cy-2R;5V13w@ zF*|1?izZS|Nb*Rz_JRmX*%y7xiMF;l`F%X-O7SWJnH`I1wSQGb9!t;8kUQ^^6hg#T z1P2E*$KP`+b#aTaXb30l0dSS(LVJ09-@Z0Qc&0kKjkz`!Ifrm@b+$NEKiYcZ=T4n= zCHs!Jj)J;vn>TN^FA4|@ya~0^CK2}5zte#@Otx}<^Lj4-emUoHQv$*mVqZ5Qnx!aq1a^*QXU#!i{8I=uM4=0F(Y7;kd?$1V+AqCEqkld zrM|x_;Wyvx`D@=(QLje~Z3*z9b!I(;4H6Z=y7k>eiZ?{UUdkcxUSLPdN{#B4V}A|D z)Dwd3GiD`;r+z_{eoH)jGTe3-%Sg5F2E)|h+U+#=wm$_B?ykJg+67B@()_{6#9;=gAu*W01DYMM!+-K5@2*vvc z=NzBuJH|}-2B2tyIb#gWJ~#l+E(M8SxQY5Pkli_6+|&vMMG*Do9Lpu>nS=0?>mSav zUg4Cfghfy+Cw0c7$B$npndOscL6^*R3NqWdb7u*Vub;BSh~{-sN8vp`p66AN%tT7O z$IjQ&My$~>%QiwE7=j1P21e19KFq%59-VS83=jT6JJ*qE?d?VNCxR>^Y&ys4ha<~J zSr3Gxh18I1_}?~^cBChCvA~d?c?S)5hswWzTwEt91uy}saM6&ro;~ED4H}kuosAf%_Ez(;`nljgc^w7N z;l}Bv`J*>CQ4Y?Yi)Lmbu}rX8bzAZ)O~pu~cS-B@lr14+tmnTM#qQmV#xAk2?$e`x z!9|2-wPZz*OVpbDdIc7SbtosLT^~@ zpaF}`a^aDIrO-CU!`Bn=S-HQB(U?9Q$ zSV`FxG{^%knfrou&^3Ez`rRhI^vN%H@UXV8EX*A9#; zM8FnO>tgP=_%tHkkqWVvmR9+*Xc@9!IMra6Ob*Yk8uHlw*&p^$5l~H4X^s5LtLy2s zJQ2@<9cs!!V1=JhpG+mOJ9~Ca#kWCk$3l9_DKk_x2K|n@(cG(x*JN zBG=f+X&w9<>4_*kuof$ZkLAJ@lC^Ok{9lGG-oQu6f;cpqu2(I__)ck7yhiA`KRWsUjP@bA)7ix=#m5@$#yNzPz0Rif6=4@_x3Ag+biRrKqjVffio)o*yZD93q zW8Eh=mU+9y=oboN8|cQsTXj_MEdk>12FgCH?v%^KMD91HRr1?I+&#%#3q@x`B=2)} zwxEb>{s{9iuqxypjvy(~FBuc6Od1H0iY3A|CpY~_q5KOWAwr$Wm z^;)DitaAmA@1gpT0HeDfH3eLSpf~a&3|zhR57_IR`S)Lb*7!!=y?3uwaeLgvG*V*% z;D(29{H=6|7!mq^&*(p;la>(ZCE;NDjv!PbhuM^!N&Ch>vyps^0{sImEp~waf1k9d zu78wSX?mh4PJ##%ZO4t=l3(7q&U zY}2PtS1_(|_IK@{%#qWJYxf?mm6NF&k;6Zv1Tu2@MiIxGklPdRD^akKXkj)@<&97L zw~?p0NH;{;qNSPO?;+0cS-;3sj2+AmpR=-9Qd3i*$-MSx_}8oBopDMh9IaH(eSRY( zh8=`y2$v10)b!%=v@!&Z-uo#2+ey~5=dM2@hdjKDwY4=k^_wl0GrTnHUHy`#9La0Z z;|0Xh_2hP``)xLiJRID!{zRP;>EW^)MJsuEEq?#nk{kF%!)@Rlq*eP&3YB#e_-63( z73zA{*49=aroeTFQ2oL=eN~_RyZ?=L_zX{^xdcW6^}UT*(+75B-w&L=wC``RFF=z5 z+Fms`=DNAuJos-Fn|5(ByaX+fDB%l1Ro{2o%ZTvsMBvvRM@5N>iHWsGQeORAp?{}k zU=yy`f!pxW!dE^c{^|m^afDYjQZ2fu13pLF{p*z<6b6mFX=gFY2X=%bk?2)ur+a5Y zmp7QO89;HjMPEyJjBBR%%@n_r>rTS9V8mZd-dZfTF}HN;PYreTgTFr9IUjss-E`M~ zW3Px$Kqxqu0G2J?i!A`l`&8bDE&dsPQqLuc;YFQ){}C@Oy&JqCtj&J~N8pC$ZUA4_ z>(GdQvMdw|>(h`BdkEXD2buEvlV3~ zb=u82BU<9%cc!tL5^iV0D5v&8g|I;~D(y#=nS4oNCIWnW9oH-ju3))HP2E!YShK>XrW$FTtb5^8^-Z1RP0t_EJr!cJo zo2i7=U*ipEh9K#=mBNfFgdvzwk&_`(+w}9+wWK-CHDCkoLUa-@*g-TjumK{0!{# zQGbxG#knu5J+Ws5`^}1@gv^B$d`pnQCbXt`an_cK7EJeQY(%AQ_# zY8Tw+GmkEo3gn_!zvXZ2L;v)+K__L%4jeoSiA0LtYJKhqR(hOzxXiB#oB4m_xVc=% ziC?jWLRdh#!B_VZ2;*I0+@~xKSJRRC&h=-pW^TmRh8la{NCn zxyeqrB<}9#8_uB7|B9yoaTUDh^N@A;vJQUjzNs1O&h5R0uS1$Boc?m)xVyUdN$Bsu zGJZ|CJ=Unwwn`^AYi4Z#&lBa%ELm@*-Kwg0+eDB=BSk{uC<5wyDf5ZKKg-(xLW6#j zEDlo{v*5w`5vHRh_l1u%2FPXr0dK> zXESacu{{kfBX@>~5e3NrSxG17r<&yLjE^7>VMOw&*LQN>*|8O99;kQ_-_nv+lldC% zd8Bpi&^pM*cGGZ-`RUyP$vl`vxA|8F-D3T7-M++uHk?1cvw;X}A-}bX_%5j1L_gEl z`SX4AIfOtk-Zd413g@I}F+%P>#hE(^00uBN5K4B-6{cs-BoWT3zprQ7IJA8pP8iq! zJ-xF@c?j2wo!7i$WW41Tnt+yW!esNoZJQYpp#@ZGy^dSFLB7z&Tocu1PTbfCIMpkd za|m;2w+^uusBhnFYb+<)8y3&GxXDetRaseCKv-BtMrMlG_$Oi-(RXn8oIf&ESFA~k z>*ptOmN!Fengb*_iXx44HUKDC4^{3hmX;k+t7-`A5la}3=0TE|a?1@a zZdF7<>*$FSpstzeZ^^*4f{{2Cb3>QoMNq6a|JzmmA8Xh^8gXqa)phQ2Dq8Vib@lsbP6DWH129O;L7u8}sE3 zR?PQd!3mKpAVA8KHS?jNjM~=c@81`qE@Pha@YJ|lcEuq)ZIefE;fP~Mw+ce332(D8 zpZkd8${4T}Pg?VYW_v<7wAToCGVn05$G7`tI?`(9LU%zU(vba&y1@uXbIAQfQ6|ab z)g!)+NJuhJ1rr)Cb)i>CqFuzeSQ;WAi%~m!jQX6B4s024pR8EgrT2fgI5+*Qm_4q(sdXYWx9;qJluRf0% zEK;QD$<)+zT5;Ol@k%_X3naiE%n0-y&aFgtuypZ>jk&3=!b#BbIf&fiW<_^CERBOW z4QXvB2MJ(lwL{mx#oO8f)QrSa(%tk3+TRoMFG4Y3$>Ofy`#30wkJ;G3(2&(Q z)zi^`L}W6^rVg@Dz1D7ESy!y0AWP`Hy2a?&v1{ndV2ozX$uomZlcICV>?Rup)eT+3 z--xhsy>F+%*B9QNE2F5wL6?;{+ghy%hbY{=hAs0_%43M=I}rua*RNK*t7kNPb%uU< z6Ew5J)AtyTyx^0~;Ph&GI<&)N%%R#a)PImLDciA~nh~Yg&}*V4jH*Y6(&m}CMt4$3 z`NR+mf14(_%h+_~h@CO`yEj7wM67AO;>Zvfdw@QA2B(krz_vQ2z8|fnM4_#sqT(w0 zxFs4N|Hu8+hP1THu1uwogOK*5`qwWG?<9iV$ns?SHji8W9dMU=f0z~nbDZF+KC*Ve zIfd5Ai;$xe(PJ?6e1H6i^!jli`I{H6uQp?kKkfLdG3XXjbR#j4=$T=C@tD%o{no{6fD0tR?{%>-5>(guQH6%{|NUrAHF#7e zX6vfPw*!NB+-T2cA#^JfXR7Is_Tj*Cl=?{X-not*gR|x0Mf0xATy%@n8&NDVCkx(K5p4vmNt6Gy}#L%xaf zh*UcKPwJ0I6b&*z6X4Sz1Sf@cC~Iy(-VwL0=Zas1)&V_coF@JO|8b%cQJYd<<($Jk z?wf30t_W&jF#QlUVWRgCB1V9#XDc3Fd4#Yy`FPlfh-T>dnyi5f>RDpVI8vJ=R%d`K zwY<-Zfn#gY?4jVRTk|cPC<8w__4z-h8=G?6T03ms`MxEmvP-Lntsq|H?=J-f>_k8u z*pj11k6z8m$yv4Mz<*Q&N`tY*YSXqI9=XLtITe+ZW)tEBO~lX7ZF{ddyh_YI64Iw^rkYbpZxmMc&F^jq2#l82IXcp39oWbC!K(r%@`hpQ{E=it6#)rA zPyO@{2>##}V}?%u_XNgBt`kU8O?}le=d(2`Ot%xDxb^e=RQ_Z)UJ($AeTvt+GJ}2g z=~O=+p34&`o0zc6U{i?_7b*r-*-EIcaTP}!7DVSoo9QnO3mo3^Gj#ds-N3qCE&AMi zWG>KaF70v!x4DD>V0o!Ur`SLLhED6ok7XH4DKyMO1OKms1OEiEY$C{Zc^iV1!*PxY z0Ea$`i|f8UG55lhncGnNhr3BG%?y^~YU7*f(yLg}Thlhp8@ZxUR2G1NRP=QuLSy&& zU7bLQW8m^tmO^tlx1oZqeiN#s`kf(Bu#7isy9sw$Mhg} zHgcpJhlvLbURW}XTXCnVH-$_X#W~M}Rlh{MFVfgUR3+{6X|-a7v7nC=@;3)>pBazV z<(~wKopd@2ktM}#maL>vU~up)2nKsJH06}KGKPhRgCm%lQxaV-dTIE#51EZMS+IMX zB_?)^$l=kKh9wYDLNor17JS@55*T&o!+0V zWrkb&l_$Y}$QKQ^aa7Bctc!;AU+x%>J7-FG3;Ejy>gE8V7wUA!LtfAIflHQH4f&ks}&{zvXOW&CR zQKYD}8EH2$f!fpPX#YcpXt@NFPs;3ap}T#{mKQ4*oAlmOKsd zx5eqDX9kUQ#4hPyqiG&6H^uw%N7ewm&e4K!RsP#|#MIO}q(T1j3Uz6dTt+6eUP`y~}8&y_tXpWrM8u(LFO@gEU z4}YpO0IL$GpinS!RYaFM&}xBc_S=17BW==jN;qtp!zIwQN62WXex943+G6ZW0#&F_ z(=H$Rkm0|fXhLfzHPP?s$VK8@O%3sZaJ-6m^K80hAv38=_j{``zhyq-tFXrUKT`L| z41X}yUi9w->H<-$K+2g~Ug}CQC4E2{3LLS z!mrhCz;{i3qU5(?<;ss%xVX6xv|(>fT`=;?hWzFbA~C^_33o>?U4u83K!a8~6K$v{ zuAx4_1LNwd?10Cx7c&+~y6yD#AGc;bk%o@smW`KY4{jJ4JT)TWs4)wZ8nXl)nrxVH zougv82a*kEa?|T|$6{7GXvvR)-e)^#K=DbH+$Z<*n6%Cl> zrL|xb(BxI-!yhL{kLG=~0Te4~Lr4OE?Jfz-JvdCua@cvGX9>l+uid3nH~QBr?x7)l zETqcfWUO|orYK%YHE{1N6cSeRPD!23i82(JA9nBCHxH13-O9?DD~ny=WOlUF5cZ6t z1_peFt45ZnhMZK+k2wANCP(z@O$>VTKBotfHPDOJCqd@=j-(ayp6fcg?RiOR=7>*& zZ$F(u?m`t*@>J1wfbJ}m>-}@JX@d9titLrs82QY;-&l}55zmm({PVP=XEDJ2*Hc(6 zcV3ea$^I^Q6?ru}mv?hT`@8zPj}67OA$X-qas~LI4W9O-3eZ|D7X?#`ncoVzI`b<7p-g zdU)RqoZ9XMMN=nxpsqD}cam*IKA^;~5L<|(-+d`t8$dZ9tIbUD%Rv8YAuXz;8;)zLMOvt7hb1(Jdv2MWUpri;RV1XXmebI=A3H%UD`kzHWNjk0DRk z&p0f8F>t5Vgfa#PglVoJta!aDReR*qhy3PG4_V_D+GcBdOK4P4%)Ku{)5}Bx!}8D|Om-5Gdga*$hG9vd4YAW~g|Ph8wEf zql&FNlifpu`+=|c$8nNA9H#T&m}L0-7gD?Ogk@>QwzsOEPg2k_n>cS3RaIh< z@*Bo43k`mc%P3Nt(bpS{VhfAqX!IDPm#3qsvRW0y{rM3F%%;t}Bj<9!pbYszx{#DC z3zAtz*7tw|+@2ARc_lK-NafUKM|)89^P|C3j*Z-_i>&F5F6E!>}%-Qz0sxOh=??nX#BZKd>s0d(SiguyJ|FtCT zC?%hoeGqNgKKwx;LTfaR(M9N0^1xTjkBxwN$ z6Ju>2Xe}3tnXW*F#HlfSBdQGSz z-9R{ZwlP&0^_K$S#<_|IZj8SP0J1<*Q+I~{D65yDM=9mXg&4>dlyhO&-T_}wQZChF zPILnh|8&IMT7a6GBqbm?nwR;ilnpR9q<4;_8F(b8v7-Xx+z&wmB*@WizYYMG2srG} zt|WtEWLYBz6+=9DvW9Jwal)~!T-1av3L{ih1Qms1R-FUrpT;bPqjv~Q{;XxP;Jy+y za5#`A(()H>df1(7yl7JVnvpN;%V#|}hb}QNC)`5EE|)e)HYOHi9{i8(wI&SaYIC*G znPC>0jJ|xC!^Mq-&B139fi1Ssu0DHz0_7(`|KAd=c9NE4G z9@|S+Wwl!^40ajUhv77yOk#cl&l!5mdXLnK*)Ts#=7k9{lsfi%vqA>yS-H8M>!{GA zy=Y2QQrSZn@_^^Cg$LhGt%7j z&b274qRZR2yXRAA*oHf%k*F1;!ic7txxFCC-Nj43{a4I223)l_IJ%Bc!(}H2$O-bg{U z$DJHSi)4#gx^5|y{Kv@8tV13zUN@Cen?H`MKs7p2!cQ(#vA6`8)_nOJ?DyC(nP zJJ7Q@z!jf3U3oN>v$W+@U!0KZgmhPhkeu~Z>yDO0a4amKB4zd7HkQ*e5-`z(%TMWO z%vUHP$|aI3WeZL$j0Z@z1av%vrs!-#3OCYlOJ|BJuN!0E^iPf((i+umj25F%UrBQ? z5XuI^s)eFL*)@OXb17)7pw((TdTYlr<6s!Ea^7-Lf z1ry0-ERBWaPRnsCJs9D5?Gs(INO@@$IA;jmKZiX-bc@XASlR|PSo|_B`)}5 z$SupjoorjT)oixN8Daz?8=-w#zSu;gpE7Fq~I6Sl;^hoMQbZCxLXVT3Y ziAKN{qrwqPT)shWbJsl60$hrOg&90snXOw3wx5&MCLEiI_j?74#;TEBPn;NKGGyFY9`}Wcc zB;1tSZa2z@FF26})t_ypKj6lG*hF`iOS;&K>ZG9sfwXJL+7LY!_q`3IC!T;ulc+rc z-aGHTM@R1Z_;^&FKzO|sI(%_S)+y?wmzOjUkOlZ8(@;%rbH_l-2FddL3xwSIzgC0x zIyO`IS-lXGQLeRn0oJq7!8I^>vkmT1of9Z4|zR4jW zhSJA6l{k1~gla1h)tuX+L4pjv%hhIIbw_Q{3iPp@G<%enKBNr54MKdqM+%eF9~Vkm ziA?d|J=S&E|IIAtu}2rn?VdTx9-S;*d^W=j_;*5EOf5aBfQXt&s{OP5PcRG|04R8R z!Yx>fVk=swOtpLbTJu4wAmMqqz3cbNkeJysr8YKK`Zyt(7yXtTPDQ#8d4 z#GtX~gGu8p+CN}q7Q`IzR1;!7FG9qcx_~d8Dt<%@J^{&0SdWzMq zsk1p9ENNhmQ)o4-``UphDe*Irhf1+}`5!Lgxr8>DP7iwzy;05w%d@`zh~?jvcJFqq z6kvz~Q(3nj=}M#f9+g91YEMk#0|s|rCBKb4?fCf`(byyXUMo7jUIb!cmTb5Dc7+q9 zM$+ei-LaB-ss@45arblgQIq^mQz-odgw;y|h@Ybg5Ebj6asy zW&}r0c=0y>#iLkjjD7_xrSx4QsU4%?=w9|+R6JC)Z!ph2H41#wzq0uCh0kBU%%=7g zu{T`f85TkgzdSCH<^z$?EQZnjDwc->*C*GLyFvOr-Ccy1mvlEqL_9;o@@6iFi@(6i z3Eop72;^GOX`*UA%x}}Z${Wr%`tt{d!}5q2Fa?!eqc4}D01fG?>$@>Sa~cO3re*q; zdl6N>W*drpP>}}m0c@;$iRwc^wAr7jVN3sO5P+8Hzqa3dVT?f}(`=VDK+_tj7aaN} zko#E19vwj9KS8#`cW7JetQEYJ($aF`c@GIRi9d4r@?}!7;9Z2m##sA+x&;%8VIyaF zgu9QjA*nW0mG*_XOMtRw=(=?`X3tfko)JP{3zgMth?Y3Q0kt013?r)_J{}DMHJc}R>z{_B&nsx1Y*$lttPCOxaspb1#+#pG*+)UQ41Vi` zVp5}si(((eY>{_NI5$%zIdWp!V11EoO-l`+!kmEF>g_WZ6yb~to2QGc^k-jcJ znqc$w+b@m3_-GeEZcO)9^x(^C0T_@QkN!;A;!4Ap5kuC_W%movN>hjw*o&Av7oDiL&^6>An=cH?=4o8tvMbbeLB-}lM_M}RT6(z$>z1J;5DYxh2Nr_ahdl9S0U;sA=(4o? zdzAK5LlRtgMBl94%0>Uwn+Br6@E1ykXE!Znh>Jrxr~Yq=ebQY%4Mw@`;*b-kLK*5y zk`R}<8V9Hi*Pag z*}*qJc$9l=^Qw_>k*fjW5~S%z!Gw4igc61XOOnEO-F~)%6f_C+Jhd#jk^xaepuSNn z|A0xR!tKT@sMn;meSLWL57Mx0q6Qr|(0AzO(Ku>ZeG)ckXx`-R>z0 zrbku9lpR`59Qc|kVHr_=*+==+D5oF2jf;o&HV)iTlt**WE}!D(L}b~~Pt$se$&~M# z+UAmdtoOlSv`Q;l06WMc$KCCxh3XRF{#76gy@kei>isy0Jr@2Qw7YIpY)v^8U^Mf+ z2S1ag|Ae4FC+=R+9Z8KwnMf!I*6bM6ss3*d880Ug^!t+57N7$z4cnMYIOd4rA^?+D zwx3IwK+k1c=X9>^9*C3Yik>Q+rzWRxvJ2w1i(G{a=AU!t+jve|Xn0zFeNVyfs;UoV zcL(@bO1%^ECq3o9vMaqw&-`oPBL=svUaKizo$F>fHSZXiSDbbi$)5e&^GC~+QA9K{ zno0hszyGBW+F2UJT3cvJMT>#a4`t)gX);d6KIEpq@W9v%oE=iH9+x6qp>4qvl zh34P(N&CNR&`vsFBIYwx|{QRPOK^9u^hC5eMf9OK9L3` z#J_`Ezt`!wSu`xGaJi?eVtQ*TNp(RujT*`w_D*5*Cu#=I0aRaDx5XR@0?xKNJtU3G zOv@1D%Oy1bZHB^G(o*{kvscIcJy=guIZD}Xh;?sJLc(fwl24y7@DQ8Swt5X>%}yLaAIh@foQFA>~&5>J0;W1QcZZ@ZKgdX&B>5N z`k06+l(uiwa^IJ=eejfpPxmm;(!1^8Y!lb)!)EhE-T1H63hyOX^ zzjPEsW=;@RY^(Ny_LNxArybbxhdV#UckU!0j-sxc^96Z>qpSQ0ZkdWx0#0YksSgF< zmYYXPQmEs#TFTF4N9#OJb35_-8&dqvwT z)6Tks4UgkBE^L^PKjK8aAj$B<`#+A7QbwO41(~yLVCVtEM5IhcvnF7x34#o%P{NFt znOi}S7D)4~-F9o?ydp3TyOpWau0Em@cQrg-NBY}6!70uW@j55mJFPn)z~v#DYKBwf z2uqJTB7bdsPq*Z~f+C5Im}jV>RV;RJD^wo<{xE}iSE4&+L=lCy-+kP?+}MAOzHN`K ze)9E5;M>ht8lU=W*4FULJpam@{y!SHixWwE;BTXI-PBJKdfpbgC+G;4+b-vza4d6&n#J1br3 zLr=Zr`pBqwllXEElUkc}YwJb!9G~k}71cFb*2cyc)w#8{UYI~b&v|a(AH|6@-Cp`y zTJCJ$%z?{4L5SQfiBF_VPn!AXW!JKlY2eb2MN#uKc*ycVA~&b)<%zxXC)%FN>X9~8 zOt?M8cjtPkD7R%h4&QnD@ar?(tr80SCHoiA?%?w}7r=U=A}7c-)FMEVyU4OmqAv6l zz%aC$J0&){&74TfBt2mwt(?@AN1mmsvQYM9+)2>){zTtJKBfN2zkePv zFrBh1d#5`1B?i6Dp^0=_5R*QXeX_4)Qobp3_uIoZu$rQXV8;|mPzUfPwSTFOK*w1>8NWW85fPPqmJasLdUaK&;%d$Tr1W)Ea?Wi zCOw^m75!L%M)rp}rRnRJZt+s3-BWOfF(iCl{!Qi)E9Nf`4>UY=Zr9e4tBG}`Oru~z zi*9XbkQGO}>Si+l?+zfq4uhE6S3p!ZMe1F6!$3>7ziWa1Vw!N5PiC)N;7cd#9U<8(?O$b?kaH1$r?QF zmqhrI2KLoD+OTt~yYoi*^E|7}Vp z=>)lnxr8$Rbk=T}!+T<1~nkIIaWB;9v z4=1??Poa7H#w7S!+3PpS_iP^teQLG%B-r$z+9vVrbd}7DRc8LVtuV$v=ya5A{f|wH zYEn6n1-=lC0M(#CI7BUA@yrM8tYOA0w1IuLXsxZ8_7arQkwWGThZYDPznuzohI@vg zGyClp(+cUAcWz9=2-hg*sqi%mFCWboc(Y->EKJg_j()c2n34sHUBsG^ur~m0y%3Nd zG)+FIW;}f6b>6bw*~s|WscpY%87O%TpA^4@1T;KdUJ_^l?ws!?*QUiq`v(Cy7SMub z)o*AlZ(xk}pWTLCq*b>BI)o31-N9Cf|B3=n4Hz=z-fw-gqHnW!EumEpJ9+@MNBPe5 zn{z1g+%Oc!X<1G!t56rr+$u9-cX1w|xv0r3^l;jg5vxZIk2+Jba53*=6v06`?>2p* z$g|@CQT|o8)Oit$q zBS-XfA&cB8PGRQs}Ih9wBK{V#8Mt$InFAxt&(_UGNS zOn*b9!zXL2B!M5+)tRqAI?ZRNxpN-R3=mTrlxfw!*3F%r_vbg91$KO}=dd_uibwy>=*O%OCILtK^*{uf;$5?lCS_6fiJ)ne6wy1-O> z9oJ`w5v8M{zbzv@bJ{Lfp;Y7v>L%TKD#V;(V}JuVX#=k9Qw)jrJ6=zo`aG(Z4E z)BxVCT^x!$a&uhV!9>Oma%Y8StA5;Wh*GT3(F{&kq`DP4*etmHBUsgMmn=Rf9Zvr= zT7TIkt=^rX{VVjDkbcf8OE8HWz@s?e+F;hdz+PN5z}rPaM)P*5rW>(}ve6SZ<~~VZ zQ!>)7pPGtvQR_5goBsbj)DkB1di5?bq>56XK52!PM;=(#gCNI{C%(Tt zDP&xn@ItkC>35gRrstRzE;%nH-dDWE{^=fQcgybh&7i*b0J>XSl9$@&0k$$*Xz9R- z_TPQ(oW5Y%eCur!C_C6d6;Qc;OHcn^8Q7X$E_C!!s*S%tpBZ(ev-z1=jk{1(Jdv%U z7M?1UziRb0=%HjH9n0zpV6}Eq%3-}XK~Ybi!;o@md3{&W0yXSWba9{N4}NCVb}F;n zIsVw|i$pZ4EZx(ysq%nTpIudaO+%}>^6aUK`84!@a7OAc#<-&<-qG-6!hh+63Wgj^n9^BFr^0r5*&oiW)y4bhS z&!PFK)rr_;$cw`BH^+M|c_(CAf`z zcLd7Eyy&pK1ynqDPcQ`}BOuaq(-s};<~zq+f$rZbc_d;wmRWAj-^nu;9>wY6NnRVu z{sgk6Ige##W)=yM1)=<=LAg3sqNlTQ*#V^lGib*=$I2hJ>fTbBfIWW%3Lu^&lKfD1 zV&H7B?Aib3A_JWS#}w+uG@c68HbO-(dEl}eG?mg6TBM8Vo!*Y-Na9fbpcR7tO?7s_ zJu_^y!i{qVwgaCmU2fBbd;Tt@X2KB3TC4O!7Avxp#^UVWnX}klnf2bg?#c-&)*T@G ztnu^pcmYh|y+fZb9<(&J>f3NnIVRfV1bRe0@}=i=m_|`>7h9&wd6TApJ^mTbrxS=_ zUBh5HapY&@ue!OPflw!($l$=_9GQIM&1S6R3!UzUdvx3yFO47CaY%fdJd;E7k8bt< zNPF{msQ2i9yxbI{J)^AA%1DyzyGk3HFvyxDvhQp5v{`a1E!II8gF)G|rAV^I82gfa zOT`c}zUOV}-p}pc-}n3Y{Ql{oMl;J;L_JHW zW1nWtCgwR$c6Fxgi@pfP9RlN=jAuY3vJ+5-@VeNR-D{tF_W*v<@cSayp-=Z(7?6Lw zk|3YVV(iDU_6vV|XnJ_)>|-B;cKrStY%gYK3jl90AxHHUGNdn_0z}vhP_ohW-?#-O zi?GnvF5n*WEVC^R#|ftec7;Y)4%o78xrpaAo5F9mWdQk@0RqMj#~SY{3A$DPd2NST zcX82{J;&DVU$&*=42U5xJ16|xQR+VoV27OCjMD$~RIA^_myXFYvz*1biZ7`JlxcK& z_TSn2cc=QJVn;4MPW2S8C}MI~8JH!9bqE;J$VqHH73Pj*K(+hb9@dC`YlhcA&yc5- zd-Vc57han#O413_94m43H^0w~6^1y);yRI)_xIP}y~sRx{3V$9jbt;;pi=+P*&WDc zqEJF*mv*&PsJ&2{%^kEH!P=r6A;LxGJ>-VSx;VF*>~8#q#JhzLo_hH}*53xxF07y= z;-v84b@ELrk0Q0A0!&gv@i*e%^dRORcKZ&JV53IbA7G`$ZNq2ocTm+QS< z`1=;06CbaKD-O-X+fU5k{}s*rdhG4;++tvz`T3c<|8;d49?Q#KbwpQgAbHv?4$})P ziljJ;%+R&{72%afQ`jOMZ^Of)`9mk`646q}Byay7Q9nKl0m?nR#Fl@5x_&`CDjl{k zZDbP8PQ(2ju2BF(Z(%!82^F-5>US9P2H#bvA{$UkHz%#ER}J>~huUchWDN~a#5RVR zRIi}iIw)=6jJWyb?Ie7z5<%8mBYGWKkKaahc*k#_t?>Y2k4^KNp0}n4w8GNmfyNxaC@$~YBDiz{*0(;EeE^M)mufN zLzgLQ`hE9jhE=l;-QWvTo3ufD_0cir3S_wssB%*slD#ex>i^x$knqh+)p9NLTYVqo zeUE8AgRvN-cHDrVR6DTb}2GJbt!O08j)fvBu)*V#oq;_Nt~L^oCD zpwime{oCp^fn%vc{}+(68(S`mbH)*pA&Sg-vyojJNM5No8WWpgj6u*hZ$Kqx-tD>w zk<42~E7wZ#$9K0Nj_e`IakPnV`X=!QbdA}-`I%766{y$SYu z))Vs%xmdHZ!Umt=#?|1$^vKgo%W=s+E;9&IZt3MK{^b$>{u4fNgPJb|Ca-wB(OOJH zrNar$06}gFi=cre%pJ*vnLf?PFf;SFCo5u4St2|1SVR6zgJtg}&#jJ=T}A!qyr%-X z*DpLhnhnD-YP($fwm=52@uKee!_RidSN$+Sd(9~MbG%_(82odOH=TyVfcfA2-P$q# zjKF_=r+h7F*0Fd_^8g(IgCAyqVaD!HxNpI`gB|%@lO2_s zHMq&SB6sS`DCf3hyyt}gZFL3B#k42$v(RVa79#+nW0?@qKPTS)D@P;H{rt&_yFY>K z#CN6_K(={kF*oGT^|y~-c@X&lNFmaGO2pmy_lLyB(rMVG)!&QNg_vuKu9cY2vadhf zAj}D*nhc;ZNptbiGbc!U_)n&SDDi=MohhvY>sH>XU$C?;W{%x{19GGu(MHkh!$U~mGnwG;*z3M9w(uD-Z>PP$)G1r{)h+$&Qwb=zr*J|l zjywNhc&mTKob%Zf#D7C{7I02mqx52o=>}_lV7!J zocKsOWVlwg{27Ubs{Cb$gti~BWv`K(DcwJC43BoO3e<( z+77R*R_xtX{q?VZ`uk7#3_9s6dfFF5kSmE9!vC6VI0iX@^|u28H-vM*J)=T-P{=Q> zJd!aacy;meQPY#%-5TpdmoGA`CtY$Vf0$m1&6i=JwS)QVh(6YY$lyki1p9BVtgK%? zqW?j>xxsNS7zlxLy;h}&h`pOXSMY$b!#ND@p=Iyu7%D^Fx1Mz7;3s3$lRr0#Bufe#<(SZQhr-Yq-0l zBmpC+p+7Wo4Ee-(#0fO>GQM36;eDYYuwUokuG3;*+rCE-4=w#KpJNNQ)T?CqAD0Y+ zE24ZYznqTYQS>mkMkAmo@#E@(K>B?oOJhuHUEi5?z6Tgyuo!$QbDOvMUo4&9I<(_H z?o3AHi^MK3U7Jk7uXsV6Ufb**69Uc>ynLraQsZ_9)nAm~upTpfO8)9D#2qNotA#mWvOFA_mbVZ7sN6mbQY|Cfmg92# zJUwKfC+Q(tQTmr?ym#$`)OfTo`I<|5$LW5vW8M%5)IR6gYy9@gvW1@wUAJxbVYB0`C~z#P>%tt& zokv;4SIis7hZMw#<6=?E=2yuK48iabQ?-Ay1s`3XP<|~0p8R#9|Mt`NeWh>9_4dJw z@>Hg;SUYMR&;FGI1{EO$<_5L6l(638s_>B9-{^iyhyUQa?(^Gwg(kswkzU`*xwhbc zT_?y-4+Q{u-K2g{YbBv}LO#iR={NecTu@aGhN+ ziSogXZwLQv+5RuyClEHr!3|l+4?Ex!`l}D_U%{ogKOh%fF2wo=-0lV;W8(kZAP-dO4d}v0!A`2-kdJ2BL=j?C`QA|F*d+8!lhN0Kv`kp~K7aWaLXqz>6jvdO7=Z~2)P8F;WbXXRa5RYWkUCF5 zZ6vMfOM@U{tiBxdKip275qJI_iw)lnhi6w~HTQ2-kmarB)`CNvUzNERwiW9}C#|99 z=AigsbqDdqYiMA`@|QTE>=Se5-|HqQ1gOMEax90Q%kTU@{&;u*vA41A67Pq%-)SRH z9KIWwR#(HmZtW0+@xwdV58aMNJklJjP|cYKp1(ab_Xv3MN3w5&{=?YpS^nl%xFzVI z;aW&WPx;rnU@qaIv3{oXk8K)PDZ|THyL>d=k%GsExnHklDStUK`K#bh4>_B&?)ly5 zk;m?bM;0+um_ber<|0_mKns8IU1I#|z^nBK{7*=Pd?b1vxmTH$d`>?_^;KT_#|Z>a;f5@m zSW?h3VD~?^X8Ctf2Vn8#Lpe4gcFYZri$1~XNRRje_}$}xk=kEcK3b4%hj-+g{2qFR z#=vv@{Mo|3`hWiM1UrwwO1*jXu^ybuby(Eq@g`y0m3Jp9!ouN{cSRwgmi^9u9IC&$ zEqpN&ek|ir|MDTw7Y-3*%Zi<1@zCMI$bmk&wiyQ)GFpHv`==1{`hVS9{};#1EngXS z0l9_GCd$XidMcy!Z>;U6d;;uaS{7@p9CBoPH%vPaytw`fFxP$!w&?#er-j)o;p#_Q z*0=zWdwg1U)_kyd&!?&gD~o#850?5s^*&?dwGJe(IsT8;M*f+9z#Zge3>J)(UKORkYEbLp zwDa#qpyvPm;f|$~@t8TW8i5@^+{b?|5m*B8ZzlmBXn9NjbMu#9z5^C;lnH+1ZbdNW z^E2yMIailiBLTiTF;Y|#38_x)PHN8!;cLIG-SWdQ06xQJ{f-5( zc@ZREA8d`ET-nD1TJUx3ho1b2>^NBH#^2uj9~P?3m(gaP(i-jY|tQu(s zb<}KteYp;9*#4C<%ci?)tK=|uJ7{7|z|6*%f9^li2GuzKzY3=Eeu(w1L}=VSaPd`{ ztl3W(FF3fJrUA0Z0|g+d!JacAzmk(*X7>SrvG76(6Qm*wOVfWO0|rmGLXW~FnDH_-pT`3(60#?+Tpm>J--K26a210Zu~(a7n_mzy8nFV%Z% zSJkJzs`up+P>~=C>kKn_$zxs6JTd-QT{XGsXk$9t4&EWtv%%Yim60ul@((P8@vd6i z9rA!v!Dcr(3Tv-yHt{^-mQ{8~A)(M!I10h#gxXZR4_NjYyN|pcRF;&4lIpzGe1#T zOiM3<2^%wuv)!8%q4>blXEFNL=nki5t1GVMHCa=)CSnZc&$M)TFL`Zb^H@VPEX|fT?9e41W*sO zsGS1ehFPleN3;Y*9fz^H(9)tsYX=dJQTpSefD{Psc|yx36n*-6R41zvDo0~7gv;k* z>j}o%rcqAg(Cr}{ptq>=tuQ^ z$!%ZX-P=`Ew@$zvOCa__r{q&k`$`@ITRH2-g=WyJH@+yhn3a3>k2Fd8>BS4MV^&b2 zNE}PWQZ${+>&Mg>%n+T0S!;?)&*(j@H2R`qOsa z+ohnib>pJ+w^PmZ3P%fu_eH>zPa##qPsZ~l-H5b;RjJQUn2)SFX1p5sdd<=5dL*CV_J-A4g-F-#nw8%>3lI?HS}lM4@;yjU^v$p}jJ^GW zy8+Hmj9ngbL=m~3Aa9tF!#lUcIW!nylY;=nUpLKgeuJ}{0d=9=;UT^zMkv_Iq=y^l zBwpz{cQ{Iepgwpr5*VNzIysh?ZM<>sp-Y>|LH3Z;zR(nTV1U|__N8*iDH8K~t0X?u76pp_GAVMa@nm`2I8fk+AYa;Bj1ZGwu_I!>eAEi(IqDh zMd6p1rvxkBp*6!85Tc4^>CXe1Oq)0zLl=&cY$!LiV+zYEw0`cF;2~w-!Ir?BR4qfgu_W1m+P+cWeCwW z0;S3Z2+Mg>i&C|5jKt|q(5_v8(bW6)Zw#1;@%SR49@YZVBhQHLM=!s8=TTzbRhVxD z%z>9nf|bq1S;$u@GcV^uc19*qV3Izd-Lp?%^VN zOA%3e2e=J}N=aj5;MN^m?+l{yi3MZGg}J(nCQtRRm%xB`;fE9Gl{~Luzs@Fur!To~`$fQF}TJ%1#OIPCP-1TdW%c95FNm|iIK6mv zD0k;3rT>lz0}!sOt9l3$t!dnsPg0G-B=Aoo>EAyBaRM(mOSA~5Ba%BqOl9kPH9!x| zjJ2)nX2`!?cdkQ#%loIDMe9qG3Tx!%697H2FTFdn7Y{{PUPTB@!g+D>AAQ#UvG0yo zAfqtAh(T}VfV7=Rd~yQl{>?V-6A&amjT>Jhuh~D7iPvNbG&|giC(wanFA;bGb~h8zxaa;0^fRyo zf(Ite!7utJhdXBH0s}*;`wl{~@PM8LqNgj4>;`m%dnK#M&;-xo!ilnv} zc7aRic&nuQF{G*h@um0aP(yV7eD81@TzEr^OK^jl!r7goksgCF$-*dAXQ0$-p5Hxk zW((sf#{5Ka#BHbtP=Fd@n&wBCxF|Jo0%=juJg0>-p4fgkYYCbM%ckeQ%27>e2t+w8<(7UrIBg};c@$N!S+ua|TJ{P|AA`nK)VR^e>lZz} zaGBqLKA(K8IRhTFz=7{%EyJ*4;nU)M<|%2{1&gNDD*nWk}}A|`?d zx!!!uwxIgG$X{&fq<3M(FNFMFivIw4S$OK)wG+!OR)iZr>WVrs7lG*=c|(IaN*3vy z+SL2(0&uow_rnCsI(v>9w7n+`!X5__*pV|XI~`O5@|f3A78;;QAq|8WgpBzI<$+pz zJpFu1iAhRg8{yJ^sj<{og{2l)gdw*3HZpFrN0dbI6Af9&??sJ{{=CEKtSvMm?!10O zi0r(X6f{c+hcM5w@ycuM^tfxdII86g`g`e{6YHJ{z197C4ZQ6=PT@Zm9{7yO%)q^y z15wcCxSdE?#Uq-81P$i_3Ce!g6S;NuB<+L5F<80$Hhf8WGNbL%i_yfOt-m92pm3J| zgdx0fv-%G3bZ%f@NxlcAsZ!U8bhnMCv^#fjIlp+%(~ zsR1HB)GDv{Ho_KYfi8$bj6czAriwqE`DY7A)Woxw1 zNgn`jUY`=G6_hx;l{&ISn_N=H?ZsV^Eb@ee0=V(aNR-FKHTX$yOvVHr?OR2P9F&V6 zX$k!RHWoF=af`;u*ZmJKjKd{RJ-l4c1r9)s{ONc ze0Tpi1o1)K9zV6PjVN#N+~75v2y0DQ?q1UYXrX{s3B;*r;V4w@kTP$i5w13+c$6v!DIk)qS%H*> zffJdxIN-QIlO1Njp^?hvF%;#}w(FwwB|@xyBm=mK{i{{51jJ=HejXNG2{1r{r!srv zq31mNeB^78Jg7CNCaE;=2Zbn^62ua5V5Y1%4 z@X>n{Z3FZi7y|~(Q?@I^u=%2%3`Nz^x-)w{ACL7GZvPHpY=6M`2~!}k2HzCGxF+~y z4{CXfnbns{MVFmIJtHhale@u>q|i5UO;?;cQ|JcMy%#OoA;B%g#L*I`XrRBH1GQqL z$DzpU=Y);-$CfWZ(|ZN+PKEsuvWV9}m{vI5gXBb^;p{LJ*ND^2dWB8T%gjlXaK9Mu zrG@UID!Tv%{ z1;!{KiKJ*FyQmVl4^ivRvT?sy(ib8{H*^&`xeUfO&m|MocxemKEiiv~3%mk34 zYg^7xOtNt)N61cz5|oal+(uO?s{zyWu5L)24S-ZQIVD;9nHhyO7g|^3 zor3VxYeT7^A|*9Buf9%ey?s&la0yd`b>TN9!Hx)X_Xpy%AAM1j`}4^@;ffP!I@#ap zexf!db&X}&0G)XP!ho&g;l(65bGWRE^&M(N46x!c2x}N~oc$!lM)i@JvD6Oxv`j|RJV;5Q7eViDy$CoY!yqOG)*|pvCb+kX z&sU9qk1lv1x)3?hx*3i5OKw&=loM}9uMNso7DQ7ewyE)iLiGD4-+NRk&<{%-e#&*^ zgR>&NqAcuD@(eR5#nAPUtc5#9NOm6t)lh5b0eEmzwZ@{D=l%2}B(hBm z4W*N^YeU$6`UQ?3S_a@yy#(Hge zQJejQStt^7*VgFaZlfK^BJ2qzB!5gO5k;mA&KI8}KS2|zV)S()O7yewIj~$2WfA!s zXQ@SH!1ZRMI#P4gD>Ww0GsYjvto2(AV#Rsk5MpAw|$ z9p*+22&YWfQ965_8w5%!-i|hxn4HEe3Lc1oP<3R?T(aY)`8&TrqGgu}<-S{gXL(+x z_bcNhiW2U$I9Sb}rUnWY4|nK`={R;F!^$)>PAmLDzl*sisFAr;L;Nr$aS9p$=g>d2Pi@5_!uczfIInGfq5<8keGmkWSKc&^nB=w+}_%A;8C-t! z-f0Jg+T8;-5LqvssXk5o~V!%RH(ZlRZPpo zyygMXT*=B^WppaVsy&D5%tv0h+T?ZHN~>z@2%%u;$G5%-(5rj}H-%{GYu09z_HBJZ z;?|qc?@=!4+!P#tG$=MR`D$88LYF@>B{2PySrfg4V7w7#NgitI&!HP<|j7!hvRfr8Yi1~gQ!m8Ah=0^98LnID0%hH0gGyE!cQXTYg zI=J``zN0}qD^Q6%%;cK@xCyevwxOqbqE?pO=i*Y>`t5DX~1WW&1UG=?DRYq&H| zLAsEyIWF8g9Br#<5hPh`so)3FT-D5ll?llOsl;j}D`H;adBZu;fL`W|MGz90lF@iG z>kY`papIjPnCb-LUDQ~9xb<~J_OjU(9a;#`!|@qLru+h;oRWl{EZS84y)3`Hy#VIhIBzD4EbP+gr3LfZl={y(6av zAb2Cx4ow~PuM{)}_e`hnexoA?XB}DNg9ku`)Z%`k@**g|l@|;m5E;yvFs$G^d@*_) z7frgYIXb2sdm%uOsg-%d(wN~=I5iYFquJ2EmlT?$?{-AM3ttzK!J^_4w zqm&)F6pr!Q#(MlfRU$Q~VIjKYs%NDC<1q&Zs7=}xu)4M1l-U=<>&s3wpMd~0DAa=P z@KYWniC+Q$r7B@9lnKLNQy2DxNgB)}sa4bcwemssalMMmMsx~+!?&G;zZ7+6^nLr) zp|u9oAvF+ttJOH!gpPO%CKQwg8Ki_K@>}k4awS$Kmny~TM&9=#7AJ1n?C*CSRgF1C zz&H_qCXK#C86z!YwbmuytN0UrtP@0n;~}c17NFnrWyfo_>A`I)Bev?kV!cf23^Q*pp`Uc;DT$SuF;Y3Bs&&K&_KX@=LtI-hv8dX9tlYQi01Pm(IlT zEMxjEdGs;r`)+$i(%7pj(3r|Pc}X&dE)7^A=`L(qW=l|R$OYc=X|@EqQy`Z6l&^Zw zCX5X;Gy95zayho_`-pMFP$=Cvk{$MRz~l^Ap2eB74(u-bal1YHg2fbFnA|TyYEOwo zYn|NoqkGF%nQ1JT@1=@C1)NNFF9QB`-<(ouQg>~Sy7~P>^sAKo5SMp5&b%W^lTHh> ziI_9%7TG6A>wOVAZ@^M;nzO_N=>Xl9v; z0)uHK)FnukNV85lp6ffAUISWd{Hhv2HDG^dwJc;JUTMvomw&Q@ORWNJ?6DH!R2|vQ z{D~dL;~L;Pnc0HXV?i{*DjgeSEy`P84;e*L2=T1B)BB7>{5wb^qcfi?+MuLHo(|Cx zx!0<&8eI25YYdr4&6Ly?^(n_X_Z|VH`da3!oA@6XkYc1 zuWJl?(@I3?ar$B2PRDQxQ6K@-V@G9;oBaa0Zr!x4Z@2|*dNR43W%_dB69EFDG@od6 z=DAJhO-eRrcJf~LIxJN!*f2~%-;y#J(?XhK~12P5Ko+83_VjE zYGHQrSIlg#iQnm6oYMN?%38XJT`t{k0P|cfl?}=)Y3gvJ8omg z%cxUfC(t*i#c){*P!ZTitt+{dQ*{Rw6bbR1uMuZJGFtYNkY5`l3)i5)w&kaLKFJRE z46;YhSK%W{F=d}=L@(6#rtP3v^g&9~|j`h`4FBTgw*{sA|O@-SJWKTzwEy0<$Q#f-?v zPsM+AcULc0uerl=5c~Bg;VNlNy4;rkozO?8sMGp4E>FeRo$+=(K~OW%Mq599&Oe;W z{@CbEwcaANHFTowoE)j^BtXXs>c@_gfmCW-vd}qsTy?S}r%{Yyz9VG8jk3aWO?Mb} zxBUhvNc9h$oX`}yAoocc=!}g>C$iMmOC#<3wds4Enl3>ByRbAFDSBFhpiS*$`iT%N zLr;;h6XvnEpbNbtKlq5Fzi_uRAl}c5#m?HyM+@;*at_=apmiuy?O>SZD=1u=I7$rb z+&eCsa}Vh=jNYw_09<5*lE7vfEW3hsVcF?gS$tEstXH}Rcm4q|la%KyYMSe^TU2Hz zoR*?B4drJ|LnH?G49U342=}@VD#c!-ETSxTFzmt(3wge|qHnBI-I0C8yCw67`vB9A z7OPt1SRLePdQsD=)AlU-8FWyZ*XZeNkc!q!^CYyr?11JHC75xC1T_XL3VJ z{%CdVGefP?3zV3W7l5!gSd>`4S;PZq`Fg%k^K_kMjrWweXM4tE-E=EK zj>aN#iWsnSdNIZ#)0dYCe@X}tmdP!jbRP$7f64i}BPJrbnBG(HMV%_{dLsJoS%9@K zp~L~>A}0a856ic2Q#6t;t`JtUdE_g}g{KqJp>z{>(X}Jsd|+2BM%*|0PW?VI?a9Z* zx0pRg^^f@auozPuj?<8uRRoOiVstO%JAW`^t$w1KME_?zO9wB`kjX6?2H4hT$-B7+ zewS9~St!kXC|K(BOvGEeMe=rPT+$wr>JL3R4iNnZi#-ZB6t1Yw@Xupa_cUt0fO?g) zwIqljm^xjfR1{?H*U};g>Y8NR8}uo}VuCNOKNf)X$0VCaq~&(CUF)|&g(s_-=PV<| zfW}2dAZj0?Kqifxd7u`1xpyYYrAwmkN2{M@o3=w?o$P|^8w0Il>aka}==*pnMwvN` zC>_iJX_qe@k*cph9Ew1ME`(>uL+_9(SlAL*f8@t==xUA7pFp4ZU^4r1T%804zcXb! z^AXL1op>LMQAwB17qtf?M+^9HcLT)y4oyQGk_!Tv8*6jBw6eI*V6IGb0|c~fy7-F? zih1M2E2x6IPnwWsH+VjXofIhx$LtyNY$O9jju|@nN1G^bKikk0wvU{*C@@}hVt7Fj z_oG?*)D1Y{sZgK4!5T68>Rk8U!FD~Sv%_rlrplzW$e4%`&#gMcJmU^WD0Z(5e|3Lw z&(Z1ZQQEfWufDGHNXhqxu%b6o04oFT?qXe03!-|^1_k6jO+N9`2#n&&@XTihsH5`$9oPe=j10xNVAMGCx_j?yg1v* zJ7;8**SoPDpj_eF_I!t-`heLBU6)n0v+49qaZ*l>%l+rvXCM)lD9c>!jTzW!_UXmF zV3=jyHyyxWV8Rq~iZOLV+W7Fc({obk#6*(MUCiU;mxL5PpM)xXqQ)K#9;^{MZCxIy zy4$Nfohmd!mwk5BjLkrL9|0{LheJ=LdxH|?3)-deT>ZTbz`$3si@^zy;R1+C?Zl#m z0*?HgfB~bK>^6l$wc8`x&Aas0he2cifa5scHjlJ}{;r>&3h5Djfb6TqeZ`T0dz?K- z2`TF>uzo30RID-3+6@wGH;^&R&7S_my%mhyNZ~Hg;y4*RxA!y5iR)u7^;_~R$%_bu zq8*lR0xsZMHvC7H>$M}FkCdvq3p(OzH1dw<)(ed{5labGbt8zZG19-D`ZEbC?zKqY zZN|ydv;x1U1((>ek6-WqW4F;;djnJAi&VdldOj}hKDX4xa~>?x7t$FysmGvUOU2I+9op{ z>QD>}6RtfzW+nqN&8sgyeLqCtD84COmp40zG5#20gK!?k@(n8wn_}CBx|Ph9>?eOId~6RQFa|RuPKg7HRqsucmbCd{yxM!AlNA-`8->0IB<~G9G)RLikG66YFF= z(ZA$X?v3X@Y?Txs=!Y>F8&lxX3W$6=A36FS5&O}(RYumxcZUi-tKp~nuXJ`ab;|-4 zfYd{pp5CJmFzGwu96E6gxTvoXEeon>!>l?nB*KCpY}P#ncSFB>YCeLC;RkS`>^Zp> z%C{rZKeN%FVo%<2@0NQfzF|cfLL(3EYE%q&!3s_*zXd^ldq0>CL#AQ|M$?d_HOs3% zTgYrn-dCugGV9GhN4x6i`^hG`^eY151?@Uqw9|Mb!D1+=VB1K6X;RM^bXZtyirc8f z<|rqvYZrJRV?$>hS@>)#O8tP*cu=e(c+P}ZgUZXdbr^&P*~bTc4OTAf?U%U;_8l;& zVI2B5@89I0+=fN*9w@dvY=^t8jy@Z3!!O*=p7b>igTVwPfAuS40VbS7|2MvM%*?}g zZ-(x(8b;+~BKuIsnUk5ijBsvWKq#|XJV4QM)83oQ7-DTBKSzIf-A(?agcxPC67_J= zfUzTB!%`=E5YA%q=PQvc8eyu7i@?x{yn~^La4|D1qbv@4`+JDrBhxVEqv8tWua2Gp zxX@tX!!#>@OavmB+EueNpxOmsz;wDB*n?(ELR7D~W4MD|%t#KSVx;cf_<8-D#;Gkt z=~hU{5uK!>Mtc2rpj*A(9eKem+p_f&6EiXHMTw+ky9u1)oJ&h za|STP0rP}Uh(HXK*7XjS(Lx#UQMeE7f5AgIZ-ntb1>TmJ8-oqJx`NI zbs}lBfS5XN6E5s2d&4de&%$gkGmQ6tshLXMD>%IP!=+>)Dmgs0WJE_22!+RKGM1?{ z&go^yBZolfITsn!Nepo``sHQyGi*SQBO~~t>UJG4>DRfXdz#~?6;MZsm8O9Y zKO0!|^+={-Q=6X5`^m^m*bkEJV!`DijN~ z0#u$6H%9}CXcTdJz5t_b@$*tjmy)EJuNX>aJ&y9T`nj-!Y=reur-?QZ+vj6(M4t%_&;xmGKS&hwxEU zFCe->2R40^7j z=Dkh_GF-Dz;GyJ^rS&O6wd_qcxB{7x7mtn?45r`ZESKcHqI);OgEV<=S|+8~r6wV4 z%Av8l8*lz`glS9vaiy7iNPBVtS{ErRk}=rIZexv<^{dvf&bJEbrF=f6n2tnhHz7b* z+TG+=zBo_)*rG7Y0l{g>DLE{?b+W0KPOi08!QpRE%iVNT)?k#hsk6Jzr1z`ZY}6Dk z(TAn9`Ev^`(Nw~5qVeJW?bAn$Go#rF%=vha(T=*b$E@d-5UJ7HGd#EX;Z3o6G^j{+NnSUv*P zn2!fH?3oVy!6oCq;daVLr(pgAB>9IW$=~DnpRt@cL(y{x9(kHUdm@0(0&%ZrUPco( zD9tg?xMu*Ty%ry8vQXycMYsVe3PN*l7kba}DDyQ@ zmA^kV(Y&6Bny?vdg!n@7V%j=9W`PC@+1pZy3y8`II3G^;R5crH?N~KV|FZ9Ot!HwT z2MKDXkz@_syrpfx11eYix)fS%v)|yk z_1_?kll&g)&!WpP&#`%)CePCit)Zu7(?#JgYUEH5*SgC2u_V(%_PbkY0>tvPO!}J3 zIj1*#FS|Ch8LksOW@IbAg9#k+4q;stCLkkid^)BfUPu_#ikL@Ij-M64|8JbpXk(6>%3{NfY4ka702RL0!k?p@FfN6S?%SjfnIN^bELi7(MHbf z+jK{rW`PVv-$mbs6j-EfJ))!`V~TRWe&FelBhj=eyIq~~Dk!1wf#Fs+8JnbqQQDKN zh5Uh^9Y@|5YPLyO3`nM&a9I(*!^$Gj)2pHCWlsbB8D9~S<}F_ht9rw^<6ju{!g834 z#UU@+9}wm!3)T|$LqkZIkY6TwX+hTR^C@;1&ZQMBd>)S(wF}ITqT5H@__V7EZQlvq z9OJ!r_BwB!1<{Z!;BYoAv_WUZbyUH8J3?1X2d3tm7QNo^jH=jH)nYj8?T}JNXWp~k zGs1Si(a*0K_{KSa21{+jkt}XDs)#vhs&kw$!}b)u-e?O5j1<2$<|derp~U;t(Q4H2 z58VzQtH}IwRvvHYcR%xcmVbgi2O<3mmi&B)@I>-C;`$e$3xTV)$M$I0{YI&!B)P>8 z%-3deK>@857+po)TMI;II$aEP3mk7;V+z=v&GyP7mcD2Py-~0Drdxks*i|H;C)JH* z)ajI*!_xP_OqEZsY4KV3`jWx#&^{V$e^*mPi8<~~Sm zZsKw+ML3xCM>hrNWxM)w-Mrg|uvf=mtWU+D`xXl$CU5nglS5x~p+4Mf;MyBNNTTLA zcy<%LyP@v?-75x>sL5?}a|hgdXdFf?+$Fzns(@{sc4?u?Xvuan4Qwb=jg|+cr&Jh_ zX0{x696%ba=njW17sVj(*}h(&kl7_R^Va4lBjgwEL01@?r@Pa(UYN2_*`mOsEZ`M= zK^Is}%Ci#GGl2$(h^Rr>If0z0E+mRCaG3+JG~x^ACJ{~>h;nmbVzAq+P&XuN_1p<# zE=%BC%ql)NNaoBFu;Y;7S#}k=oi5R0%W6se!ukNli0%G>$Gv#75^=k zpfr+r+RL;id_X2JZtiZQ#un|s2B3pAYn+g$)WF1oI`=zfzy@>iEans#~4h*R{RZ8BW$Mn4N}pOpSOq5aFqIjK~Ai7t(+-ENibt^(iS6M(D>CTkceD;_JJu&?i7S zZ>2jqhmuPXVrC~mBWV|~-F6iW9govwYstgoUkWWV9QW0|7zWNbOX zQB1~+owi!;*87%g`KAkhC6mObuUl@Zuvp`)TC_CslnNH_Ec9CQvGJG;1wC8<%J<)i z)|?udY7PsK#<&_YqRJLQzBbr1{!$4?^Omhz+{fCpHJO_jHVF(l4HhUcYxqi;@j_RF z|A$}43ei%!Y}P@RD|1S)=r zbUo)ge5_msj<*w>!6lPr{ihMN5nHAgilq6dK4^ElQne3H@05KkrDR~2{REJ+sZgQp z;>qSt{u0YOoU{;8FqD2wgE-R4LErf);)`b_5CRhG&$+9Is`VB@y;0&!qK9(9onD({ z2i^m5re2P6)zqKWK(^}_P?H5A4jY9}&_I@qr(o;pMo{bz_R1CGhd#YwCP+=!pH!Lk z)t|l7c#&Xw>x5Rp5c5GjVh?f2je)*U4ZYhWb-`w2w)TW~LHg5zZKNrST7>a4dHLS- zm|`7iSf?TKomIhZr%&e&KaVzIv_Q>{&TD)Xfo6iUv%=^uWs%NpO`dNw)HAdLCy2wo zDJn6tomtNoUYvWhFGlB0nLtiU8B-1M23M`bP-M^|c^gi!StONmVRW+c@csPQK|4^f z6zXi(TvuP>V_n~?w|@Fr($TR&RLqFP3HrU+&%9g4j*u_wPazd!vu-pOj&N}@#@(Qr zI_@hwJIxU?C{8`&V31lG@uhdHV5UUQls%|RYkITdaaF{E)RcrfwtDNYPXP6R;yR^PIY{g$_6@OZ z*osQq%qiKlV4@bulGS!C=Z-N1c$?_$(FPjS*8~B=!z(%42QHoAGyztEa|NG0Bg>fy zQ*)`#yU^uuLD5B>7u(ycr|Gpt#+6ZwffycfF<<~6kxKKy)mw;+25*ylMAxFDLg`k8 zZ!oE(br6tZBVrjzk%+2A&#u+9q1t}HasP^sNh%W zZ)-UW-!F`^xGnjV%ozzeu|-cu&l19&gVQ~m)3P9!yD(PMip1_}2&XzhbZE69*;gE1 z>odzl1oW^n@N;|}8EK}4T9s49*121H5H7kelq@ZjxWA8tCYM}7dbHbDZ-MOCFK#8^ z=ew4^0CZtc;#YPRa14hl=u^1EP68X#g!m35E{t7@V0lvlQ<|7`wg?Y*^+NZpIWn%T zE&FUcpX1^8g!Rvx6sSKRMql~?ywI1?XMFc-<*D`FkXZ;ty`JCpkj4=}=jTr2|Q{lha;-VfWdX1MMOc-Oi;x>!F8p zp>omDim;FhDs2Yx*f;V44rtpD-49ytHMuX$TBF5-JkoA>%iKvCOVIYMF2uhaPnEz{ zHX7phjm}M5wm|Cj)X4#@h?SR#NzA7q_56I?b`7I15SJWIy1LuF`1G48@!sa?Vhd7s zhT>>Zm&j4vX53dPb8Yd;LyK$_?=c63)3WxLIV6WKlQP^Igw^IdE^MQ|p5dDvN=&(! za8nSsW0SY52zB!~3^}?m>7Z;x%Sd!K(?Coykci?Ro^P(% zi+dZ`xP-?(wceNSXUcX8D!XaL$?RM-7O@vuP{j~W`E0T+wB+zv}Qo-vkJus*FS znx>h0o>ah-6cJBjnXRzah{sR7#5t&VT5k+c?=z^=c{7iINW=H7RmYUP9_IjeaHHnX z7GeR%bbdPh89)#Ucp(O5od1ax(WYeYnk!xEtjEQQTK7mTMk0adgH9^9e9LT;-C~RE z-&7ej;vvK^j})0-5h0YfLiAaJ-L5}|v*fXSmh#IklNNArjPz%jHPY136OMJlgal05 zMuCd(;uyLk3h&z-8&#ORVx(n!*!3wzCiP_r0i;rAq`K+%Dql39ftjUBv-5;m?DfT? z1c-KhlbSvE$Rx!r5CD^MQTn!iDTFOBnvAkQ35?LfQxt7lij&hH>=7#SARVrHB|sX= zapVYSbM#Eqat*ep0UPQAQ?H2y@l>iTOZ>=X1}%B%_WbG10mSV?JFQjZNYT`Ly61BD zY`heb{565(DWm)6#lW3Cnl0)$b*9d^$aZhlnoN=v+O;y*M0Z$jxY(t5sEKBmE-aId zpY@h``pBX&t_i~xn&xMf4=%`UWIPx{~n~D*+a)*OC8JJYs zjXYoqDwlLz1hn|NKd~3g?^4c)A@s)_dX892nB}ft5 zS~W9{AUL8LoAC9ZDA?+YL!~@ z^OH02)0mCj+oI$}#GR_s1BnG_T!-ym8%$3Cur*gG>u(@Plh8s}b}!LpS&f@e&yDzp z6DOOHK>BGZiF~ThYb%=bXUSn+K&$aN-T~NvnQW9*Qx5bQiKp1UPtKV873HaqCQbq! zl_i`1&s-)+LsI%g;y97QKI1W-d8WcHE_EG;iI*NZ=9P^6PUmWSFYEaQmg#khBqpz0 z!BOd(0B2qiIef?;S~uD7Fr{oYw3Ejpav+-jhq3Pf$9j$bZm1~hvC7DJP__`+iHAg# z5oJX-kE|3~*^ix-Jwiyx4x!9sX3vJbC3{rf?@!M8pYy-Y^}g?QIWC>@JpAtOec#{l z8MR!WPQV(bEF)VX-on74{}S?dzcf*sCXC*S2uVE1X6v5|wY>W&2U3#>G!z0{4Ktn%V9KaQ*D^ z9qq_%4V&v8NkUdb-XV89I`f-d9`{LYstuP~#jiWksNMFF=hjc)PLCJ8@=4&@^P?vR z7}rN`mhO6KTa`q;B)iWy1S4sEz2Bv#{_725Z*Hb4y&7QW&OVKK& zUf)x7X?n^eyDMvvr>XJjC;P>4E1zPWj?>2PZfV?U07E6WY2LZ@Kr>ATsbBZh-s!N* zU3i1&K!ay#P~Nm!8y_1R#fIYBHDxv_s$%Kb`||8hmMkVK8oi_)Z8a|wp8RFBdrSu= zGe>0Z+aCS=I{>#cnRnmf_^(t!w#v+S>%0KmpdK@SPjG5ao6;@(9zJB1*m!fpvE=Fw z&=R*Uf$FkhNv8BfR&n+cu=_RX1!hWUGMm%gsB`a5%>5efT_Konq<0BA+w7ER-eBhb zgnx;MfvDGEmA&2eLB#b}#XG}*zOIV0J@wgB=G9%ZfaQsALdf56v%z-V?%PvT5UR9hV)3UKtR z*Mp)3=tB{SVP^Vuqh?kK8l#~_dii#4!Yf(+pWMptMJO&b9=FUZ&v;XtU46Q%gD9It z94RPzx51Q!sWB|uS`8|iOQvf`7K`IR_C#uu7b04UWVMGpbYMBB4&=EIozh^*t5@Dd zpM}zfXz)+k&D}XA;hsVolytXKx+62ePC?&s5ws$IP+2}IS#1~V0KoxVr;s#l=F z*R8Gd8z6$E;7-%xG>~sv^q_iUarm^$?YM{($#Ug~(7qY~3e&R^hL?QvPU75oyqQ>! zm6W;O#i5eb05nA!dt|O@SZXo0zwFCZ_3bS%CfcOB0-_GbxGBDn&=g6k?Il+Uc#oT37yHY*D~~VJCtr2BZ0ee1-%*w9+&=$n>Wf8@>eox%!|Dqqk%u^K zQ8})SoC&`6&ve{*IHR4WnA0;zT1ApjIPZ3?W|txnfBa;@7T?4b+!K8G=pjDr4_Mip zUNscyVHBwc2m0GeMYN*P`Tpl_dKoKY1N}Nyfuh1?UmnlL0!zz8z2;Oj0`hmX{cgx( zodg=gmq6rqlRcHqTnF7>cADDfKHZTs-WRH$lR z$om8@n$ns2pBlmd2&hWiH4)%>(as!Z`SPmNdLXQh)F{3@cw3ip+`+?0?SC*{Izm=H z)p(;^7XF-~Lm)pfcbT6j?8NRbe8)n*jhM02(!yvNnhn0xpocxLG&}M$sf08q)S?CY z*M15=zl!zl9t8nrQt?lJ1k*pU&2Zh?3yp_96sa`2oer@a><{5@r?IWBeRw~>o^YS%E!L?m!eAt@ z;oM{?mPY3A@C1s{un=5AOslSWo41y1es%wv&-)H=%O{+%LLT9vTTca!FOX!kPn4yO z+EEe8Jn@qyAdWqak4?iEu#*b+Pl>)+G=0%!6Z{T(p1zg{P+P0!6Q#e9!u7;e*|5wb zI>dWw4Mov@t5fg;_qRgsuAG}dR3O3}D)!w2N0Zrz>*wpgUBpu(BG{)g-bT+m{lujq z37&RnjX_1rZEfKbR6L=AQTDv8x8iMc>$tE9FPId-9EJfKW2y2>ng7F`K%0{cl+2 z`Dq9RWe--|g`f-*UXFiUM~~Ub0Qa=EAGhhOLhe*94RHA?7)`Fb?;6#ZKuho zqa9cwrbF9~d|2|2+Z*g(XR#_DvY3}xpWhH8rK_o%p42Q8*Nc4LyuQLGA;D{Q=C!o! z(he}yu!)a;CZ3iaj8ha>bi%wq2tNFJAw{;*>VpVts8CC9F%;p-`)2K zc21KXpM4P>$F7!v;WsAtIjvhN$l4sw=tIW60r1;)w&b?cm2Hi> z%=lWMN>4Md_$3`Zik*ICU5$Xfc&F>+SQb2vo{+n5jYB(4?X6+GLDUg=(8Xe17Q02Pbu+%}$44va0xC2?m)hU-BpU1x(Gp4@OF+)UI+6 z>6zKGkqQZ6ZyN?$Vf6|QpMAuL?#)YA(fK${R*oh%W#(@lxLC7|Yf}@5e~i_Tm3?6n z5%had=&i8+l}O9}9fYKI+>aRh>_%9I)$f9rWYY!x4Y@s=ZEFw9#WNz#-4AY?E;&Tr zC^jecBs6oyrS#>1@wEvp>{#{77A8XN!_rL)_4@vewPP^_@Qsa)nLvVz(i+D5@z$htBH?t56Oab~L2!gvb~taK9xy@nV5{uwEL`7F&wAYxj}0 zhCaT9jl{Hn!CuzCtgFGabbA$~n`kz)bsOm=owp6@{4b<_Wg8DVxjQQ)lW^(Ll8)&H z$Tdl-3MSFNJ*RUn?2*Aef#^d8@buNS6$_p<5=f|7 z8A?pMkx>!6^`tZ^%AjygD(}0$(<&5gsOU@IP$rdZAd9-Qw_6@}*7v`U)2h2i=#?I;a!=Tf+M953K_Bxo4KvZ|MhK zlcI`{h)(0Ft9oRSf#vnr^5eyw?7lUG1fSaRDyZe)Y z^gx<(K@Z-`}i)Y|Z*|Vwt+qU&}hlbNAA{vC?N$&B(phI=Lv2-C;}X zfIYNQ%e!#vSun>G8ciRa<*Ssq?5p_Lz07UErH0vHfb=4{j|~WwQGez8f?t-lHKCRg zWkjfBo+e&iXzL-h4b78NQzb24yp^P3<5t}!j`xk3nJc$PAOGkm*@0ftiTTrdB6pI@ zl1Mw5wL-`gU(E5oVH*+Rc@bxd)h`M=TUticX0sE>Q_;k69E|ZyZ5V#=P5CH(>+rqw zMY?WYXyi5n=?A;qqI2UxM>@)FO|-kiPi~IS$*;IV&C>==QM!26c(y!>=AyI8hij2+ z3$LA8r}0;a3zlq{@G!>-*0BYE{|V9QUfRa53I`vOmMQ-8#YYLY-mLW1@q z_DOv%rQ=May=8@ppW<38%?3;_6ZB+baN8`cAU)PTXLYA z!a2*?^^%v2#x~a(oF!gVe+3&km-&^OKaw2rk(FCe{YjJHb0jBZN-YjXJv>OJ)D-*# zllS|l&a@`5^T?^od9!`l3fg5zB#eY#d&r7BQ9jLEPG|ZBNUK+R>hsGt+C^Gw#r9yU zI-eKDy%FK=kh@5J|0^_fXoORU<3jE|JZZ=Zc^yJJvbq+S#32->UX}%DKdZme}g=6&_yt?U&Qz zLm5Tx|E5~m&HAw+BK9qSuvtWWL)|raRZxiU!t@OgyqEcUud-Wq@$=}#_*D+user8n zjJMU>*O=T>wpIZ@84ck{W?*)%3?QGEF^*Lj3{kAwO zl*D@5xt927p~$dmtCO6mPRJ69c3cPDj&0u%xlHD;!IXF1l^3}c(Kog6SnP6he`r`E zd5;ucw)Y`kS}Sx_I%=fLwhVoLw6l$hsMDuwT{;~I9mjv@NB$UR;LB+vwP2b8m^{gm z8j4y$y}}Rv45WGqAWG&G%o06+(XNWLy=273tzR)K>+!&uD>v!RFVxQ)M}82~Jd04p z`djL;cfKu#N4Kg>1!yH$CC+Y-2{|J7VC^akugPqhVnSP^a->aTiEUUr(P38JCe(cd zdLD*0S}FKJ@kJ*;nBm?mXI@#YXfc*vg_vFeWm=Gd1!`S^13+z(SNWpDBTK5T)bW?Tsz1i$y=>!5;LqQ_uXw{5H2ug2U4{j23e~#am9w3l z>wRTv(}>y>mo`#KG7gWkbSn@MGHfIiKsX?ZCe3`ubx@J3*Jmuq7xh=gnj7?WTb^g~(q z?r2E4c?<@+(S8;XSFQep4bY&Mr;f_ z++DMkLtKPt^X^7_VULj7JmkPauGy8On)|}md155+uG{uxlR$eCAQ-@qlP))n)#A?axgpr~nru%~?kW?fqmkrI4V^ zI~}o~k~_CHyLjcqStH7#3UP*t<_EIQYd==x(%)gzyoQGAT3$gjQf$8ImgGp`wec1D z7^OQZPT_K+N>RN~>_~l@Da59AswA~(YfA1ea=JZmVp=ypB~7e1g+58Bo$#nqwbiy? zvBzGD zoMdLDRy74j;xloR91RM59XjzCN#3sR@(S^6{^MY2yGHNnB66V&>WenWj+o~itS+9X zTylQY&dfA#9{HX(dN*T!yEW}jJ4gUq;~#^ zVpH$I{Vci3x_^D_m)9IfdF?RKYYl&Iah@^k)gHbzAm2?8c|2-66iIo#Xz9$o(&AYa z9W|mNf*W0FwHc4zv)V0!sHYQDT~*({k$x$Oe)eGRvW~&+nP)qanqjXvY4m!2Q%`f? z4mE%AZRxx(+-30?(#2^j6%i|QE90Wja#-o!8Y&0L21=&B$(!^aDsX0E4`%d*i^dD{ zw}cXS=B}Ug%mKIzzlP3a+$o$Nh|$gnYF_icDY2k`Ia=aXSwLF*J=9{184h3AmT`f< z@o*SlyD{n)tG@|Nf3>s=L&@s^{Rj#1zLyC3uJEy&`$Z7J5zef+Q^aya^Q0tD=)LU4 z4OS_K&KZ#RnlhlAvUxBo1}EC9P21Uyns%0EJ-gO%XJ-Qe0+D!U8_a`OLadOLR^wL! zyDNM6LiYl*5}Kc^I??eC=k#nU4XJ0BM3&G@{}ck^dos18i{rwlQT4-}4g=u{-?=x$ z({l6V^IQ;Q6J7_CaCxZKd7NB3z1Zs0=}g$qJkO%Z4z6*j0Jyf}P93CzH$CtW7MIsI zMl9}@OJ&$##X2>4_FfA`T?NHtqq4eA3)LC6C z8>^(P;z7!ih{~(-(=?;Aw~I~xd1F;7en2Abwu2>R>1axm)UMb7t|EdRHI{@brrfM9!OMFMx_{t=!q zPGbAlfN;wBG*~ZMIgF?h33$_#7Qg(V_z=)8iZaX1Onj&%S3c^hv@vLNQ8`j|*eT2AFe3C4%WoV&8KF2~F&tPd z>slf^Uh;xD`=!zYjdyOYG7lQ^e~mNjUBK_{3YI7XRYGCXHx(N+YO^R^{&pA+2d>iC z=!zLF4+gR(TISh3t&x@urGsI;PeB7M`VyiS1I^5i^whnh;*U=@!7E7`%_yGQo4 z>6Y4+gN_5o(?h(*Jk?ucqTCCO_SXgi0cb(L- zuB%_$2Fjc|8d=fZSxv*X#uq*~9mfr`5Jh|0AHplVMrZWxa3oQg^qrnntMZXc-MiH= z+od56^Oo@5U9K6n1M*87+@3Ds+TCTum}T*rfgxfGBi%dHCXr1ggePQ`kk#@KhuzdK z?xB9rE`nps3GNijFJakI$W~)J1?|Bd60iA6>1yWk!ab{D`yv8o(#qEOORtsB;|QrA zlFkj$+7X->Z27>H|GMCYNno>IJ|f*w-C&e1qpv_wpFhcA*ARA*c(?BO4RmFJ-wix9 zOldXM>DtB_+D$+iRCVv=xR4t)$%qD3jU~Lm&>U|+Gv`!QtvE7y6 z$(&DcFu1=Hqo^MB;A{88v#kD+v)z4b7Z(Q6{5Kx=1+Ct~sF{QqkvCj47h6q~j9)cf z_|a)9xiIMl7)G8mD?k6j0*DB23ms$l7G(C{bNU*yV)jcC zoV%5&Zo~+=?(|ES_IodmzkvPnSa&*XjK?VTNKr;5a-m>_;N;m!laq^e+f{K1T zx%uq$568Ca_Zs5Hi@%2}^6&vo`edBn@;2b)FTwapv1^2poA*O`HHw}oW^8Cmw%~OQ zHPboXJFcmRyEOFT?5xJG@oO5kVT`K4e6WE^c5i?M5j{Qn-M;ms!i6aw-u&{$+lHj) z&r{NMSqo*k^r`l_=(!9Fsg5=b)%)U)31Mn;7=8v`dRInNrtr-V|oUpkzauro(d{ieg{uU=?g<)pQsYx-85&~{u7 zoI{Ux%!*&qXAkWe8ShS}+!C`FTo2NB){}P+`F4lkMyj~j+nj`@_)#GQwpe3A)4^ri zcTw@pil{@U%lIsveTJ)~#x(6q2 zb3EiElM<2^iGRhIrn?=KHe`oY%Y@=@PeYS{AEMt;t`2KHxHooPx?(Wlp(JP$m;iW) z+PDIfhm%6ZZpSUsop7=S!CwLJ$NhSbzYEcQnt}|sY0H`HN@%WK!nI+%oCQ`^2gf<* z-%aPr##{Z`!t#_REDZh6P+xsHJ7u@^J?`BgA@T0}1s}A{s>rGFA?@q@9l|aAZa=qz zrp{5Kl#|3o(g+(#r?-6g+Z9L`MP7D)QFj(T?|IavFOG%SpA@`l`Wd7_A9@eGP#5%6F1k|C6tTo~30zr=z^#nh+l-!6aQ(_Psr9(;j_EN|v$|(2qI}M~2_2_sH?=mF zU2|eqxvC@*oX2tuy2_(Cj-DqKXSV$kT9nIwP+-bS!!u_oj?_4Ky%xHo_Z$EJA%5U&+cI=#7n&T z8HGpWcx>EQB#FuCIcLjdk9)1Q^`Wf=IZl_6wACv#(~#6#Zbz3#T8_S1Yzu0eFu~mJS)`3-0&uHIB_*AzY41u6MwKpmPA-O zL4TdN?-O9^Kj-r`oUqQ&>Cf4|a5X=%&4kF9pO=mNFpV^SBi~m&5s3MT@_v`b=IlS{WGUmM#V zraCNkEqQRwboDY87|ZgE^bLGR6Pz9z2Ag^XmITg!he$d_cY$Jz+W+zGcjZgl(W2Da zjgf*Z{mx2cay|;$%A0LA4CP5egGLeGb`(C#s43r6-R#im_m;NJt+!*f%dJ;Yi${7l z??WNh-4Y@d4i*BFvIVUjZb|!IHl*-xV1x?kvT=0&vFW%{SMucW2%H0UEE7TX)?Kp+ zm(Rm}C#CdR1YM;E0nylBqQLS!`eDrAEvSKeNxZ@an`Hxo{bQ3G&=KNe1x!t}bIO6p zP{n+zf}@5>=+~;lgcW%nY#1S1`qXqpF<99iTPv!`((fW%@WQVC873fzJoUw;9!e2X zzbaw*b-`i5Wq<tqS?3)7gqdvA zY($fS`qpXXY}?vzv_>g^T4g!0!eS)a;WPDlyKZFXml_gGN2~3q`~@2tYaS`vANRN1 z0EpsBTPm39?RUuZS?qdQ4w@-{(z?GtdvM{C#_oW0YSC1yU;w8NnbQvRKwH@MKu(Ac zh|kTb4bA8y=%Ua-SVf0j(kp`gK?u)NLs28Qr$`|!Md%R zmemo9#lWp*Y9!@o78o$4R;ctephz|0Sq3d}yuUbADfCU+T!85dVkzW@h+v3I+UV29 z`jBaE1}q$1DoE2s0JBTjsZ+P{NrogAOfHe3)r*2|{*Mpq(Re#vM z{2u>8N6~5%wZ&lb{_q##8Cxpli{1IG{%3Srou=aM3V$_KLI!cyVY*xtuw?P}wTW1A z)c&Xmld^-X$uGkk`hfie<)F&_>+6ZwL%gdZ*ROa_)TtsS_zaYfdZgJ>#D{t$T71VAcgGPA-uWwr`3u{sYKr5%XnJf{<4=M%YJ@(hyjZ5 zvRmpCu;4i|M!hxou8lued44CI8 z-g_K%y?ML43_axlj_s9z%)Jw>h}VZ$e2ZPK6~;@#EV5=B3HdgW7noMG#R;|~0E(5m zVGz$A;mlHlvV3AOE(~>PJJLU&|K%B46puZH!FOOMJX3n(B@UHvq3FZ3?-!N@`^&cF zrgT8;gFLU_1y5aR3$jDm^$G@SR zt7wl9XH zp9rnRz&RzpYEBX&6(?v(mBWrdygks~GSD2({D`4efq8$MAA)X@Aj$vi$^CBl!5?hozspOo^lNJ%h%ULiC3RmY_7pm`^y2 zK+q9VlBj!Wm6#jIbGLr0@e)`83HvEuHV=b&a6EJZf>hqR`xacVls0eHCO6V_`rlk!C^Hf4_9l z#NoFafb2~0FCyJ`Mo--e)aWz$HwL?P48Qebv~7Ly5$ixfXiTL-bXkvuJG+KvEhGLW z^3Der!{ewc=rap&yim_lw;-6PQo86e&eP8yV_y)EFSiEIM3{xyqHX|gdpXC)lOX=q zr-`5zpMy)I%JVTMd=7H(N5=oS@E+VfvgnL)?D|&1X1CtzYQ)yKgg7K z9wI#Yi_lavN}RxqveH-&Al}O0*pmhU=HCM<%8i6fES;KfAAL_!$x!@uO&Vi{uYLY{ z%+u2-tunj%0emg{vsZU|L3|*{&Lzzl?E+yJ&A$@OA8y(6bF|`W%4FOtpqfR+3frcB zr^vxQ2tsx0b^yt!2w;Dv#e)uQ1EN>g)G+sFHL~RMpe1Gh%#y!dL(BZdd(@TNBg&G| zHlH=7Kn2h!m`e{QpVz}cNhwy6vD_}EdH(RMEBCrN!^fSsuvs}UkrXS$2zC9ODv3)dJ7D%7Qvua=aq`ve%k86fz5HR_c#AvYkRObPwyUa^ppTSh8!P+l*e_akcF4Bkl?*Xa6XgE`j112(Q?QNAAS|B zYk;(;VSTa4`fhB!T>oo*7m@wHfzsH6{cjP4tS|G8^o!oo1}zN)S={$Bm2BPsVfPHW z(YKANrt6&DB6t#C=^-nHT^t9`*W~9fNF@Z2*1IP;Wp5r7y(Yje)SDb2D^G1$pX+U5 zlxyn)rNImKA6cV~j5;*L71MR=%|QU?Bk9>pjw=)X0|K9QJjLSm+xvvjr^pS2Ka)~M z^qG`q1!4*i<^EO>W+WTG?oaC9eunj)j8qS_e}Yz=H>i>Z4ze*vH z%%9f9ICP!h8TEH;y<1Kl7p&>lQ_eJB)^1S<#YF<@HGbRC?DNCRKL5|Ci5$Yu;4|Yt5jFWEfcctw7eE>yE;h z>!=jCrg8dl4g;aiOTHTL(*E1fwav9+Uw4g=i?ZOJr1mZ+D{W5{i-%)s$az6$b^WOf zv8~+=-b!dPRG?0;R{nqpVV$#l{8pD(r0mTEb94UYA-3oH%>^l0_)=Wtq5^QhRWhGkghv6dgV8oTHn zQOrmC+?t{obniw!UBx(`LHC2u|BwsFZhXl>eIyHe07}5EO%b_l!*5r($iSbbc?!TV zLii(Uh-A>Q+7>Vna*oD1#@iCnrede!LYa(Ab?P+muf!|j7MO2-24<|M#D-ws?Yf~{ zmRdc$ULn8ZBc~Cc8wRX@SDE*8&LiNG=%p6ozBq#ba86U*Rux>1)W(q@sO_at@~i^W zaBX@GLeUap^BrO7`6S2GZ6J9Ye#nKmaHg;{ZALWZWf-V<_2__X>j|e4ug$>yx9#C_ zwd;B61P3#4WRh`9Fkvp}pc(bA+)s*$piJoLz*;TmMSAX4W1i3vXs_~vF3!#BY!wmM z{!DNbSSTRhBehNrk+$>UwgknW0P|2d2LZwwnl!|N1jv2(mpdKA(eIZ)%>NbBiiyxe zAiBo_in9NsD4>(1q+;&BT__B^;z(1vx4HNGZsKL=&*!nZ<>41pcbcQbKsvPQ3PpE5 z*r3^GfJNY-{++OC5H(1H?+~izL2O0(jF}%6$Y#stIDyGi3|z=HudvaiuVJ5?fW)Cg zvoJ`uw}Ixk*0i#a~d@XuX_@jx3i^zKf77YegfSMLHi{F{)i3%72Q6|i@% z#eiW^xoKi)D`b&3tJ`X&zp2xFWs82f1{~#!{de76Bm3xGu5Hv)$M zXMN4A6V6P+=9^UVy&%grxd$yY(KqY~%3mH;;ThA3XS!DnE2$Jn#f^@)2W{LleVM}J z^oLC2pN5*f$Mm&jmgg;|r)u@@I0BK*WbG}Cy|&;Oap<+Q_aqf;&$H919kaOum0(_0 z`?Vy#vT5dk5|L9|0F7w{DpXQOi?s2dv7e^b$^E7nc+br+pdT(Y<*~K7g%X2CMf`k zFJ`D)vWMOGccd*%?`+fUXIDwHnwG*Es^vJ90@X*vXA$v@aspK{=FC|@0MNENYo;sAC^2ot;OIC`ublqgNz(C@pF z;fnptF76*!o&OWc^;S@yAj8!E1dP7d-c+4C`DeuANU+GX;~`ZMGLdO)H^I5!2o;=W zeN#@U@JowFe~MTWs!@STBsaC*=Axc=I@k}im{FnCcM|Rk6=0UoD-P~3H$Ot^@UUL05@CxG-4I9raB9||>%85RuF)4S zNJ+JcRpeViW?SPTd!bq5k0B0%q^xlc-XirSX5@ZDE9X%RWKrQ}HA3Th zvTL^JlbN(uU}2l<`Fjcafi=SUo8QM5p6sIgJ==6pE}%7|WDn43T1-4GHs2$H(-J|0 z%(>j1+cnANdvRM)cN4XA3@Dg6-(R3~tPM$~|IlaJbh1BvjUEaJ9ZQR{-aG$!q+#*P@G>JO$Bzlei;8^X153`JoNGc7 zg)cRoFe!aV49*Kk{er?N>lhqeeYI?_LjTHu%aM>BDNt)cLY5J^QyUo{*2l7qLC)Ob@GAoWTc>M2f*!0X zY(VYvc}UMvRX-q~oX_BSE?{vzq<~ZKc-=05U{ujt7!R^3RN5j;50pFaWrx75iVe3# zOV!RaBaNXc1+TjN5UCHWGX?%=)GO5FrO#t{$v8nE45^$a#}wl0qSlzoWVhs4`h)`m zSY`s0#awqD$P{0_D}(d9eF2M86LXlGxJBscfY%CQ)g=NFh9n=59z+h*%O(*@LIo#( zkaCAm3pCydQSweu2+9J4SJKIPUtD$UUF0f{p0S0BaSBxLSLUn>$Yo`9)4790jy$MO z`dK}2FOZvmDnGX^h%fBvbVqV>mLlfy0t|DF==*dU4ZxL65E8~hxejCNp8)#`9Cxok{S{71^~=aL>mJlAbMXCHMi5*Y zD>E+_k>L7v?r8ve5OQI!ZzWWVP|^~j@u`Nesp=SQ@R50`Rsw^Uz{n4JpWrFSbz;${ zeH#>TG^h=qHcD!N(^Qhmw^1JSFmW$eACKCEHU=?Tu!4(2IzjW;a}53u#GKBu{%W)^ z!4JfPusD^aKZZ1xkB(@7s`COzszo-L_Y36G%n0lgw+(YgUAqx?k)4_Mm#u8V1HpEx zv%L=76pu$@wOje3k&d7*e!_M!0RLOW!I@~Ai~qZEr|C`-uS|WTn{dCTs!Yt+ckX-g zDn&P9tEDZLSVz6KY~1Z^U!d<3o@1AoOIyMhnV5IZ$Qu za%kdl_`tS~;#alEMApsd#y22%Ty!z|pI5sX0;d4?2Njigqz}gU2;PrIz^LgdW1-IT zwsZB&W9-QfoS{kA2AE>KX=@;z`hm@o_T0}l)&*uyhVK#GZIggtal=HkMt_DQKyMOp z|D8evd^Ahi?QoUyc#Ui=(WEF8o%9dHW=-p?ivDQC{h(1e#`Vt6%>z&3zEzRZL_i8s zgygE3=&)##kyF10`4c_V#qs0*Gaf>nw}csHaT;;=2XQ*(#AWogbXK0#kd)JOx}nM- zL_+&gp?P)PTD_oO6&)2qC&KTg7`}bYBwB41@hUA4t~j%bg&v*I8lO3y(J9@sTAFVPVDoFbUR|5}CE0q!$<5pS7Z)xoP1!qmLor zECv(l73uUt4{Mbdm|}2Cr9H`2Mu5eZ_XEphO3>J*}Wq zUnx2X1q>%{DW-?i5Ph9Eu-3Ji$!-j)DRNFxOo9V6x29Owl0+S{nP^rav0dygE|iy< zxYsDItwPg(Tsit`(3!AkiSI<0Mm`}T&tOctq1bw&lXYG@+|@>N!bE#Ahj!sDqDxfM zFJ#*Nv&waM!++?>(*kJFPkEl=X|kY$5wxfP)Owgo(nWG6fnnQey#@((g;s62+|S5E z5NH=~z_h=O!!4LbJV^lQe2HEw986||jZIBp&%eOM^bwDhOxW^G3$<)`;lUg>WdrFp zI~(TF@27|VyN+dH$!`~(kAXf@9F+Z!WZRP@oa2B|%F4y=w1OZ$5QjuA-HMCC#mjI4 zo#(}fK!8;efHY5|O&Pl};+oz5%KOhYkGjGbFT)bmDNv&N_vn!Zd3&O?EXn;c_#6af zFq7T6S~@&yjInkpHg+4b#5PDiu?RI-bZ_O7BxZR0ZWmJ{6UiRW-RhB?;x2^@z$hIb zJ*Co5`T#cmo8z{!xAFW*XW+mV5?d-Wydb>ybNaFph`r_<2_jb(W+G+1hyVWfPX9Zt zO|L8xCV9XbcokzfWsKfH>o17l$)WGiyKbB9lA34|3x*NqIUZARFXTt8mEUu%-vOEz zN1 z;#DBTrZ7UaU3X}3xs%!oW7ncxuT1g!F0VmWsKnws0)R!O>GnhcysSLpg7fn6D7^|a z_s|NNQiM}X+xgZf0e$+3!U!=3-9{o_;PYWI&#YCRCTwi26#-1nUoq<~h zxS`VbotU)NTpryD$5St388COCUMk)O?c1t(j!f?$kuZq}d__d1OlqK+PLZsn=gn7) zy5xF~nr3TVmJ3e%uFDTu0h87k{oorGIo3E$MDEm7W9gLF36eZ=ZpzG4!gu8_P0=go z6&cjhAhu_;8`Rw$6azF35;H(IZn}n#Q#(E-nz~W8V|FxQaMcB@1uIho zeKEpN7M-5J|BdTVjYar+jN}F7$ZlvhrYJ7Io6U$P`+TYU4uxS7-v(wyDR)n@pT$0o zEg!%1-R_cDGS|U0hVh6796lEJ{#iEt6$ZS z?Lv%-amsxYLz3R_s1-0Bb{D`fSV4*ZT+jP0JBmHz2IA|p3O5b#JEtN~)QguM`9Yct zmE19D1x%abGcE!={-1%4edlO4%#Vmu%WTOK^u>_0214mo9}s=!>QF$;d0IaDMUx;9 z&RI>N^EU745YF6D`U=?}Lw-|3+(mP;HB&G~EvFzaJ{@A)e?44*jr{yO4B^B(R3Woa z!zk}Kr33eNkJo_1+r?4=Tu;p1AYS5qQm6g`RDb=Oh-{G9lBB~k8JZn=BQ;F&&kTLy zZ;Ve0(q6xGTit6QTjPIs=j$2kK7~Bl##j*`HnbMIJ&F9-v*fXsT@EKCKtQ%ef|=R)q*nd~5X*^eKP8dJUSp z6$-g8F!Jpi)iJ#E99IttYGmckj%VrpBMAOl*1t!x9q9$p8;)6rUxnN|WcD&C)k{`aqFk@N)pR|fKrI^v%-1*r#8zY3ntPJ9mz-L1=` zb#1^SZiO}!16?XIKzLO(JeQ2$gVZJG_KS=CA5a7dhJ>qEt&lv}V*z3%PU5Y_M|1M> zYS2&2xEe~|+a+o&1d0!<=$>$$66%mB{n z-1aa_*Kl~(EAl@f`S+vvzZPD9{#6zMlF!v&=*ON1jV7*DXdd^@x+AUsGTU*BXa1sk z@koHS*=oN2tI4E_{37hkFCHSj0x5p@{&VBEf?tAmo_P`A^ZI6oAc-alww65&zI!@tpOr@5z>K>QaekPBe$NFz`o~#F z?w!aF#AXvvP<38~sr4~))xF>Fh^7z$Y(Sjdx{kE35kGC=vbN_uzcsjpp!@oSgir&N zcZwRQv}1ru+ISH=kk3`&2yNmR_h0jO9foQhK~eZQ*HES$PO1R;g}J)2|BgmRTKJ_+ zWR#qcwN3en94fyJ)n}-PX@y#`#hr2v*|CC_&qSdAeoD8b`Og6P??pkr@F+w^je{g% zG=F8z|9m_LU*F_{cd58WZvG7*QMnP{z{aF%8$O-I*MbSYW)Xm2>t#y16gZDbYZBYN z0g>?spx&4R6Bhp#c4J>atH%RwT#)pQFA-{XJoNH?@P$)vK6l)K`MODEmlYIof{0D; z$Kj0QI4M5lm$*KZt@u|2Ga_B>2r{+D`^Od`{3sfY!jy$kV0z34=F)c(IlvP3Xg9dm zNo%|+Jcx~d?$i_{{ntX(rOW*%R_4!{P2mMWf4}*F(s8B6@45Dy`x(%_IrjQ|GUcZ) z;F2L4I0Bho8_WV%?igzrmss>Rlis@Yx$m|i(JHL7>8&Jwf2kM9^iK7v^5Vht&SMBE zO{{{79<#&2?u>+R6(7mw7KFDTB+gcemlY?notXY(&bx;k3MQWa`yTn{74tJ1e&~&t z`Pf1JB7nP{HcncAvFsH5$El#Zon^E%Qa%NyJ%L==;M8O?Qf9lI#goZTEWZ4naqNCY zF6f?^tj%FeQHL4%PIM=-VnyX6 zASCZUUYkMP=>gCm_MCD;Oz4~)$I<8fo|6x>A?(_~UnW+qyqW7rl-xJOgS-{!BpkVe z7O($$Vp74tCM=OVuJsw_TUjCyIDI2eO&^p&Z!ZI?F^AtvtM^qV4o<~?1q>DPtDj2C zkvs?(c%`k+-`z}w6Iwd-T17@5$yQ-keEtc?yP)({=(>!f$iPp7~Ps7E0j9Os{SY{%dvqEZj{L5*IiF zRp!5U))+n*R&^#ot!x5KzhK3Rv0bE8gTYOQSk*z__U|a&ZCTr$+az-0^#3_FvZsW7RmO}x}wZ3a9aX(2Bx74IfY0` z3N-|;NkonVz;6%??N7;P{!-kK^^`o5({{}jJR%<7RA7)BT(QG>q!-a*n4?u&mq(5f z1YA0G7!QseBScmj;(k7cfc#tx;JgU_bBg+ePYx2L{VCY~Qw%sS71;-fK;zy}PzZ{b z4Wu%T(v1CIp#xZF*o}O@mg`8`Krt-r#|z@SdnZ0ZSho6{){8;0Mtv6o0ZIX|YO?OM zW_q37W6-=N3MCxpDsU($3bmrRj~F9AcOfmApgi7@BS;H(wlmES#_ay(ASTxeLadb^ zmqWG?04Er?UNUS9;sfvAwDsx*-IV<&FGWBw^GJhW^pyn?du)twbe_W3l>N{9O9Xfw5`&As=VR6u75Wq=!^*jD%1%u%|wY|hIOCVeu3zN}7&|KoJd52UF zsRQYfFdD5I6>#3bt|CL?gbE!hD|3)7pcZ$u(Xe8QYX>CN(_4DR05D|ZKHN6|82GHFA99X+W8bdP7A*Q{ci&%uS;`Rk+RI24R$?ZJr1 zn4%w~=V1KXG4U!cfX5Wfe-Nnqh1KZ}lASB+zInQD<6xu|rSuMq?uW7B7s4|aQm{i= zzHqZ3(NEZ%ErSbCshR!;#>+IiKDTnZus(0@ff$ca|%ETU}|A}1?QKBji zQQ)L|J`7V7THHu@+~O1KF8;`BAp#ry#OT{wvGY81~x-SM;S-i9ix%E9Ln&$6#h7aN+o*y-< zgdO}CQp6YcSoYuLN-vkk+H@X*o;g0vT;2Cv=0rEB!&Aa;J)j>fDC}dFjAfBHrXd!T zLmtP99Q>*Bx%!p=d~~lUxjlF zK&QABur>^sP9oY??2+54WAwK5sHh&Ll9C{NLYj+BSZL33YOMhZB?i(yHP141kP4DR z0*uzA4^;Y1_qDEp&B7^dsV*ys8UP91BR?KA|K9F!2bJ>jbEI#ZS8gzJ1&p}`3xvXs zpM1w3wVxUhK=fGn`3QJ|4Bv(E7BC8o0pH~Fj5+B(j2B=dO5rL&@W_kYA8{e{-K3b^ zfV5FNt$C?x^UD-G_txw?(0mmF+%-QgoQmtVep&J!^c+oqA#(|tF1w|zYP&+KqCMLs z;pC6JV<%XkWR4es$tK~u6Sbvq#jhfM5H8S>LZDWhb9tbNr?K8>94Fyi>I7|&Hqf3l zaePB6G=yU&L7$v@O9U}al6syzaT$;jmjKb|b;tZg)OEOA+8~d!LJSv+;8baJcs}(m zx~XI;^U0w|ro&5=pnt2=S(uLQ4>>Cq2a^1`P3{1li8-I_Qb_2WeGaKZrI4dzoSNMS zxog$Y$T?!$(_`|l`|jZG^SFnc(6`fXh3?{;?%Af@9U|+9ve)l6d5*Tq$ zi&7)jL;r`gw+^bZeg8!%B_tN8bT=qni|+0g0g;k!0Z~AjMM`%`mq-W*NJ&VebV!#p zf^_Zs@%_Hv{X6IE^Vgnn24r+tGtYD1*L8jBas%md7eu)UvVC{uM@E5JJ-FLkg3Lg}Lr3fRKT2|~C(j&cN5VBE1dXZl{M`^XJ+ zmX;3yLuGXYz>_-_W9o}(aJ*GO91Sq+w1U`FVxBOX zLyN~^K=CqVUslm*OZ{@~)RUmGrdns`~5%Ieq+sJO920r^D-C+O_8IC~DTJt%d z@3I+;dBT6TUXk2yV`&4r8of`PB|UuPy@{t%U#Q~#K4%7~oh6W0b@(g!_@A25|2*FR z_Bj4CkRV_;y7~2A@er*B5(?C*Yyu4=veJ!7tW5m&Os$>dc5(Mtz)1eR87DT=p6IP8 z5EZG*bTxoa&coUS{>uQ}I}xo6xiM!ph)drbFVm;@uQLC3H+0XEHYNyZ*+yo}6rkPL z4+;b^6^1{7NB2qhF<>#Qyza@1lxh9t`V>H%mcB5%j8FLw(^-pn)o@yB$;G}YSQM`% z!W87lQ6LmSDjg?6XEe&{b#6{$n(Kuw`EBJjUSNx9qpRA_Am$fhb}?Z3?;)rf^YgE z(>l-I=wrir+6%D6kP~DjVvD^!>!1p-WE(|~n(#AlamPO>_(X~J z6+K4V04y|<bsWEGlOQ*Bl=m7_%`}SzSeUDmw-kl8vf!&GE#}a+dzDpG*)M=yftQ zg+na_A8%JLT<>{?;W;N&Mp)|e1=O?E|EyMPg4BVdAO*GBu8dUY28~p}(OwQvJU=vO zv2e)Yl~=+VOKhvpp~agda8zfKFA8Z5cEz!myM zElvNq65q>e=97)?!drI@Fd=w@>D!hn9kRBQMtuT%ZDqsaJb<`873en}=ed|lM(z)| zV*Y$ZxR}~zIW6}JT0QvpqL~%36O!phL>)Om0&W-!?+`-a5)fIkjC8h}him?z1y+G>JSOQN`3QC_7F~pQ z1f|g-ydPasK~I1TdID2>n=JT#>UJGN*v=YIB2?FlwdPAezEHvyI{g`gGd*^$b$u4Q*!MUKI(hrC-^X_$B=SOx<^X z%sTwwGLD_o4!$q@66A-?yB84L9DjVv2N^jDHk2)?UzZIE27QpA`eFWBtos;ni(&S& zfQWMn!6q?NmG(gd;`c*#jdif}k_Y%~^r@NMF?sW{HnbBLVJpDH)ti>emZxqqdeqe{ zAOY|HG6(h$VFwhJXcwh{r~j=N(`6sc&L?w`FntjH7 zRd2yFBj~!SFj{HaG1X|t;4f2A%RRDX#emBdHJeuIpYV71Vg}^gq2<$gLk4Q zDGgvkZFW9XafQk{cn>C1Ddq2eX}tjIurGZ&v;Yj7ffSFsQ4Oy_zpp`trbRpXAL#ER zztD$g|3Byv6L={_C0YKpimyf>g_2|ghB9*52tDLT*Qu%xn%~YLj|!;m_o3WKGhH&n zVerWZe~mzGzw2i5H&>|u zLRvDv^mE-uktdfr82HLVk_})|7DQX>g_Fz&?_2OH83Y$>^3lFnn=9Y+Fi-}+sprZ# z00S^yXC6D9(&H7sR}ZSzKnI5NbqsKm-Et`IqNoL1%k_Y1-u>?jj(U?Rg5g*r$trNKALc zLgMi{ae@&ed)lod;NT?)fal-;#(PW%>VA8m`(rvzTkQYX3O|LgK(@&0i+{jY4LvkC z+WDBay5*-$s@t;3Up;FED=L4N}} zAM|o`fRB0~O<>Yf-k;{fe#N=oqtLG`0jt zrRZ%y0=E+y%o^XJ7&tZkYvKS!xcXt|a{wHsHivk(KAi0YBkYyQ(Scg)coWd{QlCBg zJJl&jF6RaY@QVjaDuF4-pz;r&-9QQ* znaKX`<=kSZ34=TuwS-Zq#6co5L+&JMVz9in#?Nj`*1@d0&BQfkS&R4aEOqJWQD{ zC96bZ|?dxZ=6=yb_{);Sm!O{GiWH^!}l@oBg?P;At5`YmWuN>iy(*5upP zb=Z6Ne^>UngJ>EkYO8EibL+X!H$j;M8i}q6KkjqNAA{~3GuRpUlup;invspV|B%7|-}vAE2ReBOA>`-g#gtIr1ja97 zWZFzzDlw6~aTzgDz@yjf;ovL7WjbgyaEC>}#vl^28L;|@55XDmo$xne_q%y1G6oLR z295$|g&GS3JuPnsWXf?`Ww^*?(y!LYc1pvmK$StqcRUDCPso;LA=g6m}c+Sz8^EEn0$g8;ZQTkFWCyF8`3|i#XvLc^>hotHwe0y-4Hqtm9PkEZ2l%KvzB2?ZA(0&OY?SPS--DB@xYhxn8)(J02+%~G zGmDjRBV^iZyWIPqcA($A%G}O=OOg#TKhi;WVyP=%Yc&IA_yG`3Lq5PYVcGo$7(mKL z9a0=Y-9^@h6T}W!<}-xzY8oioMKC62okk1qak2psk#+{#Ax7*+*d9--K{gaK+~cvz z?fA(DypXuKhi)d%pH*eK!s7Wdw!@i?fnN6Y5dIgzFS5qOlTSv9zm(%49zU_FF);5_ zUF{=wyIt&fD_}qMow_YV6vevx8j= zw}5{Y(I(I(YA0IBQkPEXY$n$v82-3~x?0X5Afw2mU=^RFEeg4LA8! zcKaKb`OUxJ+W$O}|9*c1z+3&nyZ^cRnYocWtz@_{4cTe+aeH7ajN~Ps0E+G36Dl;# zX#)~lGHt`imC>eOO501I@#SvhlcB4Bdq=gO-z7O;iSCVyM&UNV)&8D3HzvQ6*R+ad z6Y(-2=gtyKY{#L4Oae{>6WjvukPF`WmhhNhVrctS6}nYPMxY8}YB{JgpDnb?16evj z(t;@$E!ZIRC_iY5oG{}4b@0(M_i^1q-7>vLHv^_lTdIj2-WzSCp`RRfC7we{`MaTU z@iLqC09d6?T9e?)%>%uGDC(UbsqpVZlE214#z!6M(s|k|j9dg-)pkWwH>IQc_$EQl zMw#k4d#D{&J02}(cLE;zG)cr*>zHCE-31|oP?Rm%*Kuf`S0e~2De1|=Xb1CO3vC}O zra@B}ERj8HUC44!nmWE^o=e}r1k$b8@fd{;X$N?(^P?Zzd;_O8Mf2`jbrNj=nSi6w z5Pma$y{lgh7(M5ul@hr2T=?wy||0&;) zt(qw`&gAvoWKVc=7-w~NylgW33jXNVR8?Lgde}T51SKpwX`Y*a{kYFKpJD89Ry5pW z|4dCMyt}x_S-zBYF{>Gksv&oK-Zv z`*(eE{He&}RlpG*u}1%1X&74H3EyDcyX1#(b`igx|9<>QkT5pMl)zSg&(7 z(>ENhU{~m!Q-Wl!Zt|Elfs);N_ETeD!=4*yYJJHjIB2IIgh))4kZZR3ybWA@5b#F1 z53x+@kVQ@T@&;4ATDZgT%6KRWv_{mbmG>QKD_btBK&^J^w%b`W3{=q~ZJ@k!M;Mkh$m&LS|X$4>++w zaL6+%_n`q{grDz<#AA;k51;yVh|=djn(!ITpElGF4!7VzyDLxOo}e9r;KZ&{Y6M-5 z;W}_RV#;8<h!mC}0?F=tHW^9Ub z7R1aF|6C!;-<<5&faZB47}GSHtr|Hr2){Ms<%pu>12ro1XcvX4jU4hd+WEmQc%|H! z8SXmW6omPbz@4ANC}>M)^k{@+|7!O(TP&{uj?E7gbiq!CaRt%}?W6?J?7wVbb`Q-I zXi>?iqjwx?% z>84S|-M1pci4RPDd){wC@L{f`j;2l)Tjh_UiFBI?knBXRnz|67D0T;Mg*AP2#%nzI zdM{Iznw6Dy@U!dkMO&?^4q<1?m4NvfsC4uMKZ>@VM_I8QXYMc6Ey0nHeKU@bGK>}x zH1-&*un{OHz#aEmj>}oLtY)p@KU6b$DDUCr%lSX|UD#v2s>6P!YfHNh3|y^{;s|5> zW=jejhx;gy;$$7Vkhb}Z9uE+WhZx;SmJwLiX!zL1)66EqVe#lC+n*zY2Rsu3w0ty4 z>K7R@4L>KJoL0M}X!bSwY`6**nrG6cNj1XRK-c}vgD6i`)2u)LnC`)9Dj_-shPbw7 zWY{4DxXR0wz7(v^QOROLc#v2k$VMp=@<(Wq)<_uj&3)MG03-|CKqLgywawCY zHD-`%+*J!>rn@#+0@wUto0Hq8rN(!Q`N&pro2{2#;(hxs{|>hK01DAP`YSH`OLGR3 zY0vW<&idowI(o_XWTg%Z`hBfcVko-*Ts_>=l6aq#gziNAuh2dQ2YJFLBd~g*a5Rpt{kF8=o*`d8CQ{HX?J4y#Z1G-G!Ciq+8%#NIsz zQJqw9By#s0N=>3rH@K1XpC8N-1f~Qy^yz_@6&J8|0=CB{FN8HR$~5SH^5@Reqzwe4 z=2ioq7Y=OJ<`j-ba3!e`F7u;+j(&vLN+k2UI@Eb`1v?k9;bd|EvkOQ)w6?DYFk=D^Ew%2qI;5hX3|nx5dLJ48uz7uc5KDswo6D zhJHmm+J?c^{T{DFbK|LLN1X*YeBHWczNh8 zkoR~9<+xlwQ_v-hHp;pXHdD-4{C;9I$k|<6YJ(X0x^_#(NADXUCnOqRf78AcQMI^o{e;!ifsR;yj%70T_Dwr%BiywU6n!^<=;|530~=Y z-)7c(;Iqw>M`m-g#?PnAARThN_IbSf%EMw|F| zexi{Mc|y1NLYoR57eP4XERUVemV;z4oA-^dW&3gvVPIXkREe&ddd(-S10Jt!G92@$0I}# z%#>D$Dp+f9R1^XP)bk;pkmzTBh=%3`U`P_4*fNfNvof=FB>KbqH*D7q!ECQN?tK(G zswv>$OmgZr5${dn7Et_Lld{S^Zr(@1qfo#QiSDf4i>j<)dv`Zg8QFNXuSiv`yQhI= zky;a(`6g>=dbIkdJ=8{>iZWCD^RLVyK!wmI(lWv>%bn%K4Y;dI19Xpb!php#utS85@LL?r)X@f4zP-b{=yXH>n$3(( zwz(^{_v&DYTI`i|u)i0~p)VxFavO`D;@&MXds}>S!0a;pId&5aWPyaC8CFKhpj~eEiYG%5g*z0xpjNM zohsUUxCHpMJd@I56~%%ezo0K7ryR0dR8>A=CH*-ibN**kJ+K9~yAIC12PLiC0hDFT`wvwjmDhzfQ(B7E|Y~P4E8PQm#>r@8to%{Z$UfmAdNy& zY{CLQ#M-LkKN|T=J_qBf1=1oCOZ?u1ju-qZ0$Cq>xD&J8qkDdrAG>rr4gTpVDER|u zIkQzawbu=Bi$yUI^e@=IFYU_&l=0<1`|sI^7_O``P<1!M+LM(B65k22Hemm^^^pkL zdMR%XERmcb8vTQQa>vkb2pU>!)@uCiy9;QdD4%30%6Se^z_+xAZeSz_@8`7)wV!1M z5%W)aE_2*Yr83}|MUw{jNS0`v&pi3rFDWOTzt-AMf@`~oCFIcVyp57+G-iQTn| zE#S`xs&1)unB||^&l2`@to#-zy^{ZiwO}t|>wgP({k0%XfU{U}f-vhy@Te+`{0oI)oV z5iBweyD&Msh_A{I1atR3%hd$y|Y~q+IITr`&fJ#jCB0yQOgRB##L(`5B zFN$9UNb96zE*L9-W!YUc=&HMWfjA+d3yNp)t*GV2blT%9e+RO_-B-yUg>vAFQUC+W zP+?mPBGX7`1Y#_B3^P!ig7rIGd;a=HF2S{q6F>s@nMOMQXQiohhf&qwDgE#V zAX2TyinPYwX8D2IkzQkuMweepG8x2n=mvM-${rrsej&PaprZ3<6Oz*S`-N>B{Xr$K zKztL6mavuvM?KW;v55m96;kh@E#i9d-7qTM!W$Js|6~6p{Ze@{k{`=I11qjZAIjb&{GE({PFi)ptDK!2TUH z)}_3}guMB(qo!-s7pblkS3)hPtSU{vN_A zfRHCSwwV<7cqaGb3o?@Qz*ERl>vok=KS0xIvD8DmnK~jHEyINU5s$oB-kYQj+&sDL z>;B3jBn%H2%=C;NsOoo`Wvf2N4R$RaeIYi41vi>$e&hMk4!s>YcP0TAr$WA5^v;wF z?wlj3vTi4XhI5Yt{}EjqN6>D=M%K_9@@r{lZV)MFHC|Cm!`es@yu`rEF2!w!l@Z37 z>WGng7mw0@aG$PDg`=NAizcq%ox*3BxmGbZe&h@-yl9I~i+fmE^SVx!@eh7F?XPuk z2vfUX_ttI@V9LvCIE@xY9Zj>3e=N2VnNZ3~gbhv)JPhMv*W$8#czOP~`MSa?Xsk9g z{vnZ57Eaje12OAi9-QHI7rnm5l^H$71?AN(N;Y5h8Ct2DmIHeo`xUWXQ8xRlbw)Fr z#?S8-sxyT>>xAws*0ToNDg$|2Tzpn3QGgQ!?*()T6G zG7N!?$|b2cw;%I_MHjBUvU~)yj~aZAMC^R@p8_I$exvyml$vXi{f($bo8z76RTQ+> zMJehr3@kLgLA>U-&Fy!|9spSjdv`R&BS!DyXUc~pap>oYA^9~_t*R%q86PV>OBjok z8#o@BV-TbCGoi@28jF1sU8^8^{6yn|P_TZzDcQ-mg>C>FSvuzypEJ(Rs$1bG(MGXL zcr@ao7Q}B28T_8^j!U0#s=Cy-Z7E#(g|{QtIAO+tkHMh5O70i*r9sRoF8ydgC+due z?OAd1>3;p(hvUd2auzP@Ig2w@)1Gq?EAjU-J)Mrh%i?KU5#!J&3Gt(O4t;5(rh865 zDM=~1-SnRyw9$TlDaWN?5K}`hof%Q?2*TEF&v{4)FkdB^)8maH+M6u0rLd!PN17iTSvwFz4G zCAM?aqf0LoilB~spYzKwatyl{Z-AHX7tS5oD2)&Jo31s?xheFqsu+uMf^{~dV+GVq zlHbQMq$;RJj+@069kA%e!l<9>vIQeC)DDZpAjlFJ43OGm_fjX;Y3&FlK|cIrmh>1z zURqzFoNMq;nKxX)c(_M2HVRuQTmfTX>q5Ab&$i)m(71zFWS?!6nJPct}eI05iNyM_Nmdaf~4et~f$YvEBx{~E4NG8=ZXBzHz+w28wm`P#J&E%+;fLxC&pV)S_IIf6vp`YIR zxp+^OypTz3oPqVi$(OhA_(GGK7lW)CxdJ?B;6zYAM5b#fq^-S5ToF#O=+Xry%6_aX zi5KAQ{l0)f+*`}DQUmBuA}9q&d96GOsNHr|@^HpW&(9Sq?h7^97N1w>N=sR=EZqXW zct^OzF7G*xJBmNpgZoLsNRmf}nbP-csl2e@XkSO%R8Ja*Xm9;>VVCe9p}SbE3Io~7 z0Ul-#2f+tvgK5@O6ZemDxe)K%=GSCi-O~m3M(q z)D!BG9F5SI>dd;5af($yxTEjR4XeBbma8Hix}?~E4CX1c-iIg;mAqTJ#`NJY17D(W z$!d)TmMi8|IbCy3Fz3z#-7uR^;7eCPq&@`Jy+R>95Z$9C=||$f5GSccSCjc7t}pk| zJnMVt~JOqM&BXfL`0U49RmoWeU#63eLDrBjYo=^ECV(d=x8t5AKS>=g(Vs}&1V zYos;Fl$PO-lK$Cdyu*mYwU@6 z;W#ofs-=CeRNwamb8jU>&%z7vqshZ&TFJyKQFy%&Z%Ig?9&wUl{<9M)oAG+EtjH2w+S-nJ-+g{Rt^h6ly-t5UA!c2EJ`>C7W-?9e zB+xZIWslk=yT11+h;649%(Z+~c0i}))ZR2y4>Bu?R(j!(fzx#XRs$%O2Azd9GNYz< zPbm5?!GSfNxAL2N+e*7w_98wZw3ax)9uDxiHMD(}~o797^E zJRR2g#nT&rVc`SvHZC68ZYP7=`i~%}Cc8(-Tbiek-b4$3K;Vj~aD66Evg(C0n!W2QXe$Zq4@rxSva&+$?Q)|X6D|2u)$J+7|ADK<; z>+vyB>sfFb;z<(~L14T{gRS7r>a(S>!DE&Cjfk$!m!xD@R$3V*wQ~=|J&P`Fj>-O8 zOTeMrhYsa}e9wi|KQ)H)F@B5!)^3atue%b4b11p1!f&8D=jhOUv>jgzzH2?KoUT{* zUcOHorqNhrM39;PO5w7BHQhIxCJ}NhvYn2w_v#A6@0BP>vD3mHCbE;Wr`hD!fhwZP z#g*WKi$aQpVeu2pF9CM9W_(RGw*W4?#VC1PXRnyp7{`ZToe z{`V-Nc^0Uv@57nynCZ__ACSw21CJ*W$Wl{tX!+Q$XrUcNPuYa8nyJ+n$+egMk9 zF}QWurPD%UaPWHtqAF9Q$HpcYX0S@^m#-2h==a<}+9TJmr0Zt_VbUrOBdnquDoD1h zV|1QmXJ}Hc9gg`;u#yzcsHvC=k&u7Pk$Ye%xg;_mYITbkMJ?`LV6sue$a9mZLA!V z@wY>!`-GxaNdInq(jVk%R+$r{KyoNNDXCu}w@oZDU#+B&q2^$6*48JDfYlOGvTBJw zAo%fS{wQnAkv?&B2>Fu}*9R@tTJpG&UqAA?`g!9XrJhb}dyYt9$`jk2m}VTocr7L< zQ3w^LDSbU^X}+_dDKILGq?LBXy{!^+Wk2_Pd+OQG9zUT?&T^J-oEvplyidDFK487Hf6-dY24Lf5gYa8 zWMjSoQx&Vi1Jf56FUgR-vAj*dx~+c8(Q=$}%!~$mkc-y^IC^Tv2*>Jdkuso(c^sbt ztp@7?33GjJ`%o79off)@$8nr1WbJtJBbAU)nh6XiM(O0|t>d-8+D-(Cy9`;Gez0EN z_|}17j-1b++8H*&E&CDz&2-5Qb{xF&lC0JvQJ7rsKpxjjD*^y+uy+dWZ-+N7${`L z1ep_J*^Vnz%#qs#P--w8;+Q=kLCf?P4o64BaJ%JN(Mal;j!`^{JhbQtoJuj%qKHw$ z2vFyHVBWy7fN>zlQfi~D`%Q`k1)Zh+`oKYIKq&hWHqD!#oAmk? z01c)jJ<@HrkWEAAt>Q_Ht=0kSWFd2UVVx#hQ3qhNOxCE6Gx8!AGPML$#-cN-Kx>Vy0#z(BJP-9vc~naOIgP8>!q zqwGHOkG~S5-X<8s*d$;w9pDZAWppTV6qUn_QUFmEI9GdJH|62MAE^tLI&ad&=O;n% zq6NVcJj9D*Hu~5h##bP&OzbJ>ze^Pk3|+b&z9Hr8zI+SBEo>AfAX}&J8fm(w01bCU ztU9cr^fVoT{jic59(oRPh(^cS2A*Nc+lx<%=D|6$)1fNRI!G9Bj5=R*Lkr z;7bz?SIn6ifCn0ksV3IgVqBl#eVqG=M2Ex`;Q4}2kuuB!vSn@@F3bC=12?C{Ifpw?;EL$#`{)5nE8Bx5DihY z&Sp@Zui~t{+??{dZcNOVbHd^zlV0BZR>-T_89($18J`;!C0~u~JaY5VZ>-A)x zxGHaODN!;SItf^+#bW%D>A#;f2+G@jrRI<#kX-sa)Y#Q<1jM1bS)!i(k*hN#`FwE( z6&$%d&G#lt&l#nAyWad5_L!wl3OxQQAe?SPWYE+yiIGn~(&_n3m63e==o>hdgva`3 zvWV1QR@B6>rFhOTo&P7Lht5y`D|=>#m?t%1N)!8F()0Wi|N*ehX0xtGm>PR77tHGEY-_wdlTu|j@n%teJxvRuemLbSFEMk3t-uI?9dIt-Y%bDGqu zDhuK{oj^=*8y2w7-z4bKSil;FRGSAkgnf$)k67(vkJCV9@hIXpXf_3T| zA(}Q0m`kNBuHST``OGS^d8s{B-1^>;3s!#y_S~oJn=*A40YXoX@;y;|DZ!I($gfZi zd-OSG;5zLvPY!9oi-~_N{}45D^G*1&DgoR_M?stQMP}Rylh!1S%Pp88ZO<{QKjrJ~ zW7+QS{B$qC%}Bctdh;XY@O9?NPrl}poICO&> zO=cXe1}=7=(lu<+9g5!`iJRpTC3pk3Sw$8OLl^}Hb_{lb+R4|J55V8s1!?SK#UR}X zyW&oZF<@_NQJK7wbEa0vrj95TG!e(~1iIT&?J`&ig^_Xu;{l^mIZ_${Q~QxFqupwk za`eoEDE6f`N-Z>I9|?bEl|98)^t&wE>!&7-&sX9J2rS5H{aII%eTvzxzLy!0hAXLy zhMf8^_>R`hV@|XSB4nEntC4nK>BX7=ogKrzL>xR85xrkfs%X`lVW1a(q?y%>voJh< z#66*aqU4o*xv&GvekFeN@*4bqVErkk#N(t=wH-lgYi zxfL`%@j_#Z0s1-nuTNF`k>_uO=0bm7{1)wM;en?gEeJO3elmQfj76@rJnES4(M*#= zlXE^Sg=pS3-e*;q4>PH!sD4z1wL`KUV_0@=P8CW;MP)D0k{Go*le(dJ^f4rE=4Bz% zd9AI>V+iH_RWso9UcBPFx2^~ODAkI2bMZUBr2MIm_}RY4-qd5XQYgMx&oVt7ubWCe zEd?fdRDb18((A|2wS>@<#^D5febxMQ%$JE`!sS-$R?FGNk~j1_>FlUWVQF8@=U%_@qOkqJ?5T&NTLRgYn+yqhAG({eNH@v2ih{u} z0;EOY*yv;3g!b^7eho^xu~Bdjn$T&G@VxbbBVO=v#9VbW;N z6xuWlQJPwa)Sni*r7NJ)(K_cDJa!7+(t2wAAgA&?p!0rvxNEEQf<{(v*EpSLSnr8x z@G=-b>^GTK$rRuvjJp)B_lffB#`|4Kr?s`a<1b1F)uTSIZ22*>H>Wckzh~qcL3~e( zbB}j8HG8{$n!Sn~sXEstf5H$Gqe1ry_)e-9H!WukD0WxAMmwJZONg@pM>_7~y_H!! z4+kJb=>qNgq?Vkr-00xtz@RU1kys@w;~d^AopRrS2Cj!&`A#?!Mg;Cb z0n+AMc)+;)!k;$A;wjAC7U^Bt{Y24hXBAEspX3SU4|DH)|Ku6iu6lD^feFsBfv<(; zOqH8pGNw(An~hnWwd~G^N{$7P5Ik1G33||FU?8_WH&(8r*9~gqLSqxRkwSbovU0>d zL!Rn{E*nc? z{)wtH!-gQ_@@j7)ly%s=1dBPo;eA_u+23JQ`-T@yC`@8>A@_`k64?FKJiH9%fMuB@ z(HOleTI8_D4EWjG_go8ayEuHSit1%tX*Xv-s1f95%_I249>b`;QdSL>8U%YP=n0pw z3vj0sgUT|p`7O)!&&sy5X7f+-lw28*4VnEdZ8P;MnBx}~`;Vehhza6PYhp1%_wg5m zmeO|^aOsg~Z+bwD+FUDsGOJ3>2{L&CWDL3J46rulSQr_~A?K4ZW8Ti+Div$gUPLwV zFz%!4kaV0of$8B56Xjj1^na@Ezhy~+9Gt6eu4;n+{$K?|A$rruOu1G&EiV1#E4Mae z^iSlzz!dDmz*SSc;$tT8MHeyoD(sOi^^vk7kt{_w$W=Aunr-~IYnP9{x zJ07!@^zz-nJ8#ilBzpIu(6peC-d}*FxI6-fweNGNx zOiDblWO_E2>_p-Hviz^_2Y(yUzO;Qa?h2}q;#-;)|!B;USkNtHn2)3>*$ zZ&|wfxtr~U8{&P8zAIE*ELvm58~u5--96lTu%aD1^vF$XDkw$HL?<^?txmv(?26H25bH?)U+Z(t3;T^&0HzAQ?mEtMl zZ(E*3ieiMRddKUWG3PP(e!q}tV}9egAcd?zqs2wf9Po-JA|%p{5ao>Cj2landBnEx z&NjhW|4++IJQDxzo$CV6Z`7r><32CUCf!#qMJLcN=l()p@L^~#M9s+v2!u8B+PemM z8W9hVaJn0wSGYK;SKsX^O{;n z?bD=8X2!x7pxtaQr7!r+I5Sj&D(i9;*5b|`tF3lhzH=Cigt=U*xV-gKbo-92JN>7= zDx_T(1p>eCG<+n)6D-ibCOZT zhpHKH7X==IUR^EkHCokkVB$iq|$&nc2DDeFh-*EM9v=2>VEY5wM5p57cj4-dM{Tl zk(JMFzP{!7gV{g|mvq{IZlLP!M?KuQZ7_Ihup+s9&$MIKh52Qd!IEdyiu&V^M?B$f zIZ?J+6^g9+#m-z--c3OAYM8M%aBtmnoW3Yi?kjjLVR3vT{x9DFJLbkcg=Z~Q^HqE2 zg?GGecC5r71>SR2(SC{<%Ux{pIy9!?39b41AEu)6LTgBYO$e5i*{SLNs7^yMU`IXx zkTaVG$w8ETkHwutl{fEl6rc?&GM9T;3i|=%$0ls)cIQZi5g2)smT@xI>^z%=R%H zpqa=`2x1=Zdo%5EqI&Y<4#30FQRC=(3Ft4s618a910=uea{jbM3p46m$*aX(VF%R) zCR+<6T(y3W`>AfT#cu>~%}#yV+-O;xx(hKE8o0Qb+&|?xqv8iUHE6h!$Ayc4(VcCM z!L2?YV>w|(gAj-0$?rkhSk*aqkyCnfTF!VM-{=)%ZOS4?o9yiw`i78%1S}~Sve(Y0 z)GNhHudRtV<6s>thO1A_^(WCD?m=TCnjCVmP~Z;7*@7I+2@iOG(OF-Ef=2x$p_bp{rtewc z5$;ef1A~3&Lm3?c-pY_7(tR!hbn8xoR?00k(QoUqiSDdnWAbvmY+>Kg3kiOR5;(s}UM)|H^{)oUPp)y=h#F57V1|O}^J^ ze9+gx5O7(lB_-7@IdMBft6Ja3u1Gr3U``SQoHy5P=wcd-;b{U+&wc}yQ&Lb$R|HX+ zsx@Y^_C>xw*BkQZonAK(CsabFOZP-Nu<^(VP$$F z>wM+y5t~x>*~DtrW(R~-v&d%;|1IAzo}7z zr7(5Nq+QppNN!i5EVAy=@A~T`M`;`9AZUphY9?IEXN|uZnKadA)k?c|g?4#cWm=WH zdNWs5ZFlegNf-Qj)Gr*{c|6lV(1O;TdATO`+t7xKUiBoCFUk}BlDivg3fY1_;%*95j<^ld1=VPhjp*{9bS4bdpc+4D(&y zUsiu*QnkU*ASPD&UC^f7=j7Ly^fEU#&l~530qJ!UVILQtT2FoZu^rF9S9=H^z>X-y z%xyf){sZ|^V_4_o23TTZSC|)Ny;$+mGVffPH9`Fta_xqwR6}tP3bjZjT#@*bw2rzBk4}hSG-`l2Lbk*pL{LN+thTE` zOzfW2Zf=vj$>!8aCJ%GHi`G_ZLw^a3BIUtG-aryY1d?^gT$@)vjc$!8RDj_+S|M(< za_m7Zbr_TxU@RdSQ&?cT0+>2`)6MdUW;%+Lk#r(61y2 zM!WJJUobLcVvM6#jLg#{V0r+TJjX+8Z@PoXhE&^`ChEk;emo~odu~%vLEvWF+GMQe z>ewijZzg*V@ZUO#l6HXy%b)z@Gw9=9yUp=&qYEP@fIW}^4fbkYal7m0@rJK6|I*9l zcQOyrSo2dpnW#5ZJS|Li*f^<8UW-~Kl@pf_Zp?IvWHDB9FQPZZxFgk_+uA0a|x!RS+6LC)_2eod=}$Rc7v> zqlnrhQ`4h7l|r+gq+A&0l5#J1>R3C?Xr6Lzuxi4Sey)MPs1jp=f7RcFx}p-nV;%>J zg=CIbX{>k11zdXc;IIlqz1}trEUQrfT>5cFOG5)*0*6`jJ&{N@0Xo9?Iho;s ze=oBe`5c?LvUSuYk!1IX#U~gHG0GT}mf6{6XpiH+ApE?BzG{6`E@?8fGz;T7_g(an zuJqtg6$V@3eL3VU&mGd~OFB``_`yULmlJZUri4;R)9u9~M(QocMR&fDA?Wrr93Qp) zDG_(vtm|Gr{-2h^#E%bv#rt{rz1p_|adyN)2(pY7cy_%`n$IzC=New9P1o0KgzW4a zM(-~e-@`{W;ld2o9^RXtRL>G=04vH4m%|@K{#w>^u(9S7T%e{GEzN2`Cr$(mjqAev7n^yS0Yr%Jqiil*7j&Gm=4F)u;Q4{?a?JDoF^1<`iKPcx*)a z_QK_K&NJC|2?A8K(xZ~h=c|WSZWlQ$$_vh35lau9Ui<)gUkM{jdVI;=8RznmxNm|> z@jd%n@@)sim+K+N5zQ^dNcksEOw;x>*PkxmY7t!4lb>ZiMS5mlqrSP`Y6|e=+_&3o zewQ8IETY&dsQx^=<5c2U<-zS6=4q8*^Sg87@6^MNdm-M|e+cU2hL-JW|4Ux6VOWsikqaCxok@|^Q~oX6h#v&qE7er_^$iIDJI#;d}(u9qLJDVR9MbO}kn z@e4^~##w}c$_nk78Xq9daA^P}LW=MulS(%7H#wscGyLD;ytr`aIGd!k&+yOh_LbDCbEuw*7~Z;m~()| zw|M1k@;6v@rPtpgIADh_`VK)DR`P9qn(haS_2Ny{k(Sew0+GqO1~5Sf0R02ExYW=+6kI z?TqE`QL251?(kAO0Jk%mL>;q_5&rO#W{(uL#)HYX*wq6c6!YkCDl876${oZ-s z#)t^qXerNW&6@~gxG&>1=pUK)8g`$bxg*EIy3H1DdgV&i4a4NZ`DH)AZ0@IWwE(LY zM|9`E`%#RlD~%H5!GDcR^_2ht`NXIa!wQytHTrqVo5zIY5>pSZStzQOV?u5XUAcwh z*s@Q*?#q9jsqnJuJ;rr6N6%#pnYLf>lb0qH>ky1ppNflJ<=@bL7%E<<$b`(7dOyj1 zq=xkO{nz{8!ONlEm^2Va>wI@9o=utco&=LSp$T*CQ>!X`zKF~2v~DTctRzJie?V4A zQT&C3M}5(TS0e}0<`IbBGpDuh(f*$upXei3sa4->MLbmV3D=su?*snDiVCbnQiBE4%dCYNT2qi%+T?)E+LEgB4yV@ol4>OF&F zSKp9HebvO5byg5=InKg>ONkvvmPV_LirzulV9Q}4^Gd{>&)r*u3!L^8`^$R4Q+D(_ z6|n9t+KUFe0=(W_s+1&8-)zsQ))qSrvzFn1x510Rzy!mHPR2Rz|N5ec?_pxQ%5xrZ zA8D$5e6CKeLHJn;Jkti3zLDM+3{y3bj0A`r?<%^RE=wr^f#)muQS?G5gUs88}W z(#MhY9FeVdgffPHcks+V1}hH*LR&g3S%)x-GNRBA-x>N0$Kk2%mjqT9WXUwCwG-(oPi zKRH{|b+Z3BW3XnzTHu9zK?;|m-eiA7bExMAU-^C;IaP3m-f)8p!%LOw40*xR(Ei1z zm-2S+@)b!fa#D_;%+XNN)@Ln3;LDbuB7-vz~s zR)?0TYZ3j31j8;H4~2yE2NNu-XeAG7r$Su{={~4J72q@F%Z|&lW$)&95Vy-mK?NY(*!VvUKJ&ADn8Q0- z2mgLobwd#;IcC-`dXWHQLePaiBgOs>4D#(oGFkVR1iRYj2n12~56eyCWaL!-&W=*8 zomSZ7o{d+_wXHo79BBXkGSkq6t(gOkgxd_YR2#))Q>$G6_L%RU?rAovE-y=YE%QMJ zfJdEO0OFFB&6G(a=yDR zijwY=SV-!M+ri{&-?&4_ZDAY8-IDG*@>`dCp6!{H@>Pwb)HD#lD{+?^m^0NtkH*S&euQevj;&pxUB&dzA`1G&~R(1UAAv4 z-cjlbMQ7#=7in`w_n%`QdV*T9&Uq$%Ec5&I6HuOfZ$>$Va1EobS%n1bE|Cv6Y#hXg z?qyKdt%0bpf={h2W`bS*B4|66>1(w4a9OI&!}GuUM!(2FWt~8}Nap4@wu-3$9+ekn zIw1G3FuEKLMeK$=CBjU?M~LB7ipGkrt@161kmNRSIdHtT#WQSPgSB)2>Ocv&Z?7{t z07x2+Mk5dxH9j?>y&@3qjZfpf(O68FexLxta`OJnlfmeieN z@lnz0L|fRPoU~jrm4G9CBO&E|7oD?|KUu;q4C>PuK}1ZtlOX)S{h+C5E}SY-JKv7R zOW)v6p|xzrLpnypl*qsfxpX>#sP{ZtqyxY`p~v_+P(@&?y=~osbb_*@lamseM@~Ga zB^n>s_!o`*GByN}b8ZXcr|;fPyL^)4*nbbaJZV{T@)oR2i zZ}kAaF_iE6^Mxy(H~Lc|6cNZTI!raq@4ahfDt@qGzf8pr@`RPwmm1({$Z_PcrVzBH zI-Y!Un|^5$yGHYvjHO?E@YZ3*A_qTME+hON2$<7%X-NPFZ;EPTtBM_Mh6-%!sMa_9J59VUD`9*jH$LF8BChEB1#@x)u zmmJKSlJwvQac~y$bA`|EpYleLR%HAMvkUE>`INjBn_zhOSV25_Ww(4A`%tgetDjDR zK*Hm}!q5?yq5z9rTnf9S@C_qBaCNdgtBiFD$xE|uwr@0%ff}Opg>9S5HyhMr8TOHY zC)&PSy~g?T{er1Hj^tyg)yeI4o1L@ev%cKWeI6^M&*4>QZ0oRY`}w3PbtrA5(wnMf zv4MVcu{?r$M#R^ro2U1@&|OqWx#x#b?W}qGzbTsU61bPQ4;ai_6#jGT21zTJ0=E$P zfWWRrKa(Kp)oV^128BmVSay@pyL`JH+!1RkWE`D^9QP37%&Xe~v!9HJ(^J-tVSdhq z$Lp@nJXTDnc$v<7QNF$C^IOR|vfJ zc8UiSBe1INGTy?(8&dJ@QOt(SUM~2s&h-zk#X_8S~iL zNzI5*X6~PwtmoL7v_1~{<2DKAfsOzpHPlffP6}1txuJcg z$~QA=C`UkAhqI~c`=kxvq}ETkI){+CX(Ie)YBrar)m`nKB7*Ml0paEcOg*2x{zLD=BIRj7Sd&e20I?$wu#+?qhl7tc4&1@T-XuKC>{` z$F7z4oP4=wJ-E{YV~TZh@42hXHOVf?z>3H zoAZh(QuC^WdeK*Xa&cIaJ));bNO@0A#dCaAp^EKL8n2GddXbFF;!4j*m?tg74}Sjm60 zlw=p{l!;9j3K@J(#{n=iic&z?C7Vz6}vW7Zt z0cah%Tm&2U4zx=mR^|tNrTVo5^uvAZrbGJamw|$vCfI*sA4rLRAQ~FH!zWuu5nOYh z$50P9Fu^p)2TgSt%9A(51=x2Q*%-A&72aa+}%PlERbk~Lg497>i*oWcbn7=S`?-y$9`jR=!?7v-d8<)eo zi!>y#IOg`Ob`HqObxEm6Ag*wf{kak=C=wK3XcbvA$U-L{l~`{vf#@FI)5!Q58?#W##|5wW%6fWyFO9es7_*w?gVe-an^jx5x?x4!R_ zM^x42Z^>`I0SXkqL0+IhGr118>HJXu{bq>zoh&0@%eMB}?OilWNRdYG4$!MfIj8G>9BBMr9LTCqxMhUkiamQ}o9P9U47W1v^@Z^7 zs`9ozDolf#$_7p7L5~f(Nnpx`L}{?L3L}r%BAta4VtJu$$tdg*Lai_LDzHh4FA*Eu zJ|r?huOrt~%t$V)ztVIXr*G;Ll`O!WHT0gDDz`&~?euNg_Gw9h|` z)W>Wp#{MlwIsq=VIz;T{zeN{%cZ#7b%Zz!Lz<>Zt76CjAgfQ%vvo>Nbk#g}7s-hU1 zJ;7ZRSll>A&i0$%1xCN4vVM~-nDvU6mpK>F-CJ1-Z2CzX@s{oxuhB=H9n3fP z=q$d9E8{-zZ?A3CROyg4haAmPJ#hC=?Tzu)WMy08^k5Kkv>Tu=Rq#1+foYg(4m%s1 zy3HCX6c8O8bEg*8w8p#Yd~a;U9pjUee2UXHBX#m;Uo@`J;o$Gtrp%4kFT=l%AeL1W z0tus3yh6?0a#z{Tuz#4O{ylklLG}HMAMhvJO?m`UVON)zlfN<(47c;FrvELq_+A4Cs{29ju(!ki z3=LdP_-hpR%};Hj1RLvT_57OK7Xh<*T}*GX1X5;FG&Mxcq{#Ldwl3Zu)bN%Zi$Jo^ z`tzA>G;gFhtefQM>jUNusuSg0KLMMUNEt$}tdk<#I^By>7R%&4ECe<@ z)-TIwT)>}nluf%AlC&gvS7C#oNfqv4?#_3N6oYR)?GybIGK{h(^Eqr0z`OX;fL+C* zQoZNT_-&bOeDp(OVYY!8!goRpUeZvQox$)a$_2bK7Bz{>Uddf{#j|o8Be0~O`r1+) zjyIAqz0qWCDE=Z1ZAZ$NrVtBnrcdLSAn~>0cSD!IP2!7{il9m#C0**#iu4;BU}D6r zseHwli)|%hJmmk8@zG7qh%(uM`(BI~ZaU@H7ApgXThU9WwerO*mPJPIHm)=mhIF>& zd+yydI6bCwQ7mJk6&yKXP<^A`ig0zFHdgsAht{_|ITBtA-3x8*l14E3*t#g4hHDvD z8APrTo@H5gh?q(0smc?mA7I^yU?P`JZ-JJ;8(-E~mo2L76fvT7S4m)xmWYCyE+n@r z>k0cicWD;sd@FRgQ$C4Lv0`g+9}gJ~&3*QMJghv)_=BkpQgu^iADtqa>!FtzDK#0H zTFtw|@Bx&aL;O@(?)4qmZh7Y5Q3TrKf?C~Jw$;ui8;@cBz9cwtLz7-x>LoVbgi;nZ z)WCKZ7FCbmQ!;)Z{0kN$QYwu{r^t;eKI}6v2Q_%Db9BQYt`n`EAV(~E5 zvcg+R5ue1$H<6?VD!>`hM`!U&omt5lsj|VpSm>>Q=eT!X^?t6r2_QFm64p!uce?Wx zL`ZbCNP8M~l9yPol&|RCA*F~{D0UCp&r)y3+%F%9k6V4}GgQzW5lOq!+r72>U8M+179tBI;b8>1^c)bK+VsZjS|ATsuQVz?{ zsW4+23@zs7m88_E*AZA460wcScEn}e&uWP+yUn=^NiSnC@AV3{f~Q@whB5aymWWh@ zl~+KHZA9V1=v+TWn{o!*PkgqLTsRe-p>jZ$h{bkjDFZWWpMb2u2cr~=Ed75H%Ekcz z3`J>Zo%hMrJ7EVDk=ZP`8{D{DCRT~{JW_J1W@!q$hW&}yIRm`{+;@SGIL|7jTqWac zP4N)lW7tw&!hM3DOljdqQ9_v=^l_9AkGR)BRYGYOS>PeR;c^vD&!kb)CN;cdZEtb%qbqyWIM3cBY?NbbZ6fw0&8OR;a+* zZya-g6f{s^Vk(!@`~Ce=q+%m7t;F2i79!k6gbGv%=cQmsSN8XqUQ!M0e|yH)&~&dl zLXxRf;q>-b!m;Y&%8j|{NbXa6{eA7&8Ei9V-Axyo>(=cuc?GK#~YsD+Zui{0$=A#+mrq|o1R zahjUS1%<5bx%^^9(_l)17gcsN1e(n8G9dL( zgcW>?m?T{PF@a%FsIrMB;}l&}Lnh!PU3F2b3C|;4oC(7vry&$apx7m^{ME&gy?%g@ zdl2hJkPe=O(Ny}l-=UgBLApSrEegwzotPy*fmLkk$I|X zq*~yAx$P8dY;_)ZdnoPR=qds7CZ);hS*vzil_IglLmPf7$ z7@R#{YO{2b6&Oi`x8wKZrWqK$q=jIrH}Z^5Fe19=`fkV`b~Q7ubs!V4DKOm=ixb$) z9Bl~UwcD4A3gw9iBaU)Cj@PS1!5yE|&19$xO;8f&_f%NRj~E04 zazC0u)}4~6%A(BwX%z{6sQ+if+YhJMqSjJY%qv6Mi{FGh#S5Ev8_y+eb?7#L%7tc_b3qCHAW@F=c_L(0?PnK?9C?3;MU| zY$G$GqbR|!u~lnS^b7CGdEvDmxRgkv5jqmHyGL9}m#O{<7TG7wR%G0e{tIPS^2@s2 zjKYr@Oq3LMx-qG%G{@&`Swzl@zk(xcRlLqFklg ze7J*x7_f?VtzY9tvAr7nnXwc|Ijzdjcos+F1haha9nf6^XOiS_!OL)ttjI;9wdO_8 zDTMX?ww}<(I}6DI3RSWHa%V$$|Ii%0vwL6vdub5iJHtjHaFJop?=}%{QNcNi$}ICK z0kHP~#&s8P!hDBz^8{Ep7<;9i-CQ7D=z_O<&?UL{7jm}5mb;^ zu5{##LSc&@?e+e@fP%vUBzf(-cqUgaP0|;QOv(Dor=Vlcf`9Q+t$hxIhcFL$Uct(d zL;)J45}f!g$HY%6EWb`|6_9?qlc6^Tm2B{6>?Ra@vm<^Ao6ZYVIsWW%J8T{V)CKi! zj|max@b{QiQEc4bx8yJ{DUMbj9|qj0c?64_u6FI@Tq?#Y7nZPBoyOc&>NWPmyc@PQHB09cBjD4Y*ipFeyD7o1 zSLgr4g$wb5cYgF^J_fr3bQ*&Sx?S+^Z{Ri~5Cd^#8#w>>#SdD?#<G{a13Kvj9=A!o<=!k0flo4(2WF zMwZ)EJ28b5wY$}1HQTQ~oFrF$(|;x41o?}kOzEzh^V@`)kSxfU6U*TT)3s6MKt^xD zElSB_Gk-rXT*@-Q6~MkaR@csno{TBTDD-|f;!?$ReUAdOFV;QwH4&UZ3$Y$Enfj+C z!EjNIXk`M>#lB!>*94{ob6d#ad$onNT{NbJfR)(WzxgF;!qW=lZo6Rz3HJ+Rh}Cq4Eeyo2pajX9(XQflP_4ls)kKtL085pH?6L zxxLRn9@+q5p2gkgM6K81MUxwrscQR%zFvdrP73SWM|H{lO6YFQa9_E~5sbg6s#K)u z4v1!Gv@^J*haSCc72g#bgy6!K;Ii|wSy^N zNh@WXW~FZ?A5+3}?>im4xPiypIAKmk3DpfE1{=$(MublQyf)ugSCAF8j_+xMZP?~{ zs!XW=lPlOgW=4a2&zcme9Ii8qp;R?*>uE@HT?$gJ$*viyTkXiC1>4JtAyLC4B;!*; z;p~a@IlrzInE|;iB_{u9LSB^vvKoc*u`<7C%eJHK7u?GkA1z+$GNg~e15vAMTT|DS z-eVaCzMO57uC7E1X3PM;2y%Z7W}_X7SbLIMx^#JphZZos_2e)kAURF<7@s?hPW z+;)Im0i(0}<>&|`O#CxjC_MQ4+3Eupp$rc{x!Mkw(KSf6?D@*&o3@0~0}ug;J8y&a zt1t%i%lkjRWRNBg`N)W&ktJGty6Y71@Y%?xv*Qo#Rl-9~P-6{#{L$02$8j`IosCDm zepc$&cdNQ>sKj#hNg>s!iL>QqdN)gP998{2+TS9Pu+fK74Q(mD;D#`gqXqzVb|NcT6&!u*U==zDWiY-QzKD8V~%Ox4Z^Me`H5SxnB| zD|(GX6p2r{{r;>T6&BL8iC0!AXdkb6tu?C&#c>V223nI~S;ot1>sRc59r(x6_xTeQ zVDpC#T z3~|iiYF~+tQA=!b`Iauel?Bfq0-3VgiGHNk-VGt zYs`YU^FO*Y$kGh6tn!b&zP}PW#Lo?b5q%mgYthip5u3uov@#=+D)XX-)jEvKT_tejD&o>QeR3hh zRv08}as{kkmVNp}P(TZa>y|E(<_h1^<od$~gtJMQyTzk7`jY`y2 zqltoU3uzA&)_Yaul09TJhxxyuf{3mE0J!<-dj(HmBW%yu3L(K+LU*5H=4hQmN_7P; zYc8wP?-B0|Dok~ILY9j-1e)!e!v#<)w3}I_8+Iw)%56a6OZFGIxfUv*zBtuMR-!yd z+j=~-nB6pISkjVsCUgeNErrYoFjhg&jB1dKY(2WD>U7kzjrsb!VqO1?@5mW_z}uux zNlQML#qMg_Ha#bMzDyGpRo17czD#_Ipu;!42HB?or)&(Zbl+2I0n*hzqk@^*0A6|~ zGUFrTKA(v7XCmNZAj{4BmTmhG@S39Kv`07mfU!jw;V|N#K&nOJ07~p@~mHE zSAS|w4rlx%`v*`bnIL_WUnmEX&mSRjlPYBtZInmOK*&rrII$atEWwxgi~F#3?}NbC zm2}M4IAMC%jJd6VVj`A$KVy;JRm2ZQl+Od$~Q^-b)DAZVRC* z8g7#MD=2utQdHyD#mR1Aq6Q~pt**N2kNkv%#)~f$3f;ZjP!+jPco)Ak(pp=@gUTmu z(dVUO32pT5q?g!k{txa%HWwm``;-J@pfq%lA!1R~V1Xe$UM#XV;d8*M$@S?z&jtUe z{7K)g3k(B-v686W9z4S&wuX)!q3Bjfk_M7|K^fwQJZw44h(zWDXR6-ErHY*EWVv0~ zTWhkn**Hgq22SI4;@#t7wdt&!OB3zU@n-m?De-rP(WloR{_@^boiA40WXAhm%Y?6{ zc4bX;IZp3`EnPCTH$=LR_%WX1BUo>|%=K%Evvxb`?SZU*{AU&K}r4Kr= z(0&6mKJE+p6?%vN%p8CRC$^ebvD(?VgyP9<>h-g$OQYV zETqlbHpw*7wXtmr83V2jBP+$pIk)iSO(3$0HjXqMXX5^i^m%sSzc6&hBa#2|Z-#HL_WKRF&te7{J7egb~X~(NT@=td2 zh(89CQ_Iw^EB(fR9XWjog2LyZm?!Zg$yBM=lT2Z58cOo=cd3qS3qNmB3ZS-c5u@C{ z{FBXa(d$brMuWTmwVi}_xCYD8*V*3Ls&=2deVag9@lrGUJ@RXjvgz9=$eU;SmdQ3J zjJ1B~q!CA7I{u~}js7EpLlYwB@U`3^IHytB5jpJ54O}43W<9kh7u!Xa$=G(YtC}SE zZ_yv~$P}be))So;hN>Hb@rDXKA>Pp;p;d2+8@o20-C@DI^_l|8ag}T5A7B0Yib~^J zzO9vM4HvxBMSd%E)1gpy6{ZoS^kYeuMD4DaY~5$>pl5jFM6=9Sw3rp43h#jz^v{+F z`g%dyZ*2$F>wIRqroiXO7Dn$g-xWId1+Yb7914oDl2<4U%paaDGyjPbA}{)=(-jfh zUSx+tSd~hvTPAHvx$hMp-)|RI)LcX)QUIU863s4&Dy!Y!X5KcA){~XExYr&psoI?_=e%7s*2d$J-3IP>-``Ka zQK$;u2RK~LFCvEONz4QYn0xrK*(v*dUgIp^3mR&Pq|>gNPnp})jv!#585_E24bN`S zFmoob`IQ;j8Y^Rhz=OxIFbT6*-!LUOnG?`7H20p+UYyY-QZOaZv4}+ZYh*TC3Zb@v zzD%@YSNw@@?F0Ijtly*3BZkRQ2csEyq3O1lJ_*O_7<6Uuz~toCHom zi^G#_3xWq?t`=hZ3r&I>;Azjb=^OnAf_;mG8vh9Sc1q7YE_jpL5Q6Q(yGM#ZT7DbO zwZr~;@IBbXrV=sz*t_GrPq3597RokHcgYsZM?x^RS?$etu9C)gm16=i#)QV`&Br9ZRIPvN z^X;=;=yy%0_RrZ{T3J1RYHG0gaA?#cu902Ee6l6+< z$>tj8d3RTkR4!C{1}Uj%5rgm;dV82OVfEEw$_Q;u^GoQYT%eL2H?9 z3M6sua( z2M^`O{Q+nsQZgdtmrjG*Y3YHd7O*LTreE7F=0~uy{Ny+vP@PshNue$osaKM&!^je9RE!W zm7kHQPpvdRoq&j)_X={BCE7b8`NGbYpGW>J-EF@)GP!9q-On`t+H`muR=4ZVZ$VC!~GTehhr29R}lxg5b9Iy?)!P%3VDv`wV<{l6uM^l5?ymbPO)gI;_Z=XZ6iDwTYO54R>Rq9+nCY+U>>$Bd@V|^pr^RPX?2i$u z6tr&(X;esjK%Va|`;6^9CaOY|ke1@n*he^p80aFS(g`cP2RP}_0U*-{yWX0tfcybz)>D z;MqE@`)!LJuF||J^E1^rn)r_%?|&b zV)tnXyt?~SR=)ahK4Tkj@C4CC6yxoDw&?>Rjf_VeFnnhH4zTh|cdi)2a$YSO9F^4b&S<>?QGMP}906gq3Z z?T^l~O4MlK`KZkhr??61T>zYzUo8AvW}uA7m_+3lPN@I3gY~uLH|#u&3g2QTCs^H` z2fLn<=%I>0&RmwK@8JL{eCJixny*2 z`+j&exU(?HVNqrL&kl}z2fXA+Hk$Nn{_o0bQ@GXB1eiVEuy(*<^X#&q2VzZ-w6d%l zad@5I@!_uC^#84bgU~i4EHQ^E+kbyr9ocJO;3NuGLUXhK3t8(Ri-ZI&65XU)AdURm z^(v+PpWMFZl(D8F`=`eLs3L`@x^9s39|i*RH=`nN|Eo(maR7OIs``5i$f3r04?^oG zZ(8XUwA2a5i#3uWLH|VAvl^UZc`7-_N+V{*2d;%qpa6%LadNU2lq@Q!>EPjFS8P%h ze$_Shvg~JpxbmgJ{+xs`T$+lJX3Igt*aO9r3Q^l9E}%=08^4q^U9rFDQ*k-lq|&YH zm7bXA{?Ssjl9?t~Te{DyV>oVK+?STFOb6ipng@l=CX(kr-zt3MV9`dJSzhh)>PG3XUEu4O`x%TF|F|W17mAwAZ{#nX#NS1d1GXZ7p+NNG}aX9BmaLu>AXK^FyJ4m=S2VhxW6>uM{?|qUFr9~Lv89z zhM!=#U^D?~5f6TmZ1eLi1@rIqg3<)TGm>z_FWe!T1c%xPJyaxSwMo)r{#`Tz>z7@* zfX&W>R30OP9q`uY?m^e3AS_GXz%ja!_do*p$Ice?>!w{r)wA!fSL4i#0L(jwYKE8t z5A*J{+~1&?^VIfBmNFSKxAYICC*j0&o%MF#MX&|Vv&=FGt10PBs-Cp$(*--K+!P9+ zg1MkcKtrnkdqZX;Z9i3cFU+7yiqG61$c=mMEfcldk0|inu0dgS^}-&QTlK$#MHu(A zZn8`xfB3E7^OVe7tKg)L~CIKFCjG}_@MQTkSsl_l3Ki^2Dxv+^v&_0g7H zTRuK(LO*0(w)dF(alRVDps?*b^nikcn8g-;CPqY=|E_o=ynGh~qBC`*2AxW>Jq%Q5 z0gt;P?58d_G{Mkqz-FQ(!9fVeX!j~x;gR`mHvX_0Nmu|CTWZSSin~V1Q;PA4)7pQK_1~rX<2^e}rHX&_@}T7qbnbObZ!Y_vs|(G8l~P&?CgNe2KCX>#{F|>$l9%(NQs^am z+>nhRLz1kzY`B`*{U39W3N!mLxR$f~W(@w}(etM9VNhLsE{i&VZ$F2NnTp2Zj%B95 z2^dodQ@!G(eR2o9pXUG}wyub(`~$nxq>%b3i%m5_#hNjJW@r#ZeGI9CbHn)4vyHU7J*WkNMD0zV{u(s!Vr4zVCc1;3|9|8 ze`G-|hHNcYcjL{~;*EMaUb3Re-8Pal!6N>+wer@)D-rp8mH&AG#P$0$^L~Izu;&@y zC>xCAY!|BCa%sd==b3HR&9QU0ZtsEGxveaV2k5#Joa-F{q&+#cY4(CeqPjsfX~G%f z5Xw+aK*tI4UL#jp>ba2E1#3zO5o6-{z~IfQ%=O#A1L`{WDgBbBjSTy4rb|zgr%x-i zpO3jxX8gh~Po_wqtrOZGqeL@K%VsuM2^gC@LHDl2+VNJUI)(J7C!kqw6(R$^h2}VR zEAGUYm!PlghpR2mp%#;swr%9Qa+aS1j?c9PaqhhPb^p2F(WH{)35a<$h8c1%bBriB zE-Ii%e!!o8a~@n^wl$BV;VOTZVH?$!7VybQ!t!`;i?Z$?vzZDrBnmyhx_z&l{&!8H zkK-aF&(Z@#Z5MARyZ3{;_nZoY!}-^81VeQ;OIy6tFW0!=gvo5VEy*b4gsr3o@xs_;?`6Jh+ zvkMihRoT9KE$#F}GMOvNj1%Li%{E$xo!jp)#>C-+>iQAcC}YF92O#88lJRV(t+6Sk zt26!V*;)k6VbP$Mf*9l&ZfpH4efx$}bKap3-|lhxoka2l7q+FDgm8`MP!A&j~nuJ-f>XuK`eCU$&S$ z>Gbw*_A%|~!%wpKf1WNkJ=30@_(98GP`n*qyt3t=s`H`ICjtLi(gO?H>D)6dQWizrf}zupf8J_j{GcbDD2t*kN!(aqfBylwqHHg z>(2l7h}go$v?kY@qxCg@-&SuvK|`}N&5z?w4nUCu<+l7;OYt#2M0`Dai{=-a$J;#c z^hL5xvD^N0tn|iJfT}z|=FX=6A)exoJAM6UMC86{t{vK!6~t8HG83{1Uj|ZOk*D1XVY@BL;q8_DtZv3q+UGKz} z*ZnrDEq)Y@Zw$x5OEAD#*4ioju6?1;S+(=DL|>)o=hiEF z3~mKOHj z>~L8bCO#mWBeZ%Faxz()(Xc|M^ixoY$Kjpu?w&wdp&5IEFj`{er=qpggxQqx2*03N zR%YTWe9v|Uce|@@^qk_0Cny_x*zvdygy9>|Xc{}+h@_CE2%3l3#Q4I^;RR(+3cf^& z8!WH~8-Wxqw@kpETkb zIR{mAyuI-Zi@|=;giQBqkKcN5k&B)hX|snljk%-pFQdvo0QXROz;lP%FoW=JA`tmi z`^tPPKN}mjjh`2CN7!};>v%EXCWTYGznDx_%PFzHTZf9-(Ac>Xr>75m;UJEioILU> zS0w@GY~&RG4`1&Ak98ZqjhAk^iOkH%mR(kMHd!IE$stwVRG~R4QEO(B+>?6n+`!qsm1M1xRm>VmVQ#-D*3xj)!IGw2AM`MxuR)hKDkEEu zpOqr^$Dwtb`Xn#n75-k#da0AqNby=M>Au{oml;$WY!4~dsWFyjJ06RK`(ACV751FD z`KNbs26kfQwZAIy>Wtmk~973uCq4M<|$)AtLHG{4C45U7zO*Q1r0ws=F! zRZ^c_1*66cN>WCSb{$t`dIO#i(@qBs{j~l5oNzFyvv0p1EkNg>_=FN=SbuM&a)|33 zuXO?SJ!8c38XX|Ol{M0z+q zSz_D=VDLgp@X)6(E?+~Wkd+`H#&!*nn;a1FVYq$4+3n$T!7gw4iGf!H6g)XmHo6Se zM|gOH9)n&Tw0-HL6y;B2ue2#z`xrRXZz=K^KD&3L=d4Ei<6`?T+IJ3lGE*rY=tNSY zB=cxeIu%8%GBS<#px5u;ZOt}n&~`A%@?AP|&LiX-WyOb@3$2P9^?gQ>O*whgHxCr) zu@rh^C6_GD?vvj5Q1C<^lc>DDq+K!bX~yK$qnWE`>4s}O)gAj|&31hZAyg?j~ zOc^&N>1iMxjei3eh{l~49DQI5!r=Y3ed?&&;NFM@<^kzc5^c32TiNI&E2g=9Z(8yt z;~T6|gpQSMB&^|s<5P`??;A-(R$e}KFQEL$i1(>@WsKgF|)TlCW7{$y%}Sj_E&R zF1OGxLm)towe}VZ{E48revR~wpqNAoJLUQrn%b2rePjZeQuTK(fsIz6*c){sVdArv z{TEG0_eTP)@UK7%qwU|X6@$9jR(Z0V>ut5d(KX4%P1+wW(eq8TpRIlPei05{(|y2; zEqJ7R!`>!PzFiPiv)zLJb_`VP;ZJw@(KnC6=>HcZl%N3V7cm#;?4?Kp z`neNjaA%TQ@vqh)U_nNoADd2%hUz z8;is?XYXK)Ens&W(9+JsNi9r3x&Rss^UZ>@B0dZ(up zK>YMnAq!` zZ9tq=Hvco5RY^K}j^dX?Syj|0uC;y5UkPtaPpVk0fyfQKfe96Xk<2VX>^ndoF6y^w zbMCV6U6H{~^iicYE0*B-!Kr;N*>wx#> zVP|=~+GV-vQ<-gM;Ehi%7h`yscyhPB(=$b(E%M|*LN?haGLGQE7N&8Pz)ihaOv*5( z;B;KuQ&XQC03T{(YuK(Vam96ETYcxIE$=Y=55cX8Kn=!{3slbjK?^{N3UyMvPUzM) zo~!oprMeibBBFmX5IT&j`yU^L|92aC-1AUBz@MA3XqX5?;Cl#S@7X>j(uiq1$KjGlD~nicWczq=l* zM!@UWhnkcgc5Z9dyOL|bNT_1H2?>P49Y7_8FgsHkiYj`9Gs1J&bMhPr3spYcW8s`7 zlNTd;qc(px=ip<9*IifJ&Ps%Rp&+5M_*jl_K@UwqzB%^RJm*WN6W7Z1wYj==lS6{yJ$?8-ZV}j#>#6AO&8Ij;1=_@H4_>2n z@ubon2qI}QU#RBlDzB^8o|UT2_FgVFNsE@cq)MHpn(%m%SoGBu@Dg|KW7KcuK35)% z;iwQ5uOk-sR2SbE#Ahs2F7+@reH^SbIH%2qc%TtNrr|!GBXenxXx%Zbj!Z$5AqKy| ztbKHPt&9RciZPUD0nCGFnNK)xZ8Urzl36l8PBhb)_9@0+F;l-MN1?CxSXW6QMf0a6 zLs$=3V`&wa6&BGcsZ;kKKFW4d$>`lpFW5&wzqN8?Qe9r1izq2Z-D?8Q7BN z4qIGf9X*$cr)lAPFg8W%3o2us$6e%6)FL-kdg5Zu>G+16u?Jk=J)fF1bX{vL{%yB$ z8{z#|g`^qU|H-t;F??koaQJJ?D>77%lKjf6X{r5em~GtRV+{J%D`Nkal(h&JXNX$y z{I%uxFPxNjW_rNP;#hXP*5&z^e+1R2|AQNbbP6^4!B9W00(Xjg;wu$fIoG9EqcqJe zu!V`X@HX)L>Z6&H`BW0YT>ceF$7@!5Vp`6;CMi|fFjCo35^2}(fWF>W`WP*hNBXq{ zQ}^Be$#v`v?4>&>wGd?u|4$^jFFn=v;`?_@8F5s6&V174!hRs0zHz$e;=WDiqg5JO zU8%^;mA6z5g;}u&%f`nwj6QxWV2s71iKbiG5AI|}EemJIwEVn0lzO`VqbkTu7iO~_ z!+dw>kV2Ss1sfR-RY&DH5``cT)371aTlZA4kG0xIEbMfq_@(1X{B0xKXN}Ve`cHrS z_Tbc6^yJlRY)0PeZ_2qZ-cicrm}I>?XEI2bdOb=I=Ok7mUt1wTwdPWx%#zcbDdUiE z0R9NpMwyJ-&T_=FV~G#b_iteL5A3TO1U;P}1JCicohtTsBA#y}DVXxeTh4dJ)mfRo zH3||lj4#bKBv!&{Ziw~@Ip2MN$F%x^_si%PADl#yq1RWfuWJ@9K#6}xH0;`)t1g|= zSgDsxTB4PfazDOJB@DgWMb`Z^1njx*mM#~nM7QfoOJz!TJ{Ra6@2Uii?<9?^%yf#H z)0$tH=zSI50BZ5*T>Lkeve?cFtWEFUm2E_p)l>*C1w8BXbpp`$|P(Scm%R&&BKdsl;K2QPW$H#fWDbE*{{&xfK`S!;tru z+jmc?Y>E!UYYU^{+;DVu^UkBf6o?!44nWnw0Cq&6WN29~Cck|WPZnuh$|rG@QD}TF@7|MqBJ8p-nO29! zpH;(*Y`#P%H5kG&3i%+lj$7qsKSdEjYnQ_uI(k0b2W70p%sLi?uGX_+)Ed+gqx_=4 zAanbd2n-{oAd$cdQG3r}AFlK1HqEJ}i_8bTb|q{4Ph11hoOP_rRD@pbSatSojqMvll&`BpX4@|5XY;#98`}B zKhI05K}D-YWsxk9W>r$dGoje(4kG$65@?}4bOo9qJc}4h)er*GVyCXo9lhikzmo48 z>6-tXa&PgvuW+UN%akgI2qPU5CToMyO|25Vybn1qKd$i9oxVnXqf(f02yyUuD(sp+ z`t!v@VMWbJSF+NFrSg8?hKrxMO?qTWnNu$hdInFgBSQk8WVhQs?PpFzWZ%wTVR9j^ z>Tg!NQINycFX;vi)F(DO0P{}|XdA2Cd6-Gx<_y(k0I>{)kA5ALku1=q3mdR2N7 zB}VOQu0O!1lC1}nx9L=3+a*SM+tA;3xz%)gRYbo`aj)UcZ$UB^j|!5j>t)hp;b$gU z%5l@4@G4#Yoga@P`NGNc>l%23f+^`Ho$WfO|w6V(YE|}$WuN$s;YD=CFVSJw*CH{Hn2cE?h1x;6# z8#(6QbaH_thYE~`(9@~Xl>PJ#nq1rnpt)|PGCOeQ5dIc_V-^F_$D*u~r*2Xv~5Y$v4$_NRl$EF-#7CY@%RY#Sx%L zKEPmoz(X|Z$+X(SD;W^uN^1VN546^EPZ>^KlW`8sB_O62GR`OaG!4p#k5y=#0`IA; zXe)6%pU@|6dk!^Pv1X1+8IoH+;7c$gFsG&8ES?qPfH~8T{nYA_U0R*81KS9wLJFLy zzMmV=;r(pJzps|Qt?=noe~pi{1+}Yn2gsNg%w7(gz(twG<=p7#D;A&hi7wL6 zG&S=%ar%3%Edk2IQrb*n+F{jIO<6I$+4INe0DQ|Sf0-vP@tM)&%?S&7NjZ7XOt?1h z$H!J=4t|Wkjc<*J}q7B#u9S9>&Pi=swUNfXYI^P3pi{n*}uj znaHIBpT**ZpLo`M0#yTEpQ*GIEnkRHsXUUsT3?&gaOEE{3y@vGgY+Q#i+R?+g&wW{ z2?~Fqwh|ht>tKf~O2YFylTeVp1yG?whj_OigYKvQ7mne_)=@d+Q?~t|u-ZuY0VC~( z*E6L%Sw`~1dnL#FCH>&jYK`+aFSAsKA-82Vnyg?e2u**#HkwcE$zt5K&gaqe>JJKR zFB(Zby}Q|5Vg<$?oU}4~`MD@{;#<@VCx~yWHdUMFwm*NpG#1WYtV2X-W`<=QF0No6 zqL$uBdIHbGw0>()DVWHPR&o!k85^U-{MFR`T48xL$>~&6#>HryF|nQT7qJHFbWCc- zl)RzyM6548@gqn%*#@vHX@6vEMa7<$x)_>~F5`TQW(umxd{7Csyp1;uy%8MKv-#Pq z*co?%I}O;kYB4p6#323Mf7eu$`Q>xwmrUtH) zkKCq^7Ndl+avAu7RDbq)V4Yb*UQM2&p7v-WZScapu=^&L)%hjzHP28T*N#WGuA4pp z#lAw-P3d9^ej7~~ET!6c3kCu=$M9V9{PDd%pOW6zjU-#!7dCstD@%0RxA+izT->ge ztMYHBFtT)9-hZEZ*`ixH?^WOONRn-_t^u$^ISu`uzN?9~A=ptTD$!Gj7k+t^RYk#0 zR&#oLsLn0_N$iJahfM&bOBHmk(GesbYHm2T2Q4Kj?_r8KSy>d>(#08iwRTmQtQclWOhf%IJ9v?Z|cf%21OpsA& za8>Gvzjv@WF)%w`Uh{jW!&GCeEv4$s&OZV55{ihR$+{BAJWoclI+W!}HUCIkiJ~B3 zuf&i)gwY}cAIm?>QBXEm7hD%$|I*Vuc zyesV#ZMYN%WVU2lxmUnt7-LSOL+!|Ke3`0wWH%OUx#FZ2SI!vk`s;PWZ`GC{kH?)l zlj(p~(lVpTsB073!znIKxo#P=l%SbvAQYC;0AfYzx|7H@Td$hnKL z-27Wo%2d>BQZT6#3jv|7743aV)!D>(T|bmKBEjjp!f;_vA+O>6?q=;vEbF4jAE=2I z;D}}2Bk-RBCIyd-MXVTx7v>bLN>H4?^hLyQmg!@HR~W_YVC`B%Eo1fo-TjR&$Ej#F zeg--Wwoh9AxV=Y^V2jTZrIz)2&+{%(%IS|&t*K1DyVEGmbg@b@T>2!@r^_7#w4ygy zX3*PhGy~Q0#|>(==H6;N{h>K^2Re^OB7~;TS$JI8zxPp=>>OAnm^tRY2D*(9%96yE zu1e~O>I8n<{Fyd^{+XXUY4@ntWJX!G*{kFuDh+>9i_*4VW|{Qf>~?-;>HDt1nILKh z%S$rV<5GdNqw9{C^K82*V8QIW3H4X5Q9O04b}gsLSnZ&>WG<=?rt=Qh#%-M=4U?Z4 z^bViiI1ds&FUPM)({?dkLtG3whj`>q_yU3Hz3UOg33U^*sqRhOkEAYMcH882zB)O( zGmRDZzfbKQi@t+lw3374Rpajq)%Z*b4}R=KIe44tW{?fC4W=6(Z6u65I=d#a`pk{P zmUHLlX4+eB;7wK&c(%@gMJ1`f zJYn`3hLanxF1YlMVgGBVcf!mC_p2XR&8K2%UT0EvX~$m4Y8Z3J_dBmAFhnsR8__k#VvFIPDn z%1RmqR#jc@oXaHQOco_J)Gy>8aW#&)aAp=K>L+L(9hS{32tHs&{-0c69Qwu9DA-!iQUif865Rm zaoMJ5Ok3F6Z>Sm4^}<`L?3p|$-11I6?Zj>N@cmguOU?xM^62}tqvu8Lfn-kk&g=QW z%C0T*_iZ12f&V0VVW#}ur{M=DPvNS*6Oazv|0sW9&in3{ATs98!&xG$nQ@i3HxlZ> zjw!e*BT`ut?L%n8P$OkPkRTh*5g||GVQyZJKJO^uhRvqS9a^2lXH68kjlN6C(vaPJ zQQe7dnPtkBFy$H0I*bx{EeFY3WS>^d6S&f%B>2{NwBI%|j-=HK?@mdf)jB@uDnD+o ze0ujx2~`=pKR=KA6}#a}1c^?@GCIqhCn9r?Ax4~$VGngB*ubR{DE!<*n<8mYnw|EC z3-B#$I7)&9BspE2dZl*5(z!U-8Cn?Hu0;B+u}q&|vg)c@AeCbG$Bb5|qQjM9Pwfr0 z$$#^j`|=Pv=rs#Nm3i@=7btTU?Kq;mLj9{Rn4w=02p!-Mm?&9lPZATh6At@ZVcKtS z+%npmIras{kgRma&!-FGlF~~m=$y zd)MVDr%7E!lQ%VK>fH1m4UIwMcDohW#Aote=?rZse-<~m?fd23{^x^LVsx7TP3i@d z#plG1HHoD!MlH3Ry{eOByuEDY50KPaNh^T%vDIxR%Erg9wKp1Q5?G(@oCdmV7xvEm z`);&7J@3AfP3zA;^yNKSwR?v+x+Mp{VTGqel;yQCi8Oj`48L;`%=DgghCe`uN^B8F zw^!~js4)dn0DEK{)DQ1<>JV#H9L9g}&#pqo09b02ZMgoQWNe9by9(Rify;gc{ zo|yIfew(`>RJ=Ce)oE4yzQ_EDkJBjq5KEf(r*R-@82w~_`5_RS*uSv!8s2@hyMcgt zdvtptfAMm=;$7%HF|Vj*Y?yn>wozIL(mZzUj5pycmMo_n<>9X`e{ZoQ-E>0#!WSEZ z3p{D>!o;}ie`xRm9Xe$R`m9fB`?5=7_O^hw*2~%eeXT@jU-6Vv^3c(XUVq;neh;3k zmsZHvFkEkIiiex#7o{Jlvj*>SrgU8HZlG(R_hQT_EiLoCV$+}7pCoD1`v4cTV@ozbqYR+{D8&&>T?dMjtwrXkZZ^Z z4DG<;5xH%>`|=&X7YWvhHW^k?4|Lsq@a-{&b^Fy*=_nDlgXIvgDO|W??v_DpUhc;yIZlBhP49u!QF>VK4dr`R;#y=D&YS z>|tMgY`eE0A%<*cKT~9X4+m;B{{D&nvnP|=`5!-bI#_vyFB27N@PZ?(l)pChrEGD( znDwX3;cp2+T{ILE?WtjC9%IB732(Zsbi!ldS+>XKyoc5S&@C|Ot4t|J9JM_5(wf+9FD7$F zHl|=O;LmsdceVd~O>X8$f7Z&KHQ21|R>ZIW821RC)tp($6WQNkA_+}9D_vR*4LXW8 zABy*A+z6&S-7jwxPGumt*y2b<&K}(G&su6Np6D_Y++UZ^mX}wbRH~Z zQ_yj@@655=x8cjXuL!*0e{{VeGp^ID(kK@e2d9r9Ow|^k-b-H^*WVo*18=4Kc?gY7`|ZR>F&|yqLJ8*q*1HT9rQwIGZRIdV z`EUdtdO%G@RPP#~mQYJ6_m!HoO59dq9%39UF}})sXIzlGjNNQjM1u5IVAVC0U#LOO z^)#A7UY*sKeX8@&KUMuSkj{Z&D$@fMB+ij9xMy|4HA}Pw-t??kWd$YV#Mw{`B?tk_ z_DoND=lLm!kj*I;gT^E%o>whPz=Gm2zf_EcsNmyHO@MTLA`FubdBfHjH$ozlG+YDvq-Dgu{_^eSykY?F|bkc31J6ZdOc<$eOz;B73HpbSqJHeCve-Bw|j2I>{?5gk0-QvT3 zJ$E=@VFtEVT>M18H_%1QlQMyadpZre`u475O0!85gRx9XT_9^@2QZ6WJ9)THyzhJa zc^co-O}QniLfmS@**h_Hj4WWi#dib~CxJ-EJq!=rT+Lqk-A| zd;}<7#AiZ$gnvK*l>{xfW^Zt#nFm(v8JSwN2nDgPqkL1c=F4w=_k=o|C}VhAf=U{X zgbAElsm>niH{Snw%bx$v`0zK_QrWJ{gJHEDKWzc15B9=Zj;J07EWp1~KaV-aHmfIc zpXtxqMGKs~Z@j%ScE$Z2-Wa^@9k4d5dzq~1^Y=R7mynQ>o^p?q8 z{PS*Zbpb$f8(css`|`Ee*&ot~c|L_&@J#%_yJMChx?L+m>VJPP5~#?_MAiG;0YD+D zPq*Vb;>^oLemqkNKF3{;e1YFPAlDTGfmsj@nZj0%;Me?p(K5xA4dr~|@YZS+;G1g% zmnkcLzq004KWM@JfM45fyP=I5b6b5QxQGz^*Y7w1$fI zn{T83u45jo3cqV+zS{r(*3&7m6=o@~+A_#L4&lHOh{?_4NUdxMrHKHU;oX?F_B{2QvXxTsDfAMrMM?jD zO-1RZCmoefrw6-o8J#)15A)9S^AMoFo|EqrjM^x0C(Q>G1{98V5w1t9|~V*tQO@RZogkO{VSd*eZdtc?!{%U$mMs z>EGw~`$GK_qC+2Cg_HS0*Jq=HrTJv#qoS9e6r26-72GW90v@_8aE4}G5<6!lZ-G@w zwpDNHVD1ni*zws>?M!fM+vnzhZWsZ%1Brksd9pHUgAR6-c>mp~->=tih=GVkMt7Vm zvt?~7qWDBqJvhOi69bn)KNk`a-0txIxl(dvF;KPC0(LslZ}{!dMi6(bk_7CR#C}ZH zdnJRXWM^$14w9Vy6Hmlo!w=RA4Tb*wuz&M`zh7`bP8wxIDjjl`AEN(tBiqv^rtcn7 zcf&ciLR`MToy@24(7m3{i5jn zyG57%+Fd@ROU7`(POx=>gjSos1WNi|L=#-dOc1USm7!w80#Cao??u?(dYVM7v ztq?qg$Gm<2B=L*L+xbDEas2mPw4gk+%`4S~`DLC4H3$p5AvDBYudAPeizmVoz93iO4GY`;YGC<3`?K}cjJ?8^%{DkI_R&3Qk zD4LO}$;Si+PR<^+hhBk{ViW9OlOUvVT5GWxx1ta@_%nqR)|)Qg84H~X$%9k_&tr-B-X)rvBrhB3YrP?fiJ##x{26`O+rwCisJJ0_G>);xfVQ?`R6o4Sj!c_z@rktJ$}hK+D4ZVBbm=uOlk2p z$rfAMzgNBUIt0s&UO&(O)InPEh!M(VB%*?biecTs5tu8#OYxXbM6Tt{206^*geE{% z%shX5EhBjd9qj%eD`VQB;Svv`hQG9iB=2u6b8Cqtz7;?G-b(*6mrXYP5(ZQ=uZ18W zB;?OR>=GbmR=!whYG_D|A`p1y(j(L?`M5+SO?<)t9xGAJKE{peBqZbcakl{u-h5$2 zPbaGkY5`#Qp2OXlN6pW-V6pARcR!z6YwrRc*b@p-cSnLk$tRH~`~uy{Lc{%ipn`=+ zHp*D=x<#=fRTW5lDMt2y?$1NxySQ{RUnE`?KDuHW-PZL#JMaW7w+;2LxUxbBdvSYS zlY!{>ZC<1JppBf$u2hnsZ5uud8siJVtFMscwxmFT@6O*HPXg6q5{8Tx-M@R-HL3}4 z9Q&GkD@pFdM3&5Qqy`WA1bW6swxM>wlETp4M?rTVKS1J=9dt%RC}5_2A1_~y@M3fm z6p~0huF>R_4#vHF3JdpQsimRO85F|Zre$~4sD<;;1?0w9qwEcOwJl`drM7_CdCT3^ zaiN^(m7SCRLl8=_{D*?hki9L&!-xcv1?F}^P9?c?W&|yQup{QSj$ytzEX~c0Z@CVCw;~0ySe*aAi}g2c{q= zKcR21U&ui&-f)@Mvg;CqT;!#z$A>QbXLG*!$Qj55FJ%rE z>0gnS(@sQ#a1T+nT<^@2md52>n2lQRI)N?AwF+S7VoC}-OA0A*Ax5@NAAC7??AR$r1tYHL;4}OIEQd)L|=bca;-;aD&7h@ zck>d&9s|{9Fxneh4ZT(k`-0(kkg2voMj!Y?4O+KLe1E=Aft#18X8tnv9#*#CdK+;! zsEKXdF5BRe{5()@p#+J|`Ax8HONLnxO(T|p7vV_oIn?~F&u-T+BGthoe)p@|CMZh^ zQc?2Vj)q=@%CtxZk?X?;_A8Y(1Dy!QREiX6%PQYal&dSgQ=7$RKrMlpuujp$H#3941-7qhE zOZ?}L8@vvab+im36gn^>F?98KuAxf=M>IA`WmfO2XV`KpQu@)r=DWoO@X#&2S9hr0 zuJtT{LAX}aEr_CH-5jQz`fZu?Sp-ide`(WJ;v%L8R zgkGQRFx4O={rY$K%lEj=v~~a`pe?gXQe0oLO!1p!oP>6S<0Q};jK^-&3MX)b_Cu+O zG%s9QDeMLI^)+oZBc~2vWTFeBK*VY`at20t z@B^(tqYl}x_f=?b<5|fdC`UJ>Rb;;FzDl&QVxTMA^=+iWrC9g=-ds17&vnZgv|EJV zZUbs(G?J9eZ)>@0Uk>(6EH*6pm+0k2!6Ig%8+f+e8L|=d%SPZE-v#q9CU8$sqK$o` z%IIn49!;Uf3qTd-eCWl*gvb+#Zm1=eWv?x0@}%5b%;{0tDN!bhOl0D3JT~&)XL4z=7ujLxI5OtC5Hgpe1}m z#GLVaOnB^bBLl;~li2hcY(AU*i|()9!hc__)?7ojLzA2Yy>`)=KX>JykonIRaD=4= ztNA~HGCdm|9rNzVT+wKo_<%Sor+yV5GF8!YiL2%-{U)4L?St=%qrT;0V!)FZvR9nd ztFv|tGdS28c&>6p{$4K{@Pt}%1E8Z18xL=~aWv_a@NqhtH03W}T zRRM;IIf7p>A?&tl*8@pSiV2dz&%@Ml!SH8DT@ak)H%zO;KGHRzXj^0xI`-Qc60rGfX#&xH92l9($Y z@$@>a0axlH#LlUHj831eIiv~{+cGD@IgTOHo}P*TFEz#zPs26tk@(9wFK>j#G$&jY z{O<5`e=DHrba(QVo&3RV4jGx`XLu=vl~<;`D@>?^-%M4>rFw5%o9X=E*-jUNnx3;8 zGmYTvYVtc(zi-Pf6Flemfl)^kk}oVt4@3SigXN_z+wtGGvDzL|NE`}j;3H2cod7ON zQmN}h|G!m5zc5lg`ULX>Sn%uN<(i?O$7G6yPm{uHQ~o}BME)iv2IM44s&A?E5b&=X zZfM;k)qVwb6PBf}Qdrp>;WVEdof~z~ntKZM)U4(siO-N7ao()R*G6s7mx6~tBAs;b ztif2Vo5Lo+;&WP7LR`)h%jE~)k?f%VCVcLz183zTk^2e^i%-($E6zK8Z$3@sZx^_N zgwK+OeH$h>Lmzfxc&{_fV}ZWNv{LnKtkN|1+4!#jZStqT2O66d64LZ9NQt4c8z^M# z&(VPMq$KkPZ(Ksloz)4mimJB*QI7mv$?Wt-!z}zMv+|MTF+X^0J!I-a6IrgO8mRe% zau6EPi@WNUrAnL2Qv)Bv?ihwC#;Uqm<#(xtF36wKr7Wx0?plUZzfX-0!LO(j?at!q~9+bq6KeOYGsPoy?4eOuC~_RuA+vVcRuchYFMM7rYVHVY-n@{4H-fV4UQ~R-v(q3 z)r>!l3P!WdbRrimVnZCZe+<+xs7aUqLp7K6I|hQJyD*_NETy_q_unPX`eTBNbRzBvrqA*R9LZOL$|1ONVB|$@IAez$~ zBsly^KQMh@6k%EOa2nC%rKTtT5kzK0&Yqejx^fIB)=#0IscNeuP>ET4_#O7W)(_sY z&zv5Igzmj~Bp%Lgc^m&B)T?}Wlzf-WYkva#<6Im;EO)`N>7?bCmY}i~CQh{yBe4>@ z9gyeXN66BuTfk5^_&)Wt*Sl+LRn8CuL!xzo@uONPPO)b1BYCj_rtni90n~&kO*&h1 z2N0{RbLs22IQ_}xbDG^9$e4{(?^v|VsmRJYI z#=1cZ+8G`FCf=^N{1bs=80yh)81U2G3^_fgFarvsB6KvHeZIl+&Tjy!=;dnuRo9dz zU@BR3YZ?{lvN_F)fJ}Hdk~Q73Bl8YRse?-HaYTjetco=b;h6_;d5;6S?nY;o+B z!`TaM4p8Z|Cns|i8bXYI+gqd}IFxh!LLVd#yAc(N1a-F{Pa3p^9@uRjQz?Bv@CECK zn`gkYNa>PddLR&8yZ4k4+!r^Idj|I-tv!csd7Exr*DQ+Q_DK1h#tbrQ957V?OdZ`N zJ>!pGAZ*ZFLd zna@>PCvN~2gv|xkm*!#?Jzx<5$WkN5rOVs0KXBL9VCai4MXNQ$RGkn z$fh?38v>^v%ky=6j=4!PSFs;+x`(Ra5Y`DT?ChO9RPAEhW?Kwz%`I1`#S97+@#a1{_1+b{^x9}!@t zhvPMr%@2j3Bj;Q^_evQM`MQIxrc?OjM=kdtnLVxR(^tiMBl{^drMn9B$dPG6v`hnq z8O_s2r9}<F;Y# zlOJyJ0?++^4kZO4LWh#;yn9B3e=-RFkFDCd_{m7*k2HRcz zeF?P~ijgTu+>xf;Df1Qj8SP4{Uffh}WVmtURsbIE^oh3z&`iKot}dwq$J%BW4z_}% z2Fw$^=p`g3)s@$SKFrv~du z!)kQKt6z0p$TMVH&(;pkX71hZ$d4-VCW!D_T->CanXf! z$Xz_8(~ClRhuLA>bHR=x33o&WyyoM{YLv`-XXfHdN<3m6InfV5Gftn7W_G zmCfV~PT~=J2^p1f9>XbZrd<+2wi z#+aRxwVjpd8QSqG3k-bYhZhfkH+yFCdPS6*hW|n!C);Coi$}ss7nfZg@$=jne@z>z zky4GSGFb5BdOM&Sk)|}O7g3Ra`A=f;Kd3`~AQ@6^1K#w1a>xJi#V_g$^`Got3PW(? z@kz{+DUZZJpV99|7U%oO-mN&vTdtEH3z*X)7h0_o3Ufeb;)kBWmL_Cw8}LMSc4xp+oc-ZBdj;mXm0&e0iC z)SF7frCz7ttDhg7LaKG5(A8<&g*)dr31{}m{qsTaTt6b1x4OKl-L!4zS>?H-)OxtH z{G@%KCoU6su1~-O=i{QOxoSp%vjs~CvP|9t0`Uide4igdW zCav|>Ak4FOcB~Mj-Xu#gmK5fS+uYMBLhEs3D2bdIUE^@J@>8F7Dnr$M*GY7+wsPi}Ghw^7=EW*AH~&pmO28 zv;^3ys(M2jQhMY2m&Z%q4Nwd4I(Hn48RfME@oFbW0^5&!=GL7Ei@q z=&h;>IZJH=Oo7z88m()+cFBTYA&E!;)|J@?rT(~V=%B|PFw^*G)T^?@Z~`}DTF7O- zP3uD83&`HTT`wan?65m8z%vZcPDryC-CAIxuNhVQ3yJEq3Sg9mm}idlV~GA%^UraMx`>T~q^Y2)spPu%$3Q2Iv^#*&*HRo^k9&lg z9V{Zu7@r;IKfaVHekSaS?W(^|uwVVl)XO4eSts>P@JtBd1gjpOgY?J<;~*V{K!f z0lm{}T8mi@8C9SvS13Ix*>*RyozoQ#+@H_Y5^w-ry zMN@q-GMK+DbHUu;%$XMKDv45z1~W99ogYOD^-M!ACB7BwCiRJF8yPoodyAz^&W86@ z5~Rq8LIUlFSH9Lyq;;TJvmzg?D%qRl^;v##e)D?p96%`?>ta#MUwSLV@;(%NN*zJ( z>iUidKm*SO2AP?f7qv*gP)@CQcQ1&CJ6`Mj@S zPi&(WL>l9rpCN%>@_QJgWZ1MVpX3A5K%db57m;11C{-N&ei7b8mD9N7w?Nj4Xz$?3 z)PyKmMj;dvl9pSgOdZVO=yR8ChIPDxk~njtAGu#CHq>U;E;j3N*JiS1^}{lFyLJNg zR`kju%SnUSVYoCcU}c`AD7jl9Q>;muY$fH0oT9mobW!)Ac2rFo_5J`_HD zovMWzF>g1DZzFgF1vgU%laK}BXF83o5fV3Sfp$g3w~|M(isTW_ zJf#il%0`Lr2_+x7bb~fV?6~LZ`x`=t%NFqzi=0JBPYyuUeE*#9YvG_rmCfPVNOR5Xm>VJllI zVNj0?*c$l&GdpbGIKL(IskiK2qPWwsg!}BK>NM}!)o17-A09{ffdszW5=`P1*n=Nx zT$i(gDb5alY30ku-BB16T00#y`in+TK|wDRxcuf)>K;-rX5_!$8|N6JypGD1I->;q zm&?{+1|C>V(@CY zYXJ)B#JoX?Ke&EA0_AJxF`GK95`R>L39`N1U zgf51MRzP%kB%OM2X)$EtWi5hJDo!cqT^J2)He>&3@fB7rqDR?{^ zmygY>Rcr)x@M%N^x67ToT zz{krY(NOl?O*8R`U+;MMRqLbg8N%@|FeB1Y9k@oc6KzVq^0BxiezRJ)n1A(s_NVvP zV1G$plPxyik@?WM)*B@-+D>~>_CzAzV-~TQRM~s}rG&S>0@sNTihu00Z#t@$lI=3J zw2|ExdnqMmsjDgn_1K+CgH5AKG?wDqD>W>oe*P`?{zHB37l5E?>vcauOt^c9IE5$%MtjT>+`_}4f!Y>I=s?v-MlJ^Zzu|%}w`6~u%Fp7B@UQheelBUt$Hp5w@ zJ#|*OJoq0vo|-s@c@ZOV{`>Y=*|!OayjECeV?#}LpgnK94n#0d3pE*XKF=Sw3*1pw zLkLF-28LQWbV_O4d1^ppAC)Ngq8xueRE2P9r2Hd^RGQO|#XgpDobp}AuW40CRx0^6 zUQi#Qv_StM<^~LsJt>jsw&Kk(aG`z|*lU>RvomVTT>*raG&Z&>+;OwgnGKOmo;bC-Xd4 z>>UCc+7DZm8dFM6_o}cH+dIX8A)ZyEV#$%x1^ok;1;r#Mu2ykW>M7 zv3z0s!6n^lpGdbu{X5l6Ik{__qAt(huQTGsuzTT{_%W<00h4uu!ql8%vd?{WuWn|T zZQAgW6~?qWMh#=-LuwJMwOSKIuRfqY>g5WO@TEcPMYZw``n$#Q0VbKjEo3evjdGv5ey~pWOQ}ow-ur?Sv+H9hY7_zIKh?@9GHL!*+mS7^h%G z7%Y?O+nHdUJ^!??6XYw;?Ur`_WtPd%LW@bV?f05{9puHe@4Q}%=qNS&KPpHjK zu)FH^#}?1T>o)}g`GEnLzvao}T-ISxaq(meK!P;Mi>obXxcSU`*Dni<5?=R4>WE#Z zHYTd*?r9$1J9X=Co85VJ9~emSwh>2=aSMcA;F%}Fr7NW+zL4lSjq5ko9>Xvb&bcM@ zk?&m;m6c_8(z!?~mZ{P`^E2#21_!uLZu#J4To5!f`}ib_gpiv; z*?#9-x$6WB2qRMigG(L$bDPxc?~sH6?}8{p%e0Yt<9#0%slhW-dyK)f{A@P{krugJ zB)JL5Y7m;Uz85H0q<6%jnvVKjqx>mHBTj54l2;kzic?h9$8UKj(qbg~kB1P3*YGUL zStM@~PFajTpGYwBWOctsS2_&5{}d^w^1MbMW5o=&3%(VtNtN|(Bp9IkI(HDsZ`0pS zo4Jn7rryzFnL1()A+g-z5?7#x=nGy+0`i=dhBqdv?njRcRWQOMDf!tpMBdj@O|zbj z__PltR~06%$>{Kob3Jo=z7brDBG_68xRDf zyO9P-9i&6LK~S1OL`q;lLP81Y?v5b@v4EkGp`@fsq=s%3kPvB=|8aU<_x-%jvu*DO zw@p7NIGpEkthKLw|1EjgXZOXr0CkAFx^!VvV_a^I*A7G>^a2SXWsuzhNpaYk>?W#V zC5EjqC^3B-Z8j{n+gW1X4;garg9{^@u@BbPJ?}Onj z=O}!aj|U(z;9Uc1`cq>Y`9G&No9eg?R zgup~@e{T+5!>(^k>De;-ik-CnDD#ZVoS7wkK#~ccLILvanGh3T zl%Ldj&-(96^Y*U`b^+<6@=vcxqZA|~cQ< z7$GewTU=S!`*`5LL zjDdYTKu&Z{GP;E@7$h=-A7J;7Zms&3 zR6Xe%Zywjh!i#Y;ZSB;?DTk41!9j0X47{hw?_qG;G3)*;ANoeazVcqM;oo9l$V7BM z=epvYhA!H2C&{jWt;krg*h;^4$#r`ST$96omfn`@4VjI*owhz3h2*gVX_3=ek8=qO zQW-nca`|HY_#WM!%n|UL`73)Qc4qv1kW)Jnp23?-$03mkE_X{sg5!n2~Q!aKPVxIA^53U7~Srj&oa*@RqfK$*m|YQ)WBw>ARa`x z{Tr_q&QVf^&u*k{(ezS=kSQzSG{Ywc3^;C6dY0U&p@@sPLg|*IdNV{RUV)WB&!t;> z56pS9WqeRI3{$_e1}o=?0tUGYMJ8o5rGU&~zAAsHuWJX%9Oe5bk%K9=PV1Q3hwUM~ z*Lw3~q820+?lr(duDUJdCnlezEH=;OHc0S_O*I`Ru`6>F^euZgT;_StI7$s2K4|T@ zCcyQ5^4>b(5{0+QG*C=K983Y<(sQAO0842!-M_ktBO~Hn1;t~&oyzVR<)`MvH7!0| zBnpO)Kf<^3yp$f6?GV=+w5Lv!eFKEdm-Fw?+u%t@-aQk2B{Xo;$*7Cl+rJQ0{_rx<)}hw{gEK`{U4N#M(9S z%Z3>qqo(3josgwnVb46Fb>*;!*r3)sJG?hZ-^U>7qcIE7`r3GJgW>OMUGt;==!)N= z>d1TJ9w!uC0Hr(|jxC#~T_y(+i_*2s<+7;Jo_fXbB^zMHA9n5=@3ERLf(6-T#`piB z=8dqau>thnr^oRGG2_+){2i(+GTyZ@(i9C80mD<|N7G$AwtgU>Hlx_d(D}i%}soK8y6#gl+hF?U~_Bn*5oueDt2}_Ffrts5kh)l z>d$r=3>Y@}z5vG*+eP6JyvSx!I8xqVgR=61wSyytWIJcjAvD!sd4k)|NgZ2Cb#Rq*cloFzxECZFjCU)NY67Mh*Kw-X!L2V|zgM;n z0N#G@JlwIbkUPz)@MLRcX%{(-ul9T?d>0$|+Jc})o?BdvlzNF#t&wPP2=HEzR>ty>qOvqw-#VFa~rH8!4KwY=o zXG7gv!1C~>pXb#euH7;V#b*b2mqQ>O+ta&F@|dwsuM`&K2_Gz&_7QGzwcJMr(LLN& zwG40EQ|sbgu53G(@0g8}q3I7XM0rh>Fz#0fvsu)BU^7K?XO%-qE+6OzLrFPb< z3~sU3(3*yX$4yy9=CkxgNa{{SW_Y&inI(B0z7eta#Jx8vs0rBp|GF2(g+O~aS$;P8 z7?d(wtk{c(6OHO>oX6}BiR$TmXt(Y^5leUf?nODcDB+)iTnZ=iDl46GPPo(M2M3(yUiyhJ2>%gx|P_p$DI& z1-Sy`BuO=7VWPK~sEvu>xyN_xE0xjIs)NOppO^JSKiA`=Dee1gSQ_R; z8t3D_Fb!Qf2k2Ot@iVFBE045(bkDUXE)M+16Ngq4?B(o#m-iyRiL}LZV>Ha?~-`3Kz493 zPB0D3-okI(#K}SG_%ULyxa>fOE$c0t87gigyz*VTGdPLUv&SX>a}w7>C$YuhyU)-` ztdOOEBnyg)2DOKOAi>v67f0l#A(dCiW%V0o@!`e@5+-9^WdkeKw%j(5?xM%dCT8mJ znLTN5dPGykha=xdw(?6Y0DtXA`5^9}lk%Q7@PQ1WA?S0uKi*?9{3bB{pA#24bpLO? zq0q){FS&{I90XH3nptI}KE+2{hgY#wRbq(g(KuGQ8FQZ$4GZCAU8H`mn0@sUyDdaS zS!=MwsM1sEb+$&ZeFH|vfg8I5q=zoN_l1RvIh90VhichEolHduU?e*8+zh=r6G>sF zOF-Gp65No;Y3b_f4EU1{@fzzaAu=Fmw-z7-xsGgH!P`kM6 z-N^n;UL4`_b@b&1_>omT7}<~D_>UK0s=vIM_R0!6&%xZf$DSwdoK)4$gIj>M<012QaaiVf;^SAKj^6;IMlxLAbbhyz z3KSc@{{~ZGn^z^(reIK8*k1jRzr?H8(ppHIYB)1_A7L|<% z#zibDo6yd2WyiR1JlNfoeKS_?aYtgHs{4z*Dd7>MvJk2Gk`mDo>UA}#*B=CIJ|I70 ztp+s$Zgw99)dl^YQvJz&l}CA*pG&kRsd1EZCRBrJM22&U2feSRjqs6y1O}V$ zi)nuxe_oeFtQAPX9k!Eib=91`_jh6si8sMBkn7oHuvqP%OoYB7uK4uBE293V`$*Pg zmzc8qt=&8{95Enk-0csHk;ajqb{c#2!>_ncr_^s#+H?_~!7)11`VKbpJqRy0X~>}; zAWYVubgLfNIi=P?pTCn{4=oVb0Gn2;jklS^647dfwO}Hj17=_JFkIE>mjiNB^28J# z9AAko#A4xn{ZYQ62zQ*HZf8RE(;aRFr@&A;1TKQF-17ckUq%iB=Kw-Ak?KxJqht-s z^H0%Jeg3M(3zbJ-KX)csi`tYeL!H#39MWxtIK$Q_rWzdA-%{^J*jp?T>b1dXoD2^0 z-Z8ar1MI;g&_r7IX8ZXfp#fTl*WWDbu8;6C>xfLgpXMM9;$_a>hvguweGSe-`&@CCL1>#uEZs|i7ychk z6Mh33rfRC;nqjAC6FtY&TjC*E6W9fGI}*jLe0lR028JhN z6&_^=O4&v$N06DQABr8)f^*bRG4O;1@C&8rM)G8)k~CrbUnxF5182hXZBZ#Wd%KLJ zEg2KTyMTgu%oOD`)-7QMa!?At>1_u>>4i34Ss%4t&i9kTP}1rj8p^Vcxw*H)5@d-M z!Q8Md+7(PBVyw6_DC-4ls5$q8NBm-AnG(pOO1_Aj_(2d=Gw>h(;woI-Ds0(kdc`@Z zBx{c~*c*{y7-Tu7Xry3+*-ltICm6E(|5&tKL1B^McXhlKy6LH*d;inA#de+cn$sY_ z1=@h6SlOZz28xZ&0hW*b>+U{0nlO<7fxsb#w=nvt$+^}05VKtxKm9e|I87SMGDO2g z@|%WyNnztcI41B;ke2>eoer*s9GE-z3rYVO-i$M1Gp~}ng$qSLkErvZnSHIyJ!m+1f_Xo?YuJ-6yDZ51}2qDBBtQMt<`;)&VmYG>A%LYfiqsLGU zNKLg4IvK2O_499e1RmS1-yi0F{tIC01|8qzZQKv9iq6UpJa-IL7_lSRg+?F9#6-!J zD21RAdoCOlppbnkC8Jg{JOy#J?hKKsmb8R*0grX_U3_;l3Sir2{G3Mtwy0$(M z$rTRtyjKNa7_E6~sBH!+T8Dnx8;r{h+di`(tWI3yg+tJ=1Hnr7^XX3>L{E?Ly!MiM zrV=0FC;c&9^dqL%Hzt(2NI&-g{sFH=b4+|sV9v*7;~F!~9nMRW5FeifJMhK$hH=hj zfUl`4ZIynt1(-xa+T>b~f%AhNM+LKcDZVLd(SkbJ0n55_=6x3DKL{+W`$oI~4mqiH z2ESG%tG#YzJVMt_nKwfXCxI^Uvv5=vixp=yggV><`twcPtVbs zNs!sOc^sGD#f8j$0R-50ZET>S@UVtR@v%}p?qpb<+4JIpemOG4z~>e z-TdJq&Iir7g^lFjCAFs;ki9XnQVjQrj3-3abux4}w9V$0U=3XyDo?#kBw&%RD_bFHZOhNnxzhgwj zK);tri6`o9xIBx4Zsi{$iUuk~5F&^G`-fN<%J!yemWhVd50^WAUML6BM_Zr=oGaze zEKJaKho0IMdE9su@qGPrxS3fo?ug2JThTiR(7q&^HTzagWr>C(DCAP@8+FDX5?8_ z`hTY^d~(=0Q??<;2NzExS-klIc*l$WX`((u)$i?EucAj5`Xh}z9$t9g6KDNUR75JF zWo9_SFSv)fp{3h7EIyXZ^opj0aSKJNM4@jlA(F!{O0dBd`F>;-_{|;8kH6=JX6aM| zJF5nbT)T@|skM!c-1DCrbwWmeP1VrxuFnKLx$)1&`Tl)!qk?ob)K12Fcj?4*stqv6 zyY8bbw;ri*C_%wUCYM@+VKG$M)2MlJ=dgH<=z75isNn`!WkXjTcqCRr9z_d?H0{8? z0459)MXhb9t-OwOUJPH`vPnVzbSb4??;Y=K*O&$iT%M3GQP08``?wN@#b4^rz0B0b z%6eKR8L|5FuJJc6W0c>GfS(kOD)Heu$&QjU&?=eW={j=W=V8INbn0;ZcN>&XxzLHO zpwUw_9H_Je-0%pmU6{qy11KDxR5CjS&z7bD-`XS^2ex)tRvpb(YPse#kdmL#oBoWu zn1!PlfJB%$7B`#;>P}HjU0M@A2J55YRxf^gc>?RfdMuAGZ=Idi_r;GNKk&tLyX<*g z5BQlZYVoSPv))gqigXB^o*+g9Ja7xKuR=u9z$54}Q}2@Nxi<@*^^hPQ_wJT2#}D$* zq`cf+squ_r9>&1enRCMwm^s;Uq!xqu{J@13dUAjE_bg4@jr-R*{JM^4zgP&AHEZyzsv4&1|QhF5#o53Ro!q7R)BMu z+|lFzpR>#yy6Q7Nm_zx8;Cs+rJl^G8Di;mE1n!fIx0)jbPR@3ZZ`bKT`7}|kYyu{E zg`MRA6}B7LnPkj?jHd&y9EFnwf-eB8YV3Ay^<*93MB}$x$0pO4e9bfY3wwf|Jax#m zug?3RllHIX#m5?qedQ{Bn5OkCh=oB}t(eK1q*>tQFxC4FD)k@3aVhBOdZ}Rt6tO2n zG!f$@>mciT(CXceN0$YpqYY|xg`Yzbi@rv{@KwN8WCo6&tJ@Q!FNiQD*)_m-tY|zB>eVy7_JZ}Vdmv=K zLk;Ia-TXuZ$26rZe6Tc|$^yrFzy!u-)<|#^sKB(pO7c4`4~t{$P9? zP0$4E+u+R79e1N3n#JMfvZRuqSJr@{qBX!>j<+ae5tP{QyjR`_1PWyeTqgFR2bbb8 z=lJjxv_wJS)pc>xcqWPACi7Xpd5|Zwp&6aw_fq{SY@8GWG%U+ikz>Y_{6T(xJ}||z z#pK`8g!v^fh<49`Q)4({Wy`$UHoE;F_eH0gt#i@c)Coz%ui*fY{UHgaf=|{u-Vc2^ zZ)b2qRvkuV8*}9_ZkagfF`aurno!LkEZNStfakfmK~pg?YB>OZYj>fg=?J!)+N_RN z`P8g_Aa7R#Y)=buEHaa9`$OV0>eJ_7w6{s%S~I}jYA1Ah6&dA6x0DyhW@w8V63?PY zgH#iHkiu)<987gtM8gDCBP>|I@|)L>yK%L;q*Jvl*k;> zUzi#P6EXVS-t@u?Mz_r{AsL%=jAH;WFCg-P#0s(??7AT{B7w zy?=g#ZLvhIIfrpTK4ZWsIuvPzm5E4tUJn)Bqy?{lh-q9OLl3FU4tbf^aDmkI&5P8o zeV<^w6U?hA9!K8q)xycnKw}sJ9e#n6r|=7zT>;#iUJTCco>n$_?sv64L}tNQVTh0y zNj|s-Vp5??A3#+*b8o0Ba-@tING{m=&mi)$8 z{m+%=PPiniY5xTwQ2#Z#zL(DvG&1YNr1(~_iBogK4Mr2=7N|SSsiH|{WZ(-J;vQGz zI{@$(KcmjqUBIr}WQe(4^D$h;9k5xhGBsgnH~qK8lA@HLtEF|edf&ZVoA0~D6LdfO zJ-~4v@XT@e1G>GcBA)^8hv`o(LCj2sm-8{aTWj{@hEru(K$o_ySqvrFDV6{z;akxg zxg+#+m|V%Mhny^*Lxye@T*#B|BWhneB5FO|I_zamSXBsHGu9q#Svb60mrPP1cB$dw z(8cY6ruuqf{!fali!k!Bl%CV)(LsYeV2Vi`jMtG7 zW>s`mTYs8|Sm;yJc;hyT2{e_QHOPvu8<15M(ADD8bs#+iqn=8j>2igaXa@khat;l~ zPdbdr7;?~?c1#S^%Ud?g{9q1LBc)2wum~Ki@JFGGuZKZNeEQ)V z%>v=^q4v0mt=$(wdv8#^eeOyfZ%_6I+fRTWfYH`?y@f=bxuEljNn!eqyDDB~$LH|h zSV$Ry@inF$ZoRdf5t)!Z_~@~biKQL17Xhj5rq$86Aa<95mwe$H$QhKjMMs`k6}UGo zL>8Uv1~DKhiip*jkg;x!MVI30S4`F}cAh_z=a?j6lGUQHoD)}r;ZO;3_oscD@LAVh z+q$d8{jbYO0apu>P40~uTl}p`o~U7f0*(0Rg zcJ`g)(17C`0a-@(vR&#i0O{OC5lk@JBWc6!dl5y!*{te|>pA@3?)YagVz_f+PQgk! znjN?#N>LBG=3X779m{uub+pr5*ISj*r5URO(gXPv5I1sKA5C+8gQ8?6`*|OR_ z0EXknaU=%;Z&u6DB-kgwMj$U}dWl)F=wG!7xo(i+N4hD1bQq;G^+f4Dy!QvzF8gi| z=+6gw#49Um7PyMNxQ?pR&%ph*LB08F8CVsFcZ=tgMK8|>BTM6e_ibayYyzqbHNryL zF!iJaDt-W8fct2Z&&J>S#RTFKf43Od7fMB5mPORO0pSME8_DvXiiOYfEij8OcB4;K zDP@)ZTRQ$98}F7R_H4JujW7m;U~-)p0@1&JWpN4~GQn4MW#x(rfwiYpc;k788Xl9e zwRQ@{XCC2)_py1uJ<8G^)Yox0klLKdd^upvfKSp&HenBy<3M=T)B7N$zHHH1iu>5&8I>LN0KZH;O7X}l-In< zhD#AIE!{>KH1{#2B?jD)-_{{=$ z6@v`!xz6I3+sw3X=T+I-rbv6>!tO2m?bd=Ty!4w-*Aq`U%K6GN|HajCdmJ~r^I_LT znl2m%R+Y*1YVcIZ!jcj|B$%b(s-wRU*66pw`mKJ#@Fs<+(pX*@HqTP@qS31mbr052-(*?Ih17 z@ABG=r=PCtO5WU|VPQe-vT>&E}mmf8UQ#-yD1Ur&QZ zc9648_E1)BmsP!RlX%^<_Mm`%PnTAM+8I&?oPCBjmX_g?i1E1A>k;KH? zu6rPYyJHfVNrU~)TR}(6cQw1vc%u4;77i*Is?1ByDuQ(^Ic|@84hQT3 z56Vj6egZM+d-T_CM6R+EyMQLWuU8AeUNW`* zO*w*>AOgGuCCg>TP;*=e2d%OY-Pz1z2>_op?5*vSGDs7l3i$x`opIoEWW!T&LpiB< zI9^w>OP+)DQ(5XypceZ%cnvQD@2@6>ySbsg3esMfx?p#WyC}t)c5U0~t_FV}t z>r{}GRd)JKUt!$Pi{b;^69x6u7nz`$-2G_8~Xe`;l$W zd~8{wqB0P2nIxVAMIssfD&0!c1K4*rJqUj-U0{hS+`=vL!SgS1-Hrc=f1NEvrprzQ zWqiH2na6_eKYj&5sCQGEcGCLm?<{mBXY2a zq>_ga$)i!PRBdlr1q+2t1Fp+jEfx1|FG9)Q{GRTl3beSmzeGrpc#;1n^45T%G*1_Q zJ9Qsza|ietuqMD4VFgVpte@6aWoyM#sB@9zTTRS~y6d#Sw^eI|O2>USP#R$o6q zt{e40T`(MZv>gNUTZ-Sch3!|8re~Un@^J_SS`vZ;0c3rcJ-gQi}bqoK2pyBW)kELJ_od4kTHzPg*%Nk#c1 z7*l%SjGm4YZ9@bTh5(tS1OSK2ft;=HoceZm`xSP+1irK@3Jm3sb%r(mAKqFC6c}=p zEd7TVNf*o&NVdLJJW~$G`9zL}%>a4$YJ0h5_cN|`<<9PBPg4S5Vam8d#7x-Zn9Vw~ zs&07n=7#W}({#3*b$R%kHRe*Bs=Zs%yh7cqHmxho{@t0~Vg`Tk&&C%^O)91f^9_z5 z;Rqs>4d3X%5Gb|R#vPg*?*nJwK#JXD4-jOfzkq;2ZxOE55k+o3AhJQis{GJZ*=0s? z+_$G@OAguN{#Tw-%I3xuX~tia50UYqSaH@o$!t?zA}d~)ts@~*@mw_6!D`vf!yK1Y0ii@)m&78U~^WkYhxd#u3?iLzuMZ}Lq0O6{>o&- zb9f}(pj1((q)m(4R|JtxdmXca`%V4$4N48#AH*2oJ`E*!nSHi_MTgzEJ>T6;g3a#i z0kT&^XOddKtiFvPER4@z1ygq@K-9;F0W*U991`ork`7zS3ff5o*F6J9o>>tSW%_T$ zLLHU8)RgbbIsWg@q3K8%8->bEo`=^K&AMX!Hwo8LDku!27X#=is#9&TmKYZ@0Tp7C z+k2g%|H<91#^%L?%fl+Gz%y=g^VacBv)gK>w;$OLEm*CgpFQ1K=7d4j>?b5zJUCDyOSx=DmzG|oTUX~!ZG6pbI#V+@c!ckNMR6JwJvu78mjvc&3Dfb zm!&8Q@q(Qm)osIcW8`<-PWc63U^Xh@H2Cn}e#|KvTzz%7a~WfyYH$ro_?L26;p`lS zU%`vmessB8lKB9(2lRTkKcD_^UzqM(QmBmB?TER{{|5PI^Vo)8G-`>gE(EpTopICb zUjS>R689`a#uGn-b%G-G*TY&8$G@f%BbvedSz|RDZ37_VW60QgPhx$00zTZQgC%&Hb1@N@~UXVfD0`T;z`Any@V(8 z*&e4PpQ34Q3=XmC&d3~;eI7!Qsg0gnw@wc*JUC+452jJE=Av++3MC!e7iQ2UmIZYEQKzKoULE- za2wDf7>9(6)D7D%8ro2fUROT~QnvjM>vRl~o*HG1a{p=|K?GSqZw9D5j1IeKc12sF z;0?)ndnP73$ptjCmZiZ2`57EoZ>kbLsB9M}ipTcnt9f@rg~cXpk#uzDaMZS4J%@hjy@Sm%Y_(nP97BPf*zU|9U$_&jO57P% zZ%%Z#S_-&$0%Z1rD>c83xvohC-+A922#geLZM0@p*3H1!S~zR_F8mgz;cPxMDXS3Q zvD*7!*=)G^u!osV?NeWb)HH;P0*FlNUmyJA8lz&ts>_ziVMQ(Z}}9V!Zp zU7LMSZpEAITs~6S&HFDeWdc%1wvZA>=1{@q52~*%ZLReV+@fDJe6b%p07YwC)`UAq zU{ew0Il*^8&Cv?J`6gsb!Qz!yGQJEXK;I4{{%`!5OTX9--pU z-Th~5e;9T)jTKC3BcQ_2T1$|6pc@6l88~dN#EboOndnfV^SAVc z#?6+{xOw1y-G7Q>a*7d};CK>w6-#%6PIzw9Qv3{}D>);cBex;C*H;qJB+g%4z5K~V z9xXl|P@HC$K{8yi94DSVQq-N-vQs3kt_MPAojlq(YCN~X)U1`4q=1F^cCPt*l*f>l zH*eMn!p6l8R)kgwA)xyR=t@QIH|#$V;9F8$_=mxO_rp9%b+n$L?<(J-K`t7`T$5q; zrPZG5quY0gG<9R&gAk2R!e|SEEA$xIMMrT57c&EN(vW=a*UXXrXCiXIE?b6JEzremwp174Q1mhy>>P72t>r8nPC#{j6LTaej<}wyTPs7BJY_aEeR$O-8^!+N7kG; zLLH6;p^v{MX|?!_49?M)9H%?WNYj$|5@JOFQ0 z$*_*gPv^cA?)D3xQ=c#3d3NF7Y&TW=sMJj9(2c^{2LAAVJhrCks5 z!CU8Ps1{gy=WKi-{DXrrX5wFOR0yA-J zKS4~A7zfc<24bkji&tBV3ATQSO`Tz5q9_>XoKQjSsRAX#?m zej>d1%ssmN%(c;fRS&d5=@uE`~BQDx{a~;#5&JF+gc9Pu7jK`1vR& zd1NkYcecdTH1f5JE?R_r`MC+uI}XE#hY$lKh5Y~j*2KjnU#om(C(0p9F_c77iBKl) zCi7DXLXjv3%GR9G*r9eJ;mY0&fe)#y1#7TXe+pISkk60U%dhaGYFx0+)NTy8W)9uT zWeW)n*oqY`^7%}cNfDef=)D~Op!#A53~Cf3SgQ2`f#D=VH?bjJ)Wo|U$~!nHOQ7~N z?}+rkJ%bcC=)>&lI};mjRlbbU7m>NfQuGAba`wa)=Q-GiGz5l~bS6f9cX+Spr@f_m z^R(4w*{gqMr4ldrWh}!Zu;atQqGyfL)l)=KW7QcUKZ|Q_kj?XsNs)!gUwn1+)r-qN z?Z51pA`t}pYk5=V(tBa-YoEAv&i#3%EOb@!>AnXJZxv$vBHI!oVP zdG98JimEqAj(pe2>&%4BNstoki>+pGh@2NeRYkuZXt~-zM(HlfU&_>BYtd~;O5Twi zCA!M4?K>_y>-{weJ;|M~ib!0-cq?QKB@>LP@Fi4x$kw3AJnt@Bj?mbpJ7jE&?lQ^d zqI(?vz%C0MBs|-L^96ikx7q0QRF>8+4uIm#q|zX1?6&9Cawihw@pxFYs|SwhLep+0 z0&HeB&;U8#@E6e@Cd6T7IWS`W>TF;c7~idJFdCckH*>k zatHP~#RxWxSSgphL-mVcKhFaL29Weot)LW8cc#cBGorlZIoA+#AQecr(>@dDse8P) z>OZ-Ev?_QDfy8)v7gS(WUX7=#{Rn@%bZF2jgt4j0`_z3V!7)~UMw!gqmccDHIP7Ir zgw#IGdKbF$F3N2+ZYOW91|d&Szo#iLpHeU10Nd_9%kPTkz3}vpJO({BQky*OwaY1X zk_vl2`S78fJDw~rlLxrYJm0r{Tmo^z;j_KDCmJ_xL|bDCxbBl5fDyRyviIR zF3wy`OaVYHHjlO+QIS?zr(wl=PxH|O%gD|g8uzJYu|K+c>ywL;ozFhlQ%xeySVUaK zy+Yh24oGyBF{N+@+?s7Km#zy}{+^I{KK%srv9(2SR)e_X)g`4_ZI2e`Vv(iK^nYd=Z4G{;2#QhyUtEiBqxqp zRT+)??%th1Nt6zlP3D_!OQSr)D;yM!xL%NOsW|!#wtESH?IF-~Ru_=3iOmAh_@5XK z2O`|K9SmFnl4i|1d{1yE zKMTnJ$$&KBBoyZGxS{Wc_;WH*J7n(w{u3JwsE@Q|{=1 znX^=2#5Mm;{X;wz{Ob~~a74|zuWN>1e2>z*B2bPPf3`KUHnD7XDXMNVS-v^3&OyGE z=MFq1Qer)L=ln`0POr5BUm#8qDPN_|6YNCMMeTLzR_@Q`jN*GDqO|uU;3e zzRAmy`Q&$6XGMs@2qq&#Lt>81M0|h8L-_i89R_&^m$0FAb*A)WX=ZBd7aX~ZG#H1P z&Gzm=2~W2aw1L^bpBg!~4LDBt|8;c*b5Lkl5KDq7g~q}CLYn zY#;ps)`yiCa|wlpw;*F2UG34R64sgJHHP64{?El7KzlA8?N1r>VK#70J3~l6_gVY6SS~s&$tivx=9RJfKIH7gXTm>TG_9yH% zq*hEm)9cc`$KS4aaZ2)5w+!`GYq!x}*WQ-exY*GxZ5f>Q?cxSK9^`QvSA5|hr)gnT=Rv-*?E~FV4l*0{Kh`>kFBCgs`VTZ; z3X-bz&L`%*%{ff?m_2&g+t1vm;n@*=`90aD)8tulfDgIw(6YTH;7Z)sD1^N_H3=&R zRP%N-_j1$mvz!VM66}76kh1q|n0jq)o)(!=!~d%u5qw(BH2;YAj`A#YsR@k&sJ4r8i7O^Qg%;yybd(*Vh#*83+ZD64 zauBASjQ1;Qth!-%O<*0aZpWkTSr)Da)2R_zZX{2x>`UMC5x9Sysa9p0tJpIQ-Iby_ zl_jvU5sc4DZ;OhpsqGS-vuLmy%#{#9^(`HOD2s~$-M82$JX3>ha5E*S?6IY(#en%X zo!{aCjzb)~g>bTAfa=56Bid4CPu;>Rv-X~bxwcd5Z9$z>MS>CW#0|0|pl`XI``LQ6 zNs}6G<>~UCQ$?M6(+1j#P}ahgA%&=)&&Bv|UgWLKvun}-0-?AkP# zE+k)2pUT|eFlE*6a17+QvgC$ChKg;*g1Gl8bQ^3p9rx39(k#Q~>dU@rlDS&qzt;5S zqG-!pMVk>i%My-g2?_jdO1w^DPtt*R+#*jDZZKWy*R>UpgF9_v4mk9B>HRC_^mfs3 zqSZI0{}tzAl(F8N#&y;S9U8lv8F5ols{^6AH3C*6-p}I`wMhFSFf`*lvvLqYIKvP zIS~-dD_hRbn^BkEA|(uBZ8EA9j$XA4OusB>k-%>U|5J)cw{?X@1MZ3wFtR;4NOUj=&dMxJ?U_BGki2E(w_VSqEYxLY^_=!~_m zPXPz`CZ)cL*%vYA$=krH@>uH*6zT&6kc7F9aE^7_Y-S)tmwcNjHCYq?X}ty1I$b~} z=9tnHe)~nrE5P|l6w^97v)*-n=4+?^i)s0NV#df;;?I%$=Si|sKiR)QsLrw(urw{v z6Rv1lq&P3b<(g_?DqXfZtSdgSU8^tGI{`c|8beMb+uG!o+B1jiGh2y;WUJ6P4w!ul z?(ru0HSlW}%7Ar~X;NRT>1ynUVs6vYK!d_&=X=6m6<5f zxqa;cpozS+(Jsau8FjQ)&H!gh%VOWt_!6dbCA|}$fcA9Pv?;k+FG`=rXR}*qy`$sI ziMrR3EJX`$$Q#OwQY;3uwdoUXKP9J*i8ONh(TI`Q$v3r`^X z(Mbi*k&q=j?@o`waM`f12^6q!zELTx<;cr8DPiG|za;?Ah;f)1{~$A19s=GpQ!;E) z#_(3{%IGTiBbHq4;+e$lwJpklt)*uHS82K79o#I;txgl~`E(7VV9$*eM+8qfhfh8} z*VDo8J6DcWbDp1m1hGb;Y)QWb(B4}=pEMhE@)Q!ulu0_xqWRv8Y#vFq-1(W;9LG{5 z9XkVfNuS4EPI+Uniw{)H~c6HxM7auGi~7Wpxs|fV*LAQQIlb# zy^p@nPJMk^$9Diu1f~|CPqoC|iJExv6KLyudH&qN!2)Y2zU2t{oipI-Dt=}58cK}q zNPVewo*KSD!}+;)$M8+um4&&bNh;Lh85iDJp0jO(Qao;U@cak(*FNwvIsp;*G1Ixe z^7R?5um-S(VDtz7XuXTYUMIQ>UxBe{uBZPZwBkpOb3ky>7r7&BpAxO~I2Fg|-}bKk zwzT`X*L893v(mEmBl_d^UAdn^_LO0&QZyoCYipHB-LJ?fj`ZEBKUYkK%k!l*7!);0 zeg=96XXYxfes+4UkK;EH9^4)G=IZ$3<<&vR>udB=H4IhW!28?i-Mvp2Y*rnId>ri2 z3(tB63+~);YMk^~ugi3D1nDf{L+_sktolE#^GD_ykcNleI@pttX~ zP~Q1cU_SEa1#jT%g6+D8?Kpcr^uOi!o?4BuzHYhse(Bz}5^vAny`>vk8k4A@W zMZE8M(HHL11%LdWdYpB&SlSs^Ja7TF+{X}Ev{$x%&O`gjpCi9~fuAx#D5e1RG=eF| z#zyaS<+)MGr;@R|i;5qaN-cl0@+%$!_nM9UFp}YeK!yLaMF}Fi_&0c^3jFLILP^nl zqqm*$kMG%Yzp7!eFWnmlP+oE24?p;y$UL?R*uEG7N*Vh-M&acR5Y}3jOSC7- z#4=y>yWG5U89iQc?OoaBSs5Zqj+2+Xrcir_Ve0cZkKUxuw8yVOE`;7YCz1Qfr9Y&> zGP(Qr00GRo%z=bdc3*+h;GqXDVX>F*har6hwJT2m57*WZc+~55S%h!d6j^6pK^V5% zt>JzV{5s>g%G!T@yk*Em3Y8_dwI8B_awjeLu)fnshEYL1w;!^6sQ%WMa$0a7NS}iD43(M=Y`1&MAyKI}yNM;zfzAL7>8T})q%Bw3-E8}V|`x$LA=*D_!}0%?+0)F8vY2stectIiG93_<$i6qJtk||^= z8IPd>Ayei#N`{a`h9df{E$-*u@ArOwuh;MQU-vqWbKZOJwby#qv!3TPrtsV~3rgvk zxoT>y)N&#)9ZerGXLZJ z#aCN*8ol`f`Odc&ca_DR9|@+jC>8}N5}(b2fT*2@MtAwN>=lgbDCbepbBc)-jSQBJ zM8Q%WYn9QCpY|4ahgMfj_5YD+SGgtyfyJ zZm>G%8lD!_-m%RO%fcvksdBZr`ew6RL--cvZi2tr>(W?ZyU+=kHxhL^s>tH*-LXyM z%;FFze>pT^_b(ZT5X^++~gF@;3~kimop!EgHT|p(8kQj=(wHt3`*w)dhKA*PFV>2kRRv(unz8KJ0-@?jtWT*@h;y zvh&81-KM&7?%@4a-9Zq`XQz_gk=&KH$k1(CynW4+qJV0CK9K(L>J)p1KwRAd$Rx~C z)h^b8!cZf~j+>9w@&}$Jy#^(=WOd_yCMvOy*$Ta4;v@ex)Bls^Z9aE++WW3uQ`!>F zL;3pj2apWRlRQ|>#_pG;S>+0&6$6Tbc&@(&S=UjY-UV7*QDCJcn!LZo$Ju?z7 zL@qNCbNue%Jcpw5GssmPc~t8Pp9164Cip6xp)oj3A-Wav5l_r3O52&lL#=Zf{4Ri2 zM9nBoKNxgnSx>=QyRfQ<99e#7AmFR4z6^bBVJTcz7AUT?@_5mc&!1T$1JYBqOJG7>2(qbu9YF1+WBF z%#F+a+?5jtE)!by{mVZq11MRR9%Wr8$VJgTmqGTcXpA7FjCjJ3i}Lo42X#LD#NA}i@Z?kb;|lZjJCfG zhLK=%dVOWkrL+;U{_{`Sk@_PPjL#f9xo1Yk;X-`e^aQ9RihK7@&|D!SlOvzk?u2Sp zH`qDv%|WichO$D^aMQPcQshH#juxJv2ItH5XPYFt@-Cx31E?$Pxbl!mUf1EhvoT+@LFy2?JibY3rDN#AN51u(&Cu+NO(lV zr{*}9MwtACpkP1f`+K!OaAB(ZU7fTjZdh_hRxaLWbTE!yZde9aehk!NX`kMOf&ar- zYNqZUzhECtVJh=T#`kKURK9-e=m>YMHZIWi2y{LNq@^8?!Npc|>@#FtS|(51CYZtX;WfarPl{X|FtxVinW&V^dC#6vBpt8Q zmMC;sin)9D2b}|(=O%tXJbd8-k=^LrFrssF%ON97{s8q#m@;FKGVrX&&!be!qKv*>L`dE@BcjE$IpJ|RnZ0v|lz<0(~#tC;Kd zh$%lSg#n}og4Q*uA`Et+XGmZ?H3mX6$_{qmp`;l4I^dvKpyH?mxY!BhSSb zp3{AuCPmPR9RoH^P)BG^3ry=+6P=sSi17Ml`RA^|DZGK~s+h-}sDEz{!kaOF-p`^K z1Fq~$gqPSZRg0;+;LQ~S-S_@p&AZ2>L+}Bstx$Hd?CiT7*pMV<`qSoni$7;J-t_~& zUuKp@TwNz|ZvjcT3?Iw^zBEun>Zh6ZA1MW%R0#R_Tln-LG=3Lo*dzQlS0x6m3dR3@ zRc?{b%RYGVqwC3FZeZ|y;kbB_*~Oh>#NS zYnlAD?kCV4708ljF~4`9$Z81`wxYUi8K%X#;TEk2ks-42i_6~i zrXadd5nlC3W;oafPxaiLJc7`5=EPdv8HK~N7C4%0gPd68vyvmNqKxxd{L;efO!ida zaiZuaY)}19{VypsP(r#OZRdz#OR6}X{&!v^)K>)lXqpIJ=i}DV;aGcZ`9?&`n=UYu zLOcjyyhnMJ@e4lhdI!4k%!Q_fj{4uxO&6hmrO+A_p-o~yS`{~%0}S2w+@VEe$p530S9Ay8McA=g?B7LFXu>Wy4mBzEeB~e*N4ZJ% ze>|cE8%{0egiSq-uyfC|hzOTtk8VE-$Eug1&SZrCRSv_(=h8b1cK(T48TRlD4GL&k z&Tht@{~6C1Ibe`$Uli%+kG->&KQeA&+d`X1xw< zKp{={aCgEjBu?z}t#;;2xa&%X@Zia(fwvD3I5-s!Va70<2ds?+^85L*`2DB0kUc&P zVb7uILXnaaHQSs07_LWPWm}C#sJNbN$F$*hK3#>kPJ`Su{HFK1(=8YyaVy_uArMEO z4kdXqTIN;%nEj*yqrAE|zr)lg9jSLmfSPtx1~n^d_U8Te-Mu<6^9#12hWMNB>CcG# zJo-=X-75RKce$A-F6rk!Q{U>|m4($h@LG#%yGfN=0p6Ip zR|kvFpJmDOARuTHWP(FgxSYz0`>1GImV{&DM#Adw!=F8^ZtM{|PMGdwBJ~MJ^BP-0 zQA_qkooIwiR*#6A`_)vj20bH&VcCmgmG2Kg3;v@NYU}Z|IM7b$hv0wzu_A7m6 zef<%v5A|Y$c^3KRMTO7R?ehSU+VoVe{jrC$@uW6Me^8|8qUPuu;G;f(Qiua=ldF8i z18p9)^Gab9eNlDDrfXzv@-8TKw$+IiwlLRyyx5VUGiX*(B7{#k&J1^_ zqcED(&{x{TWkf_QwsZ>#QqssfCbNkwXc_-J-mVunV?^O5Y+V?z5A^{GYb3QN#cf4Hac}-Rj9pT;ib%)Ur_NP|9TB7drGG2?~uRRcU9^T@+^tSoE zuuT|?Va3Oy&gT^$8zbimZ2tLuJZ|R2N;7q?Y6+UQXL)@_J02RdXad2{hSg09RFUIt zMiNRc&RXR|-9|?$-hm5RrVC;r=$GlGsk@Ic3FgKtuU_74MQB;5t=079^p%N~3F@uoOC7t_nD-|eUa1Ki^z z+>`aCxHwK18rn0-6_NKBwGfw{^KGLD8@k5YR-R*VBR^j&^839kLBQ%CA0Hq-2yar$8esos;1B~irL5J zWQG)5Q0$zg54a&ub`jUKBS0Yz+t4T9Tu6A^ahSUMI}+TMBukf9CbIm^E^VA5^?`S#6*_y`Z`8({I$;#~*3loN4&V^nlPc3AU5cstxFNFkTSG_qcdbjwCr#zA>>KOpWcz(f! ztrp55JERLGB;yg}d}HkOsA?Qu$;#TyZsW8jo`K?nuk(T3z<=EwwCFhRLqAr%0mr#5 z#!hhqR{7^`Ka2UX{ot%=qT&-Q1vM$HY7|{YsK0Noj|pMja+}3`kITI8b~w!XqwyZi zf^eGg7T>XDSD^H>g+X~SNLzFCc_#@9cVaK(Hi(`d99UQKc4aO91^Ap)lJUS{a1_wv zmGb&x#3O*)x)am;3&(lk&TEF)GI^RqYUP*U^uEXr-q*@8^lT#~eCdOXX(q*})iyq9QgMk0E-7YNdIig8 zhH@nU-OLHCm5i_e^(CFQgv_$4zz@?)QN z&ktRm6s*_kBDa(M3G3HnnXqugZ{^EtqBnbv3PLaMC|#%CgQR+gS(u#SXZe8{=Gv(l zM`zQ43)5~Mfcrj%!K%iMj9RoTD@O2%1S53 z8E5T9IJ%HSzYz^(pP(n1Dg3VFzpjH2#K-51D3(U-fNJrv;JXm)p9EFA71l7vURd!3 zT83dL#g9Cq6+9}Oz9t4>iBWSr_NGb%M_`$R;FV=hVerk? zgYqS7ANNn;*o)oF1aa~lIOs+{%k6&ol-O2$ekfuNY5D(zD8W*!H@Mxj!2TmHtcJ)JRrL)h z`R9n@&NNE1y>f=*T@n$-m^``J?jm(Z->KInV^!GuPnxAZq2%RXPf|VHhV|Fckz+pCMRL>OpQv4W3xUj+Z99Gl_-&MIxwTBMn}LrrylUzThV6Mt86#=j zub-TCK4c>Jj{fn2i_9>obTPe=C!Ii}GgZ$pf|FVLNVMpN=`BmWtXoYDc;SdI#JTd$P0$K=UAFTmKnhK*Glw=rG%2=4jxMRE*!^+-flp#<&cA*W%z7@l7EL5HqF36#Ici596y~g)BmF z?Kq5Q(n+de-PxkR`oemyyS4OeiCa?P6A&Rj5;Qmx6@O7>Ap7OiyJs(*&MWh0%>_f* z8Vlb+;(3e@FwB>_jKFB#V)J(u#_)?we+7B7)DZg z22Jid{sweCwEfNUb8vdU&Ectq*DAd_l9?sVY{=BDjq|U6ExsQ+j_RMmtEn>7zTF8K z(Z7edA6?Y)ogB){B1N@3&=-%6xI6Aq$v}FqCzfIqyv-V7m+TU}YZ~Km!Zguia{#mo zFR$8x>lad48Z;M$!RVIKx7%6!qEC2M_AY~T!h(NtL$p9~k+9o`R|`(Y-?NC09`Wx% zx?QT(L;eGwU{3ti)ubs^=Fk3#rcN`+BpC{zO=zc3{kKi0?FoD7;QI(6Miea!V3Qdi{&RK19%M#)P=aTK93{|Y@Iu>Y zjvRd{GOXToLAz!`50`1Osg8CTb^tkYC^F+QuYlyYH{a^buJ16N?M+stUR@9%Ya(9* zGn+o4w+XbJF>LakYQt7>Jx+j32}2E(=Kw7{adOP_kz=vEVMTW|cC%e942t~pOgj{t zuCj&iwfSkvAhS5}^ItJ_Fjf2&qgd$5rmzBIZaJt&N3VkCcs<~cq2_LE$vX37 z7?Z*l(;dTB(@tb{Pcg?Xv7e~Y1W}nc3u0!0W7UP(qAXWU0%=R9*;;U@;t4I>=rG-VE>GtK7SW%~PV)p78{+5Zam_EvC6CYppJW!Cl<{6PO?>V8xB-=ia&7Uk~BU~rSBG@!6h;h$f)ye;e z;*2lh@s35yQ~(CFk5d5Fq2ad3>L#GDFA$Pgi2_bQA!HM+&|NM#ekYqryA`8c%{H4{ z?Wpi`U)W*(j~&J*rK5ZW2nvxr=`zjIOZe}QWkmVP&r@uqROo*A2-$PaH@&(o|9+DI zV&T01BILH}!N2qdsWUYw)TH+as z`7gcg^I&vmQvzNI^Z4_azkm5^wrh2w{DSr9`)-8D&2RhX(VRy4UaKbGHiUIPO8_MG z;I_?O9H0z8V`|=oLoLBNe)veeqbg48?-M3N2D515$YAgOE2xPaL%~b*7u)G~fBP#3 zV&Q}ClD@)*V_>RDjxup5dm4%+~@&wpJ^Lp5L>Apk-hlnbg8(Kr%??1o)W|ouI3wVZCLTt$UX8JhI{KY@*!uOso4=g65B;p#n27`Zb}!mcWl|1%*5AF2 zLmNV3J1BZw&%PK~F@~;!1~6ka zpy8?ki9T6-0$4)Pf=vw5?mP6Gj~yNX_i=dg2QJPjAN|kc{M(a-fBxfO>_QE2`S=3_ zw2bQ~ES$#)yJHaJ607I^GZ1_|KS>?bJaw!N<*CJ1b$U=f{7o+`|7W>nPeZ*|$lQDchoZnO zC0S<1)khH<%R6#^UELR;ej!acvTiUDj|JK@-=`w`e|$^0u>LDXw1s>Pb&b`w{;#hI z`{e+7Ai)w&BdD*%cnluq>_wd;>(7#KDiKBn#y~~9A;Y~B+@F$-VKXUCYtyd(cw-ST zuyu_o|Jus`_*7id$0awp0O%F}*Uuq~@Nx(a>JV;2*3PT0A8XlJcx)z@J?d|vKX>K~ z8J}s92qFSJf!isYNj+BNt<<+y+iYRZGH+7n@ZUd}B|PPu`-iXm=S=y@l0kQcgaaMq zbwj%-ely2;%P}yzNZPwHasAs5>E7d);9_ceIm`oi5=*1 z9)q*j#B#ZGy(00WAw!vHFP!%ZyB8q(a6#{>xirsXkg=e>lD3T6INK=?%5D^t>${H( z2Zg^Vhmix#Umrb!$`5=nAAq=LB<(l%+M{*{1XcCs@o4p7?| zNKD@gOBulmGo@>|{%t)^%fr(MS7)u-*pcvFKN%Shb;By0d^`n?-W1~9m(?k*_1P`D~JXqN993mjV$Kqr|w}wLzEf1WG zOcZt|8--o}JnPLfy8dh`;mhq|sb1OqXe05mFhivduJug-K|4ch%@$Oj9tmA>1&jGK z)kto|^fzqgz$VT!w1r4A1{~JKwO>$Fq2#;~zP3k#hc{6h()ji#dK`aGAL9^E)R-V$ zR<29&Md`a33>8HPMVom&@P@>il3D2y^D)Vy8D zDR=Ot2Q9W|vhO`~CDfq{RZh*nkO>XNV#5jl27p?;y?OB^Etf&{8<}1RWLEG*Uv}8w zXoNYz6YNU>phnu+&_#>|u{{#`=_F8=-UG(Fj%n z>M_S(^O~1Sc+vgLO$?;vub9_$Is)b2!%n%vau3(RauR8w%T%uv`O5&Bexd%v(d8T0 zijNiY-;iIaf~J)%cu8!VksE^zb}k^k`t!pR7sQ|p5u5m83VyjUsCCx}k1Q(kvOW36 z0q~oLb=J5`SGa!QMc`4u$Z@#9pUt261Ko9NI9q@86#=T*u@Qy-@r|!Ngjj5_WAnUt zvoO}a0boO5eDxjNFY!Qs#m#WU9Tfp*l>s=bej3nBZ}qs*XjcHEGP~)-c-aC_oP|Na zF=5eVemOE|`pqg#yALBF-$f=Is~xjfWZ68hKJQ1Bh~kE1e*bDmAfqh+h6!q-f8~Tf z(Ur2+II$l^ijyeA*hyUW-`LcQx8Or|t+&R85wr2fc+CF4=L8#pGz^903HOwPo8QKm z(GAE)aWJ}PoAme_I}nbo(YF6~eYbrm(H6>gTlkT8lMx=^iTVh7k*9=K zHb(6Payaw0s3BfZ8quR)IR_MI)<`9Z29CL+6x3|M{{vAi z#8=n0Dw5&JHaFWGLWO=AwNs-*bQ$uhSgqyxJsY9^+8wk+=uY?he_W!LbS;K<*yu)l ztFSh<(CC2@LUd3q51^nJXysR*$ueki23aVZzWbEJFwD~kap_prqsxavnYWxoHb8*i zMRcFJD>=#O0UU(%5yt4j66V+CRQ}DkugewXG%lev>8ZnXkBWrIUGZK)DJb2 z7^&rsY#yg<*qM=UP*C~j$@?FtE*0_%r%MAF+c)pXgB0_?4T=Z*7A`(C@|JM%JG2jH z>36d^niV=ma_qj1#a19&(KNzny`oiN#zJy|nYj&k)K~$Hgx~H0c1D$vm;Yx7eE0{@ zVU%GD0O`bL6pJ1`X}y5Kf>Q=dBU?27p3ocu7!hr}!WVk$itNCQG5Y>$+uoQ$r|z3w z?$dT4L?ecXoEBGt%!o$|!3WhORG{qCtls7c(}x(7AAG+CeJL7VIBwfdh_Y@Z1f0g` zcJi8}m4Mqxp8Ut)Q-Aijq<=Z5|0_)p!zg#Kg{R8w0GoQ-cL@)ha=Fi$5*#CqIvB7e z=3c!vw$KapW-tV`-jEl!zAJ&gnzXynR=+t`w~=tABN&rachvfF&D@1M$$&KDkS#4_ z>l7O2=SJSz0wE}Al)wC&duJfl_#on4!Uh<;z#r{wqp ztE~V@U*G38W>J?Hn|O|N${I0Ldfic5h+vTW>0dV&xj7@?g8xw{&I45^~l zBmkals*mLH=;WK0f2I10jS#tI0e~g}J*CihJL%o7O}sBF?gi5nvY=2fOGnfLKO26q z+eE_u5kjRW!J+h%vM~GBuP~^9?%Mi@XqE*XrK2`$fbS_!Yg3TD(X@d6k~l$j4XCJ1 zaN!tysj|6@(l->8w|SPLpd7Xnmiqgahy0t(0SeZ{-*>NqaDEz$>WqOl^o>73n1%_y z|7nRQyEmyT8@nDoWxs4VLSTL?@>lmplKkdwS}WF@^R>{Ia)m*Q+n%whnmFoBqN3{4 zKzahj_43_g@??!5?>m6P!m(P&RtABQEq3FeT1uwEckH_rmO2e$)gJMAdZV47rb5Bh z7_P6G1u>@iqKpTI2;lxXglo3N)a??f2WkEu`#nsP0*_Ss?NjcQJN<&-X*%=~>h4BJ zvFkbfcC|HtEc4`hnd&K+i4aE6@bje8IsVl;gZEDox^b%hlZgDYT4g*>j?##BxW6LSfQ9S&0(cGOqo-?Y>U0Q@ zT8Kh>?+(zjNIwCyS;u78le&u{hIaApio2dy-$L%at;qr7hqGs0!AEoOvM=;d5-2A?z)qVRkA10@pAU_*6 zYgdcn6$H~n5ilM!ILDNy@EI!wrZ?{945-0FLK3rZ$9LV88}3H=J(~5SKH|tg45)Vn z6H4=5pd|G+aNO7Sfg~WVI2tv=k2y_`^B81*i*F;kfKPZo?$Ed^Fj5mfIf9o&$bjKO zdWj*-5S6`CX63bozVLmhh|kIgA`#b1UmM;g`P`U3nTmtsSR}4!R!s7eefLI^a{Js% zvc6)-aL=|w6JzQmt0FLOp0D@nzJAhKc^1hNL5zBPID^uU5e}X)1Bybyk7O&Qm0lK4 z{XYH|Ck4!X{ru}9w?)rMQ~x0`T!4IGER>J$UqCbMJV+38dcG?yZUnVm8nUj=1oL?% zyp9q3KBT-4^jCW=XO@reQ2rLaMWIq#nza|W4_X;MAWEu;J*Uda{PFHU_x!yr8E`u# zNT|(BXay+fJ_vqOvIA1KhG~52uclf4oUoKGl7&G>z?9e$XhM*>Ls_OMR~4(*#ECb^4_|jdDM}Xjg>w6!yGUY z_VBu%NM-uCm~};A=a!72krL43Yy@d6-7&k;wRe(Jyjt-w^w_3BF!R>Y<=0bOq7sZ| zDZS%P_y|1u&Jb{mKmwmO)ug-=8kvbJk=0QMA>;5WnocQNEPMnURLO!VDBM~Lz&TqT zH{F2L8N|)szhnE-S@B+GoIAa0*U8m+y_sX|ejZ}X(Nny^kS0|IE<+_| z_sd7&MYr+cLxX{`MJUK0ROv%}RP7SjI|siGgwg)Vr~gi(kmW)Nt7?9e(dG@Xnf*dc zyM+cF=uILv0Yb(sa#pd3!?g@p+3mPN8y*afN>w3(m;7FxK69+6{Iqg>ByV=Ogtiq+ zw1wJrM$G9lujwP)%BmwG)-}6XUYkC*wvhbEKFLae=BrY+t%w-un@U79J+`Qq{*u`p zwIA%W(P~C?5fNQ25T+Qo&SSzyti}&rb!dhrgC>h*uD_FI<#8gr;2>gjvtrf6S-(h+ zM(F9{F)0NgI7`oRK^HfWMvV$Cm;?wh({H|uRUWN(7xt2Wu?vb;L0~7_s0!=E ze)k=6b}i*bP3rGZtf$Q1%gT(Y|_)n z{6xI(Y(e*F42A?K^Ku9ky~LMiRgEz8o8oE5=K-y(7-&(~FDEQELh&R$T9Id6dujMB zMAupm-ok)^o780980wYziBF9>KC@<-Na>yJ(oR02OKV z*R$UC0-Y}kV8g%qsJi9r%kjF$#<>Fok2}wOIV8i5n>q2_uN#%5Y;c02c6PB$!rCCN zR7uVMsM6&}@oFbwH&CP9fXZeuojwH4YF|XVVK6>y|Hf|UK;`Aafmc76VBU-oN&_0( z2ZH~S?ftKYk}+t?K2+dayESz=##IP=PeprdFRt?KET3zgp!RisUt}XY1}13*VjOw5 z@VHMm2iW05_Lg+&)^}$cxBprh`mL#EF*%91dTbqvW7kC$S{#S%ZJv5nS3L70aB>kX zc!|bkJS-M!0mO2EWa`AbJp!8ccjCdT&jDAe%F5xFi|1?K6Era*LCeuGb8YK3DM6Fc zb#sfU%Rojn-T&tpDJb%D~)hn|5bRk4^4Tr7c% zTJc!E!d)@Lnz_D1EF6u(#6?LN`<|r>?_|?*+E2f$Sgvn64(z_@Lrk(yY zskh=_^t*3Kh;;TxZQ9BV8V$Nomr!*nx7%1-myjKK9QVG3=>YTqy}oRtoFg^29pzbI z48!>C*mLBtnLyv8`3>~z2b^=h7dRV*jnE&gDLd5rd4+XNz@*jg-Y;~hOJIF%i2qW9 zZrOSQlDh2Oo4C`Q;s+o)%~o5jujtn;?7(zCkoRW)LAE8nL#Ifz%Pe&d#LSeMpvrs; z<_V$`RPVDmwmwoYb~pP_DT#_c7EI&(vl{3J%dbRd9OqTSWV0IV36A13O`C3;ax^4+ z4~-Q5-757fgqVnJ7HLdLKfv~cMZ6uH(^3`=)974O`_>BiQAoTP3&+uv#OeU-wUtv= z$4NmoL5L^i;Zhht{tV4PJt&3;aqa+LL(V0rGs8;K}TrXgpo~mMQ#kb<|qexA*KJn*4xgi3kH>JnPf5m(rv& zYKcb=^1EL!lK#C?x+r=V2eVbWDDwJ>&s{d&?NAn;xGZdVz|Wyv)d2Ne{Nv zs{I8+=Z?5DB)=V(Z1BwP2$U^_W0s~CdI>EIH|oV6u*d%;fGQ6>cW~(WJX}B zS1-SaFc$RMT!_C_nyLtiZHqmxi28pJk~ula_+LN7%Z_p%66My&w&q{x<#T=IFnj#j0hZ^n7dg<*<%m=m&QSC6sK_z8`BF`%v&zUYPtC6AekCB>tY z%LE8xrKI6t9;?xJ-95Sx(%Zfzkt}cC`#=|+@qD`NCDgezIEO}vK+ee z@VZ)^t?8%S=L9^W*vYSSC9r)o0ntp|`jfNO)TmscbYXe4J((io(^&d~O`MkD2|#%E zygyXf1s`{%L@0S1=j6PqC%!(JjVFhkj$1feOBtD#E z+(sI%&oNn2CFR!3dBH0S#a4iHL`T9Z1xff!#^XH7SMj+uh&n*j@`3WTd_`Wn9H2oR z-S73chJamx>N2t^`*)Ey2pv9Gy>o<3+W5Lq2+=nV_wr26Ff^TDZ2XXGO^S{tY>mrs37CeZE)KDAf6 zgSyCpHyB2Y`e9U}#z)23-Xrh|Hr;KNfPS_r|_m*~STaAAhg-{(c7l zM~^eW*9n}e*EKP5*X4)RXDNcAJ{X*z85%M<2UWiVAYdR&R7oz$ z$sQ2PE+-qvDHW-Lu{VC68a|#wjWb+6MaD&{RNU{DR-tWe&{1eb{Z^%bW7d42Dcne!+b50h9Xy^oQ_nejG8kv4{d4{#mCx zx~tTG09@w73MZkuJH~0QbtafussdW0ppGY{H@4jNf|=>bG1uaz{DI5xU|WSqfS-Gf zfj`q;`poK^2s6e(yXT?Rn!+~1jzJ*whki#;kErchZ~yel##=b=rcCop9hnQ#aBb!T22L zI|Y;mU#;>f>^6?-J(g3&Qr!<^4y|gY4&B8ko6X)YEAiFpnqklNc}`V!5e|RVO_#aC zW_juq7}i63E_7?V6aoUsQ2MZi-H&E7f^k9y$wP^dN9Z+DtZ0_~z#QM`03zhzKU>rS zfo_q1p~!<22)<17S^A2bc?mYR2uvjW73eZ=564 zf^?M#^eVaUtKkEyM(XP?z>(7AkO_Lly2FFiHx1^E39|JE*2%9lpLby{u*pA%?SiLv zQ3+#LYJkiiT2?`E*A=`>c0wn_@^gHBp-$-awb`S}5$E6v3J~IZN`^++ zyNYBGila3jrCCC6(y8^_qPOr-Z#}PNA3jkz$D4O9De!Q^syL_T z9mkolZSDl+1h>6lM0Q2C6!OxEy`Z&jN{=5T(q8U$Ze4z zN;k|Js#n(>z<%`w_cwdJTr7QxfFmvNdPY?#GDk$n64ImO#}DV%niEf zNfRomULePv7IA+i0Z(sc)!K6Nx1nrk=2ba+8q46U)s5k^-sK_%Au$ehU&|nK)))Dh z)R8t$xeT7rO(eRU&rS(b1rtq&Zq-D-jHd)*@o+Xzt6|s=gN21_Q(&c-?b7k|?9gX5 zC12%hhev|rIL|^ymqw|s+J~SUdA#ue;oJQmJvAp9g9McQkG{#%!J&I}@)+mqya9Sj zHoON-4JW5B$*jJqo#AS?N>Bh>o#*N2bmNB3KdJ`#re2M0eIp!wuxE~+ud2KZ}jh3|31D!T_{+6{Bf2xNqay#WL zsYyu1)w}}4qeSN0+>RRT8@*~aIK}IIyswrxw8U^RNl2%J6mN86;4Ag&xW~f)P0sC% zVb)~J?=^PriRk`qOpv0FUDvVLO6gZU(+v2>u|HWWK+wBjYXk^UkDv&^c!50m>fQTg zyY2tcbpPwM?C7;PfpZ(kJ12(BGWnUaY?$6?5J$piXGiE-3POi8|HXNaZ}|s2F|tDY zli8P8W>e16a1@t9X(_{}fL%@SXvT37+2&e(00p|$k*hXv0(25tW+Qk;MmWWdeB)ub zX$&qaV%Pn;bjTtS_BFF(BW}4um#KM~-~B$f{TD1}DS0k;%GzpZ=<-kG14*=)=NO*+ z4OH>x&4Djpkc-fHnQw9dY_L&3Q@|3$k1A3lRz#4HzEBH7xaV>~w(S)O!AKnYoZHjx z6vh)`Ph4__w|twlJI%3wL^MB;lNVgS@`)?2WHmM=P4|)wV&sl~T3u zR}wLmgoiQI4=qdm=Vh`^R192XQ};RzpheH+xs&7sATT-QV%iZ;*6$bU?*7IxZre;) z{)4IhPcq3rt`daki%Pq8Y_{YWDakA2ML&7YLbnM??Vt&~_rD;MONdczj)#VURpJ)y zDXH77{-KX^gUv{&Yr+tiBA zn^7@VYLwiHl7g!Ir+k7b!5v95Lz%ZzT#+EeOH1zZzK%4&( ze>Di8xl!?CN{EN3i49%A^i=xeEpf_He8<-8hhD5+3T$EAiZ@y*S{fbXihc(fcA8$r zz*I?B@uFoASE2aM0RJg5@lOE7wxKZleU&`mS`E08SN2V01Ib|ZhO-KO6q z(CA6pSLXkyRM923UoMd6^Ky$QU#(MgoLff~6<#xU_=#xN0^^0RkvxWyzn~JmyTYzV8DwXtr?3Y&7>+ZETVWb* z42*rRXqG=jz8)u_|GztC3`KhyG_=0`I3{&7L6H4B(@=I`Ml|>l1Z=ixj zM*j7CgA{e7e2`4wT2;Hqku(V#b(9pW>X{-ldd7A|Z^jM_g?eIp>vPbF90Q=yU2F)9 z-Ln$)LLU*XH;J&SBl3e@ED7NHCSW+XIht2;Vhn$|Lx03);8Qh_A6%#;KPL+5Uys*d zV~=`O$Dk!O>rVofXxDF}+$Y>Ta$S~zM-Rrf!7zZ;fy-=$$XFv};L9(jq`OTM9bHf2 z=SMQe_vR!ehOtaSi#cAGwb7yHtX!o?P-Ou>^i3$W>Yx~vi}rOZ z92>6ojDGZFVv)#>_cHT|BcNx|1bO#SN#CF5c1ak}I>WIiUeOD@R6-?R=e{KJhsQZ8 z3y}jSoAy_A)W-bk_vuY`;eqRrF6`Dd8<@I>`Ab*g%>0Ruqp{Kc z3x^B?vpnQFG!|)SuENFc9*%cx$B@{Tw_EZH z8XB#LwT{E};WBc|jxxxAEqSh1v>X446f6dVVqYL?E0S?Xw?h^0xQ$$~2^KP4|T{)=zjZAdCe)8f>y;b2#0DDEOni|Q7vGep*IkF1E0{T2x7k# zS9%z%*qN4~&|Jl zF%0c46)$w|ZKHR4wbds6M3wAk#x2w7I`aJ42-Qg}E6RC@MwNj)-wt;2g3erAR#-f+-pko?kjOX#kp&0Ixu<=m$$6eF=)H2;=e!hTpAzqWg` z#&`y|Nqs%SwzbO<{y8%sB(!<4Y`zA5DugZ%;j0~+9bm?7NS&F!YedK(;bZ;j>+vu- zW2^_9{VRPfS+1knt2pCpQWE=dmz7_&4B9eguezWt7R0qiTkNfhXO|^2zk-~ zPBbBp#9}(9pTLH@_%%nzjCr(e{19PB)6*Qi?i*~DmChu=dZtbW{^*+QEkZTaWxes& zI$u<0>I75=U1t5!b?B-4QQv&gglAqOicZw|gFuo~B&+wV8eNQ+@+Ht8lk~J#JtTMi zg4qyOU3Gx3HATbzk-heHHQZSNAP~H_9LXMpDG1jCN{a4Anws@vLetn-_DK@?ZLE`O z0j;Q~+qLS2w@K1t5qg>`4wY;KX_yFXg70aN_AB(n*Uv$6_p7`zt~CVwK+zn=XI)jP ziYg2PSQ9&m`#4w?yF~A~v4xr#(t8TrGj)+nB1LjuK`ndWD2B&Ad;fAcR~Xmd*L9OB z0yR#uy+`1%W5a)#FgyF&o85tdWo)r0<$+2`HSr6Ra*TAaM7B4WUDgpVX8I&2tF|!SM!!M98Ja^c`@t>_}&$-Kj5_)nc#z47lmu7ghER zuoK-(<&M~r1iZXRTv>X~d7O2TLwk)!Nz_U@UwsuxkSbciIJ)EqH2#ZAvrCstK)Im_ zI%*MfMI|NlGNX7$>d#IUCxLMg9%xPdope#H<0o)MQVU$DNvcKyeibsT@tRc8rs)lD zJK6j0O7;9c&~e3JNswfpPDh}d=_||{-+h#|jmqga_>awz#{qn}hu5*pSEYx)cr2q8 z+0+3#_LydG>0T7Vv7QS#(p+>aKKqL0jqP;CqX_%z#Na;fWmokh;hPi1A-gwd7XJYVw)i!omR1Nu;buKpcTE;ZKso$Rmgla*Xbo*aytzK^u}a3+ z-Z*<8rY(seZxvNz+zr)|GC(8e?|tj+16w31!E_naq$UkLrpA*0e7H6&8Oy$0h`EAb zVx+O)K$Qfoc{95pu>$&4pH`cemK8EOl{isc;s zt`PO-bo%MCCZ2i^{dt4nQ+AE${{<(=rVW`MlxE!Vw<(pslDD^L+U2?4yH^`4{*&W_ zWRQu~Jw);up!Ot{afNRXq%L03MAA+$P-LSTij`HRiOcDMiM$YUskN}g+Qsjjt9|jk zBcXjjz~Jm`h{z)`)F06PdZS2re0~-wG|Qg_m5F$NxLPs(&cmk-%dqZ9wVms{8Y4$* z43Bf=u;+tXS`R=Jx^Ev(>AGK*($xikqjQwN*<*z!auNN=b_xx6-n&g60~LbiiCRu( zVO&^!PzM7)M|0vi*25jA)S&`XQWadqPdy1s2DY<7twB&(?Og^2T&L$(40b=VRL^^= z;=3K^GkGkG9-;5)@dQ=Xet@-vu)lv=e|Y6*JJ$HX=IQ_d4m4ZSru#s!??vmWJvx17 zXru3!P%Z+FKS{cZI2VXvdsm8M;@|*iJX8dJo9_eMkfp5r#aunl7z}U{ys}pO{6D;% zMQSx98>Kzb!X9CIgp*yyR#F6G8DNX+-84M5^E%D4(K05Af8d>s{KEKiWdJAJ+cPmLO)d%-o!Q)xS^k*e|DUvJC$btO<$`sGD2b zj&CA@mgM-oA&(%4jsa{(nU!#V$;I{RUToCzyB#vV-bd~x>gs# z1E;r1lyX=A<)7nOYN-k$?x*iy556rFz`jR zF*l>`>b_zp+(BZ&$trama*ueNuS5sd>HqAZcV6{Y-NIpKfieC5F`3?GEjc3mhsIP5 z17S-MPC&^)&t@e4GAJab(r6ug321sB-eYe^^lu#u){pJFx<b^0MCC9rsyA^$v>&{X4oSyDC zaD_5Vobcp(AbBx%FpV0CnXjvhbi%OjMNMD#%CWgIg3OsRevUI09EYT5?=y<@ii&HV zl(TV>Z)Y4oX=(}+r_W05Zw6&MU&&fU{``n^}z1cuCb26xuj*B~2`n4Gw_!UMUxwz7KVm0i(=uDOP|8_s>$##tfr2R(H zof;3KG~vS0pVly=VEd&fFZ||li&tCPVNBD>xL*_rE@XLp2a-U=Di6-t`kpCa>FfK3 z2&aLPyiOM*AC%_D-!l#Spek>QF=gv(>|)v)F007P8ve{b`^XJGR?aH`WM&mv}R{`$)t?%d1JSo zH&;*rR*Y6fBG$DRWFKSTBD_!X{>h^3Ln3&4!FGvoYBNIOFX$};CoZsBupW78Kux3bI~ zHYsv;I6$=n7tsY$6+pOWVw)+kDpA-*=TZ8{3bS0e(`>!<=y`R@yB3nP+CJ zt=GaRn%L4k>Paxt4P#dCgr7<*?NnhL$q{SaLLGi({JJ+RX@RHNh z^Fc2txquKvGVa40q>OyU2CR$^5T#KEdkj=YgWEcng&@!dho=#CDssZ#{xF{S6b< zes2IssjR77`R4#Br!QLg4K_ZCxqe9SO!1Qf7pi?=4C?oxoLl*d&Hu9U5j!Cj8=na;Q+*4}=3T2$QBO?HV#Qo0d0C2Q!CoY@afLt71@lBy>8<;Kd+p;}E-qwvO!o|M4I`wWMfB-t?uWh6 zj6a}x_52v?K9L-d1QH@JYx(2-XGr76>>|y)df!kdv->AwN%ek)OSKvMt4}ItI8l=T z=I{JGcz_M>q)s%;UNB$3r9s=WI8@;46}?8JWG=Lne0=B9<=lME?@xS^shC@4=z}2} z=quY%sEOt8*Xc{zP5$>`B5wYz$9Qu~Je0=%ti7KVn#bs|iADr2h0cjb$`R03C9WC!R4y4n}!K0sy$+$)A+8FUlqx;CET6@1UrT1uD)V24d%@+ zCJxECM1IFl{1;S%*xB$A6b%R9@)Z*waJ%6EV>S69)eQvlf`Eq3Gi28RrB*sp2`KFh zrV>lmt-#h4*H;|iZ(4+NX;0JOJtS{a*ceemy`)n--nq0MI{J-{(s6N1Z0Y^!=bVorbK8ZLFJ!(aj3VcIJ ziP}Z}{azhzxYT;lo|lVQ7iblAbI~w}I!1T{R`~F}(*J4i%j2P3-~X9LjmTCgWJ^f4 zl5D9_XpvB4U#e57v1AunMx@Bni4s}LCr6e+_Fao56-Bs6UccY`_ju-UFV}tD?`yrUn_290_%K~l2k%THF6BXnEBI{gfIKgHS#3!SuvE-b zCWvpFMB-+0zfbNXLfMz7^$iaiI5-{AGPv>y3PB&(zGw zNB4?a@ExpA=zR!N?1cJR==g%Jl)D$pZa68DOvySan4*EW#rRiw^Vc3_W54G((EHT5WS3MAx18b#F3ihA(L z1IoCB!NElR@@BAFH~FdV{he#187SH^taY65aj14bIZ_1R8jcCy<6mr7;0>dZhfd^ zwdD`d%mGswkJ%iPN$X69&sV!HF@~e%iM_(G-Wf#s$z+=mF`3_PCuXScN|8q#wT7^|x%^_6Pd)^AmPCP!)UC{Ba7))AxI`!G7B^_}QfxWa^4E|4hPXIJIT) z0z4>XyT(6Uu7j&fb(OA}I$*Gx$mNSIv#l{oD{yI&PDi0$(@CQ=4Bf_+yt zrb00Zan(z24h-4U1xZJWTH()RU7jmyFkAoyU>j0d?uON2TAmq&XllkGr1xuN@ohTX`F_0pkf1t@oPRslS3vghcoW$cKCJOlkZ*_jNPD?2`% zdtvNj=_TjElaM&nbP_3Qd;c6by|`Vv??t_cZrvu6YXRqAUO}OJ{^1v=m2UT%-PcHS zfgEy0-$P9tY9V&Hj|5w8ujqh`qDuPGj<7`OEj9_G;)S2;^S~(|fk=(~IHR_gpUO7t zg@6#?O=C@9zl-~X7GFR#oK-VXA6W#{K8R2!j_#a$%sshr-&D>ET76Cu46Q?MtPn9xZY%p&?n72SNVxDsHDd#*6a-SC{cyJy`-11_r|c;xv0>kx zKD%fBeD!zXwFqJ%NYIG&hvbt3Tu$JW>n!lNePBycJLE5hL!!*K)Oskguc&0z99(nY zkBrIyQFgu)w;>2O5F`HaY@D1=?hp;F#pb*lImZVgz;*ML>%iRL+^hu4R@zWF&TOIH z+8H13HJLl<&mnFzs-tUs+T>yf>scvq?Tl~T(XIN=31$HihQtW}vCX`pITDAuIc{ho%B55rVNdD7!0=ZQGEO_U zL99P^F^7*_ zw-{Cim+1KNJ)=!t6X8Du6@+i_&t|=6{8S{$-uWpQ>j)S0oOT!7mVZ}shFLI*2O=QH zWD}YM58^ph7wvNOw>tH=YAB9`bcu?rIy&-j)z>G@#X2&T zGw;fb-71asr*0EY9+!?7e+^o+y9Q((tb?m!}J7B+l&04P?N)c2~##>@Z#eN_Q6u1^C_ZEIKBzsL=js zs#2kkB3ZIJiejoV^K~SD+|>i?nwW81nXg>vJZ+YZooFwzQc-fN>Gu3U8Dq{i*x2xW6y#y}3+kc`z0g&P)g0pt`^ znGZd;)I3>e;iH_cMbrX$hMc6ikxWn|8rXbMP&t!)c?ZYu@oFctjeP2!L!hz$TFT4~ z%OYFNTT>~@I99$-7>l*4+8Sw84wtV`qW^v0N#|>AH)A10Q#adz-s*cq_Z=JrPuyFCoRGQeP^Vw@6ctjA zR5}qTsyfqcG6kveS9X53om`XLEi4I%vUUxpZ^NaLb;{@O7ZCMrk2bKq>E)$Oo`S>i z%5$)EN^4m4HjIgwmSLXy=@qoUYri7w&Qp;h^3q5MO&XW-cEXYBx^{Z%-YFWx?#_aJ8%jtbB286A+x_&sr8#dy-VZ_jx#KXv9I z#zbMg!^#HFIOg8F>rTt|WY4#Z>qWJDW(p8tbLB0M>PeN?$b6d+4N( zfAa|zzHc6@nQXN#xi;>QWvy@PuESCJGBUY#R#k;gX9l{k_3E~rFXf`8awD3moZRQ6 zl6o(;rijopBqWVR4qiHI9FBtyu(VCX8G{B988DYopg2%;b0kW1{z$ zzJ;t8JG0X6vBE*O(rWk7^kIg4I7{UZ66IS#iVADvZ19L{>r@MWXG_ycAEW5mZ-212 zj+e=dCRyukCd%^acJDwD(t;SFo<+?}V@lgV&5Bj_S3T&!Ac`{ZRh51#uXCc8el*$I zE%E9F$4Z>}b%p1>NlqKJ4(@c1+WiI3_)fnC@7Bgg!+hVP`=0OlAnAZ!i{j_TmxfAJ zrWvwK{c#g;5%|{GiE58JljuM+0}GR_gBuesHl_(>B|b1ZYp{_Tg~l+MM|cL~njBwV zqGjR@7EDb`)0!<_A3#O=jTh^=_+Xae8Jw8tHUDQ=LWz5AudRAdipLDj22Op1=m_n% zWHv#{H;!>}->ZQOIs$g|*+mWCZF^xl`}IJ1onp6`^+mO#CGDjW?l$_5B~ZIoWjgyg zdmn4}c%qU&JK5_$R?wx`wQ+k=&&gUjuHEC08QCD4N&o%nNTP&DZQ1Pf>{v06%O!Ly zKW}YoPgSP8xK{$R^QE3+(Jn2T4kBI0S1CWJjMtMppp@v(+c#m#zI2S$VX+kX5TE0*9Z$6jYIR}Pa!1+U6{I(>NVBcq3KBJKXt zs_5xYLZu$F!_iuQ$Y-{<<@uSpS^KYkI5ZN%^ij=p@=aTM^h{rr!#g)c|L9>2_pdiI zpAIwo1*D$J2=jQEUA!h?l*`m#ZX^qHn2?+tIhIL;BaE&IS?)vrrlPxt?^O56RmX@t za4?NFnf-d3ooAwA|M`^sxlhbhYsTu+<;C{q4ske^vg*G3ygOB6mp7j%znM{XKf5x) z^-`?_cNG(3>Ve#yuGQNf_FB~BwMmQ5uDQBO<@%ep)ypZJ}JD>em%@F00V z8(RA2Tx-Dvg4FI6LGJ9_esuyOOB>GzRJ*ne`^6g&IfbtUw)@iv2d8FknfeD|I<$Fe$J&Rx*`s}{CnqN>sDsY#nQACaG@a>r zWMG0Gi~8a%v`&k)U&CYa7?6AVKK;j$tnpc#$#6LTU4G9EU4exM&oQI(AzJ9W(&E%h z+5OskuVc;ntPg1liQG}uDb1;BbD5a#+GDD$^6nj*Qgr<6dVGO7Ec$IfX!C8y?pjOc zFM)oc4o}0hHp=XF{}#)$G0*FKpN)4$>vX3KJ6wJDx@OD%n4O~|5MmOWg{Bz$TfG^E z>_(oj7o|Ekyf8U_JnwqKONY8fg)sygI!3hq;J4)>y1K2|epM1Tt|B|@R6J$8p=!1^ z#a(B%u)qJghP&<1Jw~_qtA1IpPbM>8s1DHzdV^pK%Ttu+-Wz1+eKn1Q?q& zZL8f=2$!-|65r0&@$g>%V!7)-_Xcpy$D+Q5JbH81+d8)GX(}6|=vBYRdti6^na)iT zpXLotxa;WeFj4C{{wa|7KIKx!)>4Gi4H$*G_nbplJ#~M_Mm&u^-FrMxv3u9eoT^cU zIjN|j>ur#hBRcm!>FxddGug#6{g2LHoIboUPJL2d!JIIp83@MgK zZ_;}D!q>*eBAce|N?T5v-X?@$2WWG0b6j1|s{o1tto5Vz5-eMlhJ~=6C67@^g+*o% zrwGLT$h##b)O@Iq6z(Gtb<3`S!j$EarDd zr<-hN&%%Z+9fnhI{CmTg+pfhNLZ6u%%`RqDP*5msotquo&g;B>3bSW-uYR>ixts-) z;NBAEM!(#E#*?pX+AHDe8zX`ON|{+ZQ1Z7+$``u8>!-oMK)jIak}JC(aM=b;x%`sYa&~>Nq`uf(;5nh21J0)#lgTH2rg* zRXc9H?JRb+SI}fk)pFb1_*G)w_}Er%FU=XF^5|`?VNQW;49tQ-CGK~nM#W5u+gmF! zp=HrS%qh7;Qmi=6OqI-ro{y-)Qw4J~gA!x>gktA_AeM13&RtOsb2nlX3j5@+vq!pJ7A1%FHnJ1u zxC|)uY8{iUWoJ&1%~9lokam+zVNK+iC3mnLUODtsX@E@3s< z`eO2r z`(0cM3|~S8e13a@&;P`3GY^FQS1nF>fhaZ3cqA3Xxi--x^K6vAzkfh?FYh8BkFv(^CF~F47ISoTJg`W+IC0)j@*`rBNUPU%O6IE9Z%ug&>cpSj z!fw4qhsn*lv_d`l=Y@FbRRSIj10x7yxZdiC3)Zi9!wE<#;xW75Lsa=~gr^i~HubQK z<*GQdc`BJH1BJyUB-ph+OEiK6xVlO1I?`-7qQ9g~O}1p@-eDx0BQ}N>$fsUUWB1dz z;46l8IdCKeF5byGslmgi%g#WJYG=D}Y$(SkKm!K;8KdkhV72}Da|ij^szdYaL(e9A z@#`lmjL2+JYO1Fn(ziVC2PL(Q^~!4G&6kM)b&i`{M&|M3+~v@_N7I5>t(~88j?%N5 zPK_1MMYgXigRe@kut@AHq0zi8yq_9hxn+uw=3V26Zwba}I|MM2^s`0@_;FS-12s>S z?~R)kz(m_eq~*yd5Ulh85`V-4dG-{Y{f|u1P(Ueoaic!cUqQMwqYkw*+5r629S8cL z%vfy#2{*A#G%ouHTBXvvi6oGnK>>I4n|ibUyt>d+nJ`RK)o362G%up9@;=A4L9nq! zsvb;#9i*bi#Um%z!KmpG-9jG$?+8@wnz9AH%F8{F$Ujdj10kkCC0$)z|A2r1+kxKR z-ekkev?PZ35ytjyK0y)k4H2lfVE&^k!Q?2o#r>Ol0EZs!SzE}rM`j*brg-8&Ex zcHi>kyq=#KeS9B@lzIG2gL`CTWSsU9xC`EeMrJag&}Z~NKuVZ!+bMVVqDuiJl6)sS z>0uO6u0(zoIaK&Ex@PcumO`>(_SvYtgn(B0wE{IRcsSj|3N>-h&B%+A{(07vS0pw$ zDT$YFVMaTS@S-&7=;%(b7YPr>wP#g$L(9RUyr04kcT$nB`bru=x(jc`?)=DPXiSFs zhxdc-PBu_Wr0>q?n>R;?Kr_p*lMcA$L2E>Zr9e4hB$-mC+XBzuV@k-hF2+Z6o7!tl3_m#ab`Nc>?~q zF-T);M9`$lO$rC2qi2b?l8l?@bT9%Fum!6E%y82!Eb0}R4;4#5flxQO3s=LNdu&|NY&vW+ z`4{=tOV|zR@g0kviHUgIK9U~lNGB>TJ|J!em{8x`Y%%8bGHQMccK-)E9R-&I+!z*_ zOHN5~vQ1`FfdLX$YY*;eFW#d1K?nK&pO>)S6kAbSt3>`9ksWwGl+EQK@LJ0vbHe)5 z-1ow1+a`w}B8asdJ_c$pG$qA*q3zkVHmGr#zcrwTp!J&61-_F`TgPbA2aZ7%MYD$! zu4k^0k+;Miz~hhJ!9KG0q`_qPN3it`N1I)bNakc}7R(RnJm%S&GSIIQULRve z24fzM^YmfoO(15va^LHGlhMvR8XB4!eYr5up9vdw-_uX-*fXc|(CBquO`SIn8H^1KMC$75 zRM$V}TUb=k5Rrt8`i6!rE?ZZ)Sj$HiUN{c_K+n?cmh)zE(&hEs?vQ0H(Z>MQ1g2%z zOaK$#8SeRDD~u*iw8rqD&@5pQ#~MYMSdH2h&rO@ehT|ff-ZaxPb%(=-Gj7uAUDO*E zHokJWx}ih@uui&fy4BY-D>^&R3=3H;Vgud{ec!9MvhvV`ajlWD zAWSw4+1PJeS4bgf^dq5urHPWh5)}QQ+D3a>0dY5~GIbZemKBM#w6F*Xt@bwBUt+(Y ztktZit~KIJXBFHFKzB68CFjl8ueK8x3)o4D$Isop0b}58!8fqHei{XdO|Tn&hg+Q1 z(IR9uPepe1N{!lgiyU+iHT2;DXaQgOxS3r7s!4DaR)8J3@Bouj<{^!5{7^yGL19N?}Cnw zQmVASq!xUgVZ_^V_V~Rz=QV-V?K6KY-EqNSScO}4VwUBR5E-WYYxO=r1pJxR0PnGn z^qb9-7TF|Eu*Oun=5knG*3-Iup4hiE31gA99z555#m+6T?GFnW3%W;OXQ%M8{j3AE zdmTc+m=g##Bt~5C>gv*YcdmZ-9k7&;#x6MHF7tLe3&KB^{ne$G63%x45%!()?U-x-)!-nWzHPL z);Qd9Y%-u_3d_LG?F-$xb0^wJsF1d5KUqii2B6NpZNl07*#6>T9^T6qkh>n5sMES(1Zx zSwVpOa0yW03W;3oSvF)F4}S+yJsXm8Z4W@O*PDq z8FY+rF`ofq5XQAP;BAS9^MqMOr=|muOq?Sr#5SOuq&U9CGjY|H0JVl3@(JSagT=bk z_(kZ=dlTC%%O%5vL;go{1HOebuzf@(A@}_EHdN9wGPIMDllzZ47xyFpWw7BTm6eqP zu7|0KI}{4Z=17ft2)pFr$;l-)7Sh`XDry;q{9UB3sHut1Wfkb=HzPQ0z@)YPs`FrK zykOG6Rrho!3}AfgD1wdx)Jsjv%#?1q$q`AS0fPZvyfu%nr~ld;0xJ#Ub;pG6fi9{W1` zCUk-5e|8rJ;=T7%QY6CD-#b}&z;9q-vX8v?DoY!M78GaFao~T~Xc+l&O~u;Ql|l<@ zrGY>Vr+vUVy8JBj;lrU+_%ym_Q!fx~cRRCVP@??E0D4KQ!vFxrOysXg-LJpt8F8f? zjne~l$RK8Qj<~4kI_A2ohZMf!2v(8$1kvS)3o|b$urnX)8uT)CKqFox-uy$j5U98X zirY3VnG*COFTmT~c<)sPxIW^I_DU8U4NmSb$fbw?)H6gjocA&9S9jmdU&#EFqyX$X%kOwBwEq@TY`^}8hu3Y0Vt@{GZ`j#eI~ z1-LFLD^pF&%QJWu{U_Dj@w2J8yN_M#r>j&2ux2#Q3WbZg04}H@_pe~8l!89>P4MH( zr3*8KxKm_*7|ZuT@k%OD%dFO5YI+D`DD+&dklebLZsAu0ai+l&u{s`Em*nC!JWJ?l zwIA2%J-X0KZ&~nwe8rLx&v8fAogGV=kQ!yVR@Qym*#>U^vTgJtST-pRZ^oK&piqRj znodU+h+Q&A+o$_J(?#RO!wD4gm)^ZV&h97MlTPeKfq&g8Ei3Cd><)Ga6|9v{eETO= z7iYo+rtwIsSKz$;Mn(dxI(|07+s7F9l8s;&p8KvTCD=RC8g5y2Y3^jCbFEemD1`Ig$ zrM9#D5$}2iJS?jIz5*(1End-EERj|v-oRNx=>8pKH7)0zRS`{T)(G!Y}Ap1C7 zG{&V@bg(FM0kbUG&F#K8Xy({!hGke4XAM4>U}Rsv&Tr$otI18);~UQA@1O3ow6tVJ z%7)rNNv>P#QOW6U>UxS~t5G9{gev?0s9j1w@ZF&B36<)s_Q`Qck8pH5tJl#ot@ro5 z(5t7nX2D&{WbTc%{*toii<4%@tB~jW$CI;1+_~@N%+|HSA;C$O^}g8mk{0jX+u?@L zZDWbYjeIKGtD*8s&MqBqy~H4{uAPW;>Ss2@+JVU&kuS5<_=Ah=deQG-+g}w6T@GALg3SKE6#4Upw$brt-_>swl^-e$al+6Lr{ zK=vlg6GRF+IC9>JN8X1o^VObYt(gm&{(~w$M01fsZq@{wDk0wXEhO5<c#`GOi<= zFl>G|klFoBQc}xWLnRfc8NR$(DwDacDVjrLQ!ckr5879A#d&k@Z|T0WF^uCdL19MR z*xG@(t1mCf&aD>wMrYw7xvhU>L#WXmlV0~;Y-Y(U$;b372kZj548$Zw*M+&-IH0_9 ztL4lKM8cfw?Ns82B>Pj#$D$Ov^nCSio?4D0$jSW`gURi**|B;#;*yW)*WX~hfC*8z z2!H=SmJl7`f{TER!?GOn?%KcRj9>J|izw{WYPx^H*yNNTTN3;(V1kQW0ZVkOzxY2g zA_en;xjFB3AnSna!~ePsu-t&vy8>00MXF^n=Np#kK{2^90R4FN%}J*Z*+YgZIN?2gPdr3*sX5V*$=vn`)25Z2rl*kbPVM0wuis zweWwP_g_yC398cS<&mpZ|FG3h%wR3In(>KnL{ z?f)`gc^q@qXiuQYa#Q`4++QZ(;^kQ(ZFc8hW-DJpD-(G3ODxm;KN+18+)|PX$L9XQ z=$AIX8&)|ecHyM?uQbEI>H^QpYr94-?qAM_hx$fu`Rj#KsQ*wA`M$}pOiZ~eMUVYc zq4e_%@j;#yBkkS)_Gkt$+=^RUeg%zxZ-yoNv7aVwzWvLC8BD-%)GtE5Q|W*8@L?0L z?ToC;zdV*fftBTWlL9Ntup|XmmVyUu#(yt&`d?OcJ`pMlJ-(H z=T~ni5JQ2OAyGk!yf3M~hdl&H`$d*uJBsL*=*t%};EHx3&> QoSW*P$`NJ4UNf)%0S6TQ&Hw-a literal 0 HcmV?d00001 From bdd52694a507aab4b2ae3ab58b1ce4d7d4050455 Mon Sep 17 00:00:00 2001 From: Liaoyuan Date: Sun, 9 Feb 2025 01:21:51 +0800 Subject: [PATCH 3/6] Update ERC-7627: Move to Last Call Merged by EIP-Bot. --- ERCS/erc-7627.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ERCS/erc-7627.md b/ERCS/erc-7627.md index f9c6428703..0b986cd5cd 100644 --- a/ERCS/erc-7627.md +++ b/ERCS/erc-7627.md @@ -4,7 +4,8 @@ title: Secure Messaging Protocol description: End-to-end encryption for sending messages between users. author: Chen Liaoyuan (@chenly) discussions-to: https://ethereum-magicians.org/t/erc-7627-secure-messaging-protocol/18761 -status: Review +status: Last Call +last-call-deadline: 2025-02-18 type: Standards Track category: ERC created: 2024-02-19 From 99c224bcc86e9c29292799cc6f1e6b03a947b8ee Mon Sep 17 00:00:00 2001 From: James Save Chives Date: Sun, 9 Feb 2025 11:42:14 +0800 Subject: [PATCH 4/6] Update ERC-7750: Move to Review Merged by EIP-Bot. --- ERCS/erc-7750.md | 190 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 156 insertions(+), 34 deletions(-) diff --git a/ERCS/erc-7750.md b/ERCS/erc-7750.md index 670ce525d1..9ccd321da2 100644 --- a/ERCS/erc-7750.md +++ b/ERCS/erc-7750.md @@ -4,7 +4,7 @@ title: Decentralized Employment System description: An employment system that records employment history. author: James Savechives (@jamesavechives) discussions-to: https://ethereum-magicians.org/t/erc-7750-decentralized-employment-system-des/20724 -status: Draft +status: Review type: Standards Track category: ERC created: 2024-08-04 @@ -290,39 +290,161 @@ interface IDecentralizedEmploymentSystem { ## Test Cases -1. **Company Creation**: - - **Input**: A user calls the `registerCompany("TechCorp", "Technology")` function. - - **Expected Output**: A new company is registered with a unique `companyId`, and the `companies` mapping is updated with the company's details (name: "TechCorp", industry: "Technology", owner: caller's address). - -2. **Employee Token Minting**: - - **Input**: The system owner calls `mintEmployeeToken(employeeAddress, "ipfs://metadataURI")`. - - **Expected Output**: A new SBT is minted for the employee with a unique `tokenId`, and the `employees` mapping is updated accordingly. - -3. **Contract Creation and Execution**: - - **Input**: - 1. A company with `companyId` `1` calls `createContract(1, 5, 1000, 6, "Software Development", "Failure to meet deadlines")`. - 2. Both the company and the employee sign the contract by calling `executeContract(contractId)`. - - **Expected Output**: - 1. A new labor contract is created with a unique `contractId`, and relevant mappings are updated. - 2. The contract status is set to "active" upon execution by both parties. - -4. **Salary Deposit**: - - **Input**: The company calls `depositSalary(contractId)` with a value of `1000 USDC`. - - **Expected Output**: The `escrowBalances` mapping is updated to reflect the deposited amount for `contractId`, securing the funds in escrow. - -5. **Salary Payment**: - - **Input**: After the contract duration, `releaseSalary(contractId)` is called. - - **Expected Output**: The escrowed `1000 USDC` is transferred to the employee's address, and the `escrowBalances` mapping for `contractId` is reset to zero. - -6. **Employment Termination**: - - **Input**: The company calls `terminateContract(contractId, "Failure to meet deadlines")`. - - **Expected Output**: - 1. The contract status is updated to "terminated" in the `contracts` mapping. - 2. A termination event is emitted, and the company is no longer obligated to continue salary payments. - -7. **Dispute Resolution**: - - **Input**: Either party calls `raiseDispute(contractId)`, followed by the assigned moderator calling `resolveDispute(contractId, true)` to favor the employee. - - **Expected Output**: The escrow funds are transferred to the employee, and the dispute is marked as resolved in the contract's status. +1. **Company Creation** + + **Input** + - A user calls `registerCompany("TechCorp", "Technology")`. + + **Expected State Changes** + - A new `companyId` is generated (e.g., `companyId = 1`). + - The `companies` mapping is updated: + ```solidity + companies[1]↦{ + name="TechCorp", + industry="Technology", + owner=callerAddress, + employeeIds=[ ] + } + ``` + - An event `CompanyRegistered` is emitted with the arguments `(1, callerAddress, "TechCorp", "Technology")`. + + **Expected Output** + - **Return Value**: `companyId = 1` (the newly created company ID). + - **Event**: `CompanyRegistered` is logged. + +2. **Employee Token Minting** + + **Input** + - The contract owner (or an authorized address) calls `mintEmployeeToken(employeeAddress, "ipfs://metadataURI")`. + + **Expected State Changes** + - A new token ID is generated (e.g., `tokenId = 5`). + - An internal mapping (e.g., `employeeTokenToOwner`) is updated: + ```solidity + employeeTokenToOwner[5]↦employeeAddress + ``` + - (Optional) If the implementation tracks metadata, another mapping (e.g., `employeeTokenMetadata`) might store: + ```solidity + employeeTokenMetadata[5]↦"ipfs://metadataURI" + ``` + - An event `EmployeeTokenMinted` is emitted with `(5, employeeAddress)`. + + **Expected Output** + - **Return Value**: `tokenId = 5` (the newly minted employee token ID). + - **Event**: `EmployeeTokenMinted` is logged. + +3. **Contract Creation and Execution** + + **Input** + 1. A company with `companyId = 1` calls: + ```solidity + createContract(1,5,1000,6,"SoftwareDevelopment","Failuretomeetdeadlines") + ``` + which returns `contractId`. + 2. Both the company and the employee call `executeContract(contractId)`. + + **Expected State Changes** + - **Contract Creation**: + 1. A new labor contract ID is generated, e.g., `contractId = 10`. + 2. The `contracts` mapping is updated: + ```solidity + contracts[10]↦{ + companyId=1, + employeeTokenId=5, + salary=1000, + duration=6, + responsibilities="SoftwareDevelopment", + terminationConditions="Failuretomeetdeadlines",status="Created" + } + ``` + 3. The system may also update a per-company or per-employee tracking structure (optional but typical): + ```solidity + companyContracts[1].push(10) + employeeContracts[5].push(10) + ``` + 4. An event `ContractCreated` is emitted with arguments `(10, 1, 5, 1000, 6)`. + - **Contract Execution**: + 1. Upon calls from both parties, the contract’s status changes from `"Created"` to `"Active"`: + ```solidity + contracts[10].status↦"Active" + ``` + 2. An event `ContractExecuted` is emitted with `(10)` once both signatures/confirmations are received. + + **Expected Output** + - **Return Value** (from `createContract`): `contractId = 10` + - **Event**: `ContractCreated(10, 1, 5, 1000, 6)` upon creation. + - **Event**: `ContractExecuted(10)` once execution is confirmed by both parties. + +4. **Salary Deposit** + + **Input** + - The company (owner of `companyId = 1`) calls `depositSalary(10)` and sends `1000 USDC` (or equivalent in wei for an [ERC-20](./eip-20.md) token or native token) to the contract. + + **Expected State Changes** + 1. The contract’s escrow balance mapping is updated: + ```solidity + escrowBalances[10]↦1000 + ``` + 2. An event `SalaryDeposited` is emitted with `(10, 1000)`. + + **Expected Output** + - **Event**: `SalaryDeposited(10, 1000)` + - The contract’s internal `escrowBalances[10]` should now be `1000`. + +5. **Salary Payment** + + **Input** + - After the contract’s duration or satisfaction of any release condition, `releaseSalary(10)` is called (by the contract or the employee). + + **Expected State Changes** + 1. The escrow balance for `contractId = 10` is transferred to the employee token owner (`employeeAddress` associated with token ID `5`). + 2. The `escrowBalances[10]` is set to `0`: + ```solidity + escrowBalances[10]↦0 + ``` + 3. An event `SalaryReleased` is emitted with `(10, employeeAddress)`. + + **Expected Output** + - **Event**: `SalaryReleased(10, employeeAddress)` + - The updated `escrowBalances[10]` is now `0`. + - The employee’s on-chain balance (or token balance if using [ERC-20](./eip-20.md)) increases by `1000`. + +6. **Employment Termination** + + **Input** + - The company calls `terminateContract(10, "Failure to meet deadlines")`. + + **Expected State Changes** + 1. The `contracts[10].status` is updated to `"Terminated"`: + ```solidity + contracts[10].status↦"Terminated" + ``` + 2. An event `ContractTerminated` is emitted with `(10, "Failure to meet deadlines")`. + + **Expected Output** + - **Event**: `ContractTerminated(10, "Failure to meet deadlines")` + - The `contracts[10]` status is now `"Terminated"`. + - No further salary obligations exist unless otherwise specified in dispute-resolution processes. + +7. **Dispute Resolution** + + **Input** + 1. Either party (company or employee) calls `raiseDispute(10)`. + 2. The assigned moderator calls `resolveDispute(10, true)` indicating the decision favors the employee. + + **Expected State Changes** + - **Dispute Raised**: + 1. The contract’s dispute status is noted (implementation-specific, but typically `contracts[10].disputeRaised = true`). + 2. An event `DisputeRaised(10, msg.sender)` is emitted. + - **Dispute Resolved**: + 1. If `decisionForEmployee == true`, any remaining escrow funds for `contractId = 10` are transferred to the employee. + 2. A `DisputeResolved(10, true)` event is emitted. + + **Expected Output** + - **Event**: `DisputeRaised(10, msg.sender)` + - **Event**: `DisputeResolved(10, true)` + - If funds remain in escrow, `escrowBalances[10]` is set to `0`, and the employee receives the outstanding balance. + ## Security Considerations From 5f0558c85707ace202495cf4a907bd03535c610f Mon Sep 17 00:00:00 2001 From: James Save Chives Date: Sun, 9 Feb 2025 11:42:54 +0800 Subject: [PATCH 5/6] Update ERC-7743: Move to Review Merged by EIP-Bot. --- ERCS/erc-7743.md | 48 ++++-------------------------------------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/ERCS/erc-7743.md b/ERCS/erc-7743.md index 992b5349bc..aebf738435 100755 --- a/ERCS/erc-7743.md +++ b/ERCS/erc-7743.md @@ -4,7 +4,7 @@ title: Multi-Owner Non-Fungible Tokens (MO-NFT) description: A new type of non-fungible token that supports multiple owners, allowing shared ownership and transferability among users. author: James Savechives (@jamesavechives) discussions-to: https://ethereum-magicians.org/t/discussion-on-eip-7743-multi-owner-non-fungible-tokens-mo-nft/20577 -status: Draft +status: Review type: Standards Track category: ERC created: 2024-07-13 @@ -20,32 +20,6 @@ Traditional NFTs enforce a single-ownership model, which does not align with the ## Specification -### Data Structures - -- **Owners Mapping**: A mapping from `tokenId` to an enumerable set of owner addresses. - - ```solidity - mapping(uint256 => EnumerableSet.AddressSet) internal _owners; - ``` - -- **Balances Mapping**: A mapping from owner addresses to the number of tokens they own. - - ```solidity - mapping(address => uint256) private _balances; - ``` - -- **Providers Mapping**: A mapping from `tokenId` to the provider's address. - - ```solidity - mapping(uint256 => address) private _providers; - ``` - -- **Transfer Values Mapping**: A mapping from `tokenId` to the `transferValue` fee. - - ```solidity - mapping(uint256 => uint256) private _transferValues; - ``` - ### Token Creation and Ownership Model 1. **Minting**: @@ -80,15 +54,11 @@ Traditional NFTs enforce a single-ownership model, which does not align with the - Transferring ownership adds the new owner to the ownership list without removing current owners. This approach reflects the shared nature of digital assets. -2. **Ownership Tracking**: - - - The smart contract tracks the list of owners for each MO-NFT using the `_owners` mapping. - -3. **Provider Fee Handling**: +2. **Provider Fee Handling**: - During a transfer, the specified `transferValue` fee is transferred to the provider. The contract must have sufficient balance to cover this fee. -4. **Burning Ownership**: +3. **Burning Ownership**: - Owners can remove themselves from the ownership list using the `burn` function. @@ -96,16 +66,6 @@ Traditional NFTs enforce a single-ownership model, which does not align with the function burn(uint256 tokenId) external; ``` -### Value Depreciation - -1. **Value Model**: - - - As the number of owners increases, the value of the MO-NFT may decrease to reflect the reduced exclusivity. This is an optional model and can be implemented at the application level. - -2. **Depreciation Mechanism**: - - - The value depreciation model can be defined based on the asset type and distribution strategy. This standard does not enforce a specific depreciation mechanism but acknowledges its importance. - ### Interface Definitions **Minting Functions** @@ -152,7 +112,7 @@ Traditional NFTs enforce a single-ownership model, which does not align with the ### [ERC-721](./eip-721.md) Compliance -The MO-NFT standard is designed to be compatible with the [ERC-721](./eip-721.md) standard. It implements required functions such as `balanceOf`, `ownerOf`, and `transferFrom` from the IERC-721 interface. +The MO-NFT standard is designed to be compatible with the [ERC-721](./eip-721.md) standard. It implements required functions such as `balanceOf`, `ownerOf`, and `transferFrom` from the `ERC721` interface. - **Approval Functions**: Functions like `approve`, `getApproved`, `setApprovalForAll`, and `isApprovedForAll` are intentionally disabled or overridden, as they do not align with the MO-NFT multi-owner model. From 44708a1e1497ddd4a217aed359e28e7d3b2bf7d8 Mon Sep 17 00:00:00 2001 From: James Save Chives Date: Sun, 9 Feb 2025 11:43:24 +0800 Subject: [PATCH 6/6] Add ERC: Diffusive Tokens Merged by EIP-Bot. --- ERCS/erc-7837.md | 407 +++++++++++++++++++++++++++++ assets/erc-7837/DiffusiveToken.sol | 220 ++++++++++++++++ 2 files changed, 627 insertions(+) create mode 100755 ERCS/erc-7837.md create mode 100644 assets/erc-7837/DiffusiveToken.sol diff --git a/ERCS/erc-7837.md b/ERCS/erc-7837.md new file mode 100755 index 0000000000..533257c023 --- /dev/null +++ b/ERCS/erc-7837.md @@ -0,0 +1,407 @@ +--- +eip: 7837 +title: Diffusive Tokens +description: A fungible token that mints new tokens on transfer, charges a per-token native fee, and enforces a capped supply. +author: James Savechives (@jamesavechives) +discussions-to: https://ethereum-magicians.org/t/erc-7837-diffusive-tokens/21989 +status: Draft +type: Standards Track +category: ERC +created: 2024-12-07 +--- + +## Abstract + +This ERC proposes a standard for a new type of fungible token, called **Diffusive Tokens (DIFF)**. Unlike traditional [ERC-20](./eip-20.md) tokens, transferring DIFF tokens does not decrease the sender’s balance. Instead, it *mints* new tokens directly to the recipient, increasing the total supply on every transfer action. A fixed native currency fee is charged per token transferred, and this fee is paid by the sender to the contract owner. The supply growth is limited by a maximum supply set by the owner. Token holders can also burn their tokens to reduce the total supply. These features enable a controlled, incentivized token distribution model that merges fungibility with a built-in economic mechanism. + +## Motivation + +Traditional [ERC-20](./eip-20.md) tokens maintain a constant total supply and simply redistribute balances on transfers. While this model is widespread, certain use cases benefit from a token design that continuously expands supply during transfers, simulating a controlled "diffusion" of value. The Diffusive Token model may be suitable for representing claims on real-world goods (e.g., a product batch like iPhone 15 units), digital goods, or controlled asset distributions where initial token distribution and ongoing availability need to be managed differently. + +This model also includes a native currency fee per token transferred, incentivizing careful, value-driven transfers and providing a revenue stream for the token’s issuer. The maximum supply cap prevents unbounded inflation, ensuring long-term scarcity. The ability for owners to burn tokens to redeem underlying goods or services directly maps on-chain assets to real-world redemptions. + +**Use Cases**: + +- **Real-World Asset Backing**: A manufacturer can issue DIFF tokens representing a batch of products (e.g., iPhones). Each token can be redeemed (burned) for one physical item. + +- **Fee-Driven Incentives**: The transfer fee ensures that infinite minting by constant transferring is economically disincentivized. The fee also supports the token issuer or provides a funding mechanism. + + +## Specification + +### Terminology + +- **Diffusive Token**: A fungible token unit that is minted on transfers. +- **Max Supply**: The maximum total supply the token can reach. +- **Transfer Fee**: A fee in native blockchain currency (e.g., ETH) that must be paid by the sender for each token transferred. The total fee = `transferFee * amount`. +- **Burn**: The action of destroying tokens, reducing both the holder’s balance and the total supply. + +### Data Structures + +- **Total Supply and Max Supply**: + + ```solidity + uint256 public totalSupply; + uint256 public maxSupply; + ``` + +- **Transfer Fee**: + + ```solidity + uint256 public transferFee; // fee per token transferred in wei + address public owner; + ``` + + The `owner` sets and updates `transferFee` and `maxSupply`. + +### Token Semantics + +1. **Minting on Transfer** + When a transfer occurs from `A` to `B`: + - `A` does not lose any tokens. + - `B` receives newly minted tokens (increasing their balance and totalSupply). + - The `totalSupply` increases by the transferred amount, but must not exceed `maxSupply`. + +2. **Fixed Transfer Fee in Native Currency** + Each transfer requires the sender to pay `transferFee * amount` in the native currency. If `msg.value` is insufficient, the transaction reverts. + +3. **Maximum Supply** + If a transfer would cause `totalSupply + amount > maxSupply`, it must revert. + +4. **Burning Tokens** + Token holders can burn tokens to: + - Reduce their balance by the burned amount. + - Decrease `totalSupply` by the burned amount. + + This can map to redeeming underlying goods or simply deflating the token. + +### Interface + +The DIFF standard aligns partially with [ERC-20](./eip-20.md), but redefines certain behaviors: + +**Core Functions:** + +- `function balanceOf(address account) external view returns (uint256);` + +- `function transfer(address to, uint256 amount) external payable returns (bool);` + + - **Modified behavior**: Mints `amount` tokens to `to`, requires `msg.value >= transferFee * amount`. + +- `function burn(uint256 amount) external;` + + - Reduces sender’s balance and `totalSupply`. + +**Administration Functions (Owner Only):** + +- `function setMaxSupply(uint256 newMax) external;` + +- `function setTransferFee(uint256 newFee) external;` + +- `function withdrawFees(address payable recipient) external;` + + - Withdraws accumulated native currency fees. + +**Optional Approval Interface (For Compatibility):** + +- `function approve(address spender, uint256 amount) external returns (bool);` +- `function transferFrom(address from, address to, uint256 amount) external payable returns (bool);` + + - **Modified behavior**: Similar to `transfer`, but uses allowance and still mints tokens to `to` rather than redistributing from `from`. + +### Events + +- `event Transfer(address indexed from, address indexed to, uint256 amount);` + + Emitted when tokens are minted to `to` via a transfer call. + +- `event Burn(address indexed burner, uint256 amount);` + + Emitted when `amount` of tokens are burned from an address. + +- `event FeeUpdated(uint256 newFee);` + + Emitted when the owner updates the `transferFee`. + +- `event MaxSupplyUpdated(uint256 newMaxSupply);` + + Emitted when the owner updates `maxSupply`. + +### Compliance with ERC-20 + +The DIFF standard implements the ERC-20 interface but significantly alters the `transfer` and `transferFrom` semantics: + +- **Fungibility**: Each token unit is identical and divisible as in ERC-20. +- **Balances and Transfers**: The `balanceOf` function works as normal. However, `transfer` and `transferFrom` no longer redistribute tokens. Instead, they mint new tokens (up to `maxSupply`). +- **Approvals**: The `approve` and `transferFrom` functions remain, but their logic is unconventional since the sender’s balance is never reduced by transfers. + +While the DIFF standard can be seen as ERC-20 compatible at the interface level, the underlying economics differ substantially. + +## Rationale + +**Design Decisions**: + +- **Unlimited Minting vs. Max Supply**: Allowing minting on every transfer provides a “diffusive” spread of tokens. The `maxSupply` prevents uncontrolled inflation. + +- **Burn Mechanism**: Enables redemption or deflation as tokens are taken out of circulation. + +- **Owner Controls**: The owner (e.g., issuer) can adjust fees and max supply, maintaining flexibility as market conditions change. + +## Backwards Compatibility + +The DIFF standard is interface-compatible with ERC-20 but not behaviorally identical. Any system integrating DIFF tokens should understand the difference in minting on transfer. + +- **Wallets and Exchanges**: Most ERC-20 compatible tools can display balances and initiate transfers. However, the unusual economics (mint on transfer) may confuse users and pricing mechanisms. +- **Allowances and TransferFrom**: Still implemented for interoperability, but the expected logic (debiting `from` balance) does not apply. + +## Test Cases + +1. **Initial Conditions**: + - Deploy contract with `maxSupply = 1,000,000 DIFF`, `transferFee = 0.001 ETH`. + - `totalSupply = 0`. + - Owner sets parameters and verifies via `maxSupply()` and `transferFee()` getters. + +2. **Minting on Transfer**: + - User A calls `transfer(B, 100)` with `msg.value = 0.1 ETH` (assuming `transferFee = 0.001 ETH`). + - Check `balances[B] == 100`, `totalSupply == 100`. + - Check that the contract now holds 0.1 ETH from the fee. + +3. **Exceeding Max Supply**: + - If `totalSupply = 999,950` and someone tries to transfer 100 tokens, causing `totalSupply` to exceed `1,000,000`, the transaction reverts. + +4. **Burning Tokens**: + - User B calls `burn(50)`. + - Check `balances[B] == 50`, `totalSupply == 50` less than before. + - `Burn` event emitted. + +5. **Updating Fee and Withdrawing Funds**: + - Owner calls `setTransferFee(0.002 ETH)`. + - `FeeUpdated` event emitted. + - Owner calls `withdrawFees(ownerAddress)`. + - Check that `ownerAddress` receives accumulated fees. + +## Reference Implementation + +A reference implementation is provided under the asset folder in the EIPs repository. The implementation includes: + +- A basic contract implementing the DIFF standard. +```solidity +contract DiffusiveToken { + // ----------------------------------------- + // State Variables + // ----------------------------------------- + + string public name; + string public symbol; + uint8 public decimals; + + uint256 public totalSupply; + uint256 public maxSupply; + uint256 public transferFee; // Fee per token transferred in wei + + address public owner; + + // ----------------------------------------- + // Events + // ----------------------------------------- + + event Transfer(address indexed from, address indexed to, uint256 amount); + event Burn(address indexed burner, uint256 amount); + event FeeUpdated(uint256 newFee); + event MaxSupplyUpdated(uint256 newMaxSupply); + event Approval(address indexed owner, address indexed spender, uint256 value); + + // ----------------------------------------- + // Modifiers + // ----------------------------------------- + + modifier onlyOwner() { + require(msg.sender == owner, "DiffusiveToken: caller is not the owner"); + _; + } + + // ----------------------------------------- + // Constructor + // ----------------------------------------- + + /** + * @dev Constructor sets the initial parameters for the Diffusive Token. + * @param _name Token name + * @param _symbol Token symbol + * @param _decimals Decimal places + * @param _maxSupply The max supply of tokens that can ever exist + * @param _transferFee Initial fee per token transferred in wei + */ + constructor( + string memory _name, + string memory _symbol, + uint8 _decimals, + uint256 _maxSupply, + uint256 _transferFee + ) { + name = _name; + symbol = _symbol; + decimals = _decimals; + maxSupply = _maxSupply; + transferFee = _transferFee; + owner = msg.sender; + totalSupply = 0; // Initially, no tokens are minted + } + + // ----------------------------------------- + // External and Public Functions + // ----------------------------------------- + + /** + * @notice Returns the token balance of the given address. + * @param account The address to query + */ + function balanceOf(address account) external view returns (uint256) { + return balances[account]; + } + + /** + * @notice Transfers `amount` tokens to address `to`, minting new tokens in the process. + * @dev Requires payment of native currency: transferFee * amount. + * @param to Recipient address + * @param amount Number of tokens to transfer + * @return True if successful + */ + function transfer(address to, uint256 amount) external payable returns (bool) { + require(to != address(0), "DiffusiveToken: transfer to zero address"); + require(amount > 0, "DiffusiveToken: amount must be greater than zero"); + + uint256 requiredFee = transferFee * amount; + require(msg.value >= requiredFee, "DiffusiveToken: insufficient fee"); + + // Check max supply limit + require(totalSupply + amount <= maxSupply, "DiffusiveToken: would exceed max supply"); + + // Mint new tokens to `to` + balances[to] += amount; + totalSupply += amount; + + emit Transfer(msg.sender, to, amount); + return true; + } + + /** + * @notice Burns `amount` tokens from the caller's balance, decreasing total supply. + * @param amount The number of tokens to burn + */ + function burn(uint256 amount) external { + require(amount > 0, "DiffusiveToken: burn amount must be greater than zero"); + require(balances[msg.sender] >= amount, "DiffusiveToken: insufficient balance"); + + balances[msg.sender] -= amount; + totalSupply -= amount; + + emit Burn(msg.sender, amount); + } + + /** + * @notice Approves `spender` to transfer up to `amount` tokens on behalf of `msg.sender`. + * @param spender The address authorized to spend + * @param amount The max amount they can spend + */ + function approve(address spender, uint256 amount) external returns (bool) { + require(spender != address(0), "DiffusiveToken: approve to zero address"); + allowances[msg.sender][spender] = amount; + emit Approval(msg.sender, spender, amount); + return true; + } + + /** + * @notice Returns the current allowance of `spender` for `owner`. + * @param _owner The owner of the tokens + * @param _spender The address allowed to spend the tokens + */ + function allowance(address _owner, address _spender) external view returns (uint256) { + return allowances[_owner][_spender]; + } + + /** + * @notice Transfers `amount` tokens from `from` to `to` using the allowance mechanism. + * @dev The `from` account does not lose tokens; this still mints to `to`. + * @param from The address from which the allowance has been given + * @param to The recipient address + * @param amount The number of tokens to transfer (mint) + */ + function transferFrom(address from, address to, uint256 amount) external payable returns (bool) { + require(to != address(0), "DiffusiveToken: transfer to zero address"); + require(amount > 0, "DiffusiveToken: amount must be greater than zero"); + + uint256 allowed = allowances[from][msg.sender]; + require(allowed >= amount, "DiffusiveToken: allowance exceeded"); + + // Deduct from allowance + allowances[from][msg.sender] = allowed - amount; + + uint256 requiredFee = transferFee * amount; + require(msg.value >= requiredFee, "DiffusiveToken: insufficient fee"); + + // Check max supply + require(totalSupply + amount <= maxSupply, "DiffusiveToken: would exceed max supply"); + + // Mint tokens to `to` + balances[to] += amount; + totalSupply += amount; + + emit Transfer(from, to, amount); + return true; + } + + // ----------------------------------------- + // Owner Functions + // ----------------------------------------- + + /** + * @notice Updates the maximum supply of tokens. Must be >= current totalSupply. + * @param newMaxSupply The new maximum supply + */ + function setMaxSupply(uint256 newMaxSupply) external onlyOwner { + require(newMaxSupply >= totalSupply, "DiffusiveToken: new max < current supply"); + maxSupply = newMaxSupply; + emit MaxSupplyUpdated(newMaxSupply); + } + + /** + * @notice Updates the per-token transfer fee. + * @param newFee The new fee in wei per token transferred + */ + function setTransferFee(uint256 newFee) external onlyOwner { + transferFee = newFee; + emit FeeUpdated(newFee); + } + + /** + * @notice Allows the owner to withdraw accumulated native currency fees. + * @param recipient The address that will receive the withdrawn fees + */ + function withdrawFees(address payable recipient) external onlyOwner { + require(recipient != address(0), "DiffusiveToken: withdraw to zero address"); + uint256 balance = address(this).balance; + (bool success, ) = recipient.call{value: balance}(""); + require(success, "DiffusiveToken: withdrawal failed"); + } + + // ----------------------------------------- + // Fallback and Receive + // ----------------------------------------- + + // Allows the contract to receive Ether. + receive() external payable {} +} +``` + +- Interfaces and helper contracts for testing and demonstration purposes. + +## Security Considerations + +- **Reentrancy**: Handle fee transfers using the Checks-Effects-Interactions pattern. Consider `ReentrancyGuard` from OpenZeppelin to prevent reentrant calls. +- **Overflow/Underflow**: Solidity 0.8.x guards against this by default. +- **Contract Balance Management**: Ensure enough native currency is sent to cover fees. Revert on insufficient fees. +- **Access Control**: Only the owner can update `transferFee` and `maxSupply`. Use proper `onlyOwner` modifiers. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/erc-7837/DiffusiveToken.sol b/assets/erc-7837/DiffusiveToken.sol new file mode 100644 index 0000000000..7661ea8eee --- /dev/null +++ b/assets/erc-7837/DiffusiveToken.sol @@ -0,0 +1,220 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.0; + +/** + * @title DiffusiveToken + * @author + * @notice An ERC-20-like token that mints new tokens to the recipient on each transfer, + * does not reduce the sender's balance, requires a native fee per token transferred, + * and caps the total supply at a maximum value. Holders can burn tokens to reduce supply. + */ + +contract DiffusiveToken { + // ----------------------------------------- + // State Variables + // ----------------------------------------- + + string public name; + string public symbol; + uint8 public decimals; + + uint256 public totalSupply; + uint256 public maxSupply; + uint256 public transferFee; // Fee per token transferred in wei + + address public owner; + + mapping(address => uint256) private balances; + mapping(address => mapping(address => uint256)) private allowances; + + // ----------------------------------------- + // Events + // ----------------------------------------- + + event Transfer(address indexed from, address indexed to, uint256 amount); + event Burn(address indexed burner, uint256 amount); + event FeeUpdated(uint256 newFee); + event MaxSupplyUpdated(uint256 newMaxSupply); + event Approval(address indexed owner, address indexed spender, uint256 value); + + // ----------------------------------------- + // Modifiers + // ----------------------------------------- + + modifier onlyOwner() { + require(msg.sender == owner, "DiffusiveToken: caller is not the owner"); + _; + } + + // ----------------------------------------- + // Constructor + // ----------------------------------------- + + /** + * @dev Constructor sets the initial parameters for the Diffusive Token. + * @param _name Token name + * @param _symbol Token symbol + * @param _decimals Decimal places + * @param _maxSupply The max supply of tokens that can ever exist + * @param _transferFee Initial fee per token transferred in wei + */ + constructor( + string memory _name, + string memory _symbol, + uint8 _decimals, + uint256 _maxSupply, + uint256 _transferFee + ) { + name = _name; + symbol = _symbol; + decimals = _decimals; + maxSupply = _maxSupply; + transferFee = _transferFee; + owner = msg.sender; + totalSupply = 0; // Initially, no tokens are minted + } + + // ----------------------------------------- + // External and Public Functions + // ----------------------------------------- + + /** + * @notice Returns the token balance of the given address. + * @param account The address to query + */ + function balanceOf(address account) external view returns (uint256) { + return balances[account]; + } + + /** + * @notice Transfers `amount` tokens to address `to`, minting new tokens in the process. + * @dev Requires payment of native currency: transferFee * amount. + * @param to Recipient address + * @param amount Number of tokens to transfer + * @return True if successful + */ + function transfer(address to, uint256 amount) external payable returns (bool) { + require(to != address(0), "DiffusiveToken: transfer to zero address"); + require(amount > 0, "DiffusiveToken: amount must be greater than zero"); + + uint256 requiredFee = transferFee * amount; + require(msg.value >= requiredFee, "DiffusiveToken: insufficient fee"); + + // Check max supply limit + require(totalSupply + amount <= maxSupply, "DiffusiveToken: would exceed max supply"); + + // Mint new tokens to `to` + balances[to] += amount; + totalSupply += amount; + + emit Transfer(msg.sender, to, amount); + return true; + } + + /** + * @notice Burns `amount` tokens from the caller's balance, decreasing total supply. + * @param amount The number of tokens to burn + */ + function burn(uint256 amount) external { + require(amount > 0, "DiffusiveToken: burn amount must be greater than zero"); + require(balances[msg.sender] >= amount, "DiffusiveToken: insufficient balance"); + + balances[msg.sender] -= amount; + totalSupply -= amount; + + emit Burn(msg.sender, amount); + } + + /** + * @notice Approves `spender` to transfer up to `amount` tokens on behalf of `msg.sender`. + * @param spender The address authorized to spend + * @param amount The max amount they can spend + */ + function approve(address spender, uint256 amount) external returns (bool) { + require(spender != address(0), "DiffusiveToken: approve to zero address"); + allowances[msg.sender][spender] = amount; + emit Approval(msg.sender, spender, amount); + return true; + } + + /** + * @notice Returns the current allowance of `spender` for `owner`. + * @param _owner The owner of the tokens + * @param _spender The address allowed to spend the tokens + */ + function allowance(address _owner, address _spender) external view returns (uint256) { + return allowances[_owner][_spender]; + } + + /** + * @notice Transfers `amount` tokens from `from` to `to` using the allowance mechanism. + * @dev The `from` account does not lose tokens; this still mints to `to`. + * @param from The address from which the allowance has been given + * @param to The recipient address + * @param amount The number of tokens to transfer (mint) + */ + function transferFrom(address from, address to, uint256 amount) external payable returns (bool) { + require(to != address(0), "DiffusiveToken: transfer to zero address"); + require(amount > 0, "DiffusiveToken: amount must be greater than zero"); + + uint256 allowed = allowances[from][msg.sender]; + require(allowed >= amount, "DiffusiveToken: allowance exceeded"); + + // Deduct from allowance + allowances[from][msg.sender] = allowed - amount; + + uint256 requiredFee = transferFee * amount; + require(msg.value >= requiredFee, "DiffusiveToken: insufficient fee"); + + // Check max supply + require(totalSupply + amount <= maxSupply, "DiffusiveToken: would exceed max supply"); + + // Mint tokens to `to` + balances[to] += amount; + totalSupply += amount; + + emit Transfer(from, to, amount); + return true; + } + + // ----------------------------------------- + // Owner Functions + // ----------------------------------------- + + /** + * @notice Updates the maximum supply of tokens. Must be >= current totalSupply. + * @param newMaxSupply The new maximum supply + */ + function setMaxSupply(uint256 newMaxSupply) external onlyOwner { + require(newMaxSupply >= totalSupply, "DiffusiveToken: new max < current supply"); + maxSupply = newMaxSupply; + emit MaxSupplyUpdated(newMaxSupply); + } + + /** + * @notice Updates the per-token transfer fee. + * @param newFee The new fee in wei per token transferred + */ + function setTransferFee(uint256 newFee) external onlyOwner { + transferFee = newFee; + emit FeeUpdated(newFee); + } + + /** + * @notice Allows the owner to withdraw accumulated native currency fees. + * @param recipient The address that will receive the withdrawn fees + */ + function withdrawFees(address payable recipient) external onlyOwner { + require(recipient != address(0), "DiffusiveToken: withdraw to zero address"); + uint256 balance = address(this).balance; + (bool success, ) = recipient.call{value: balance}(""); + require(success, "DiffusiveToken: withdrawal failed"); + } + + // ----------------------------------------- + // Fallback and Receive + // ----------------------------------------- + + // Allows the contract to receive Ether. + receive() external payable {} +} \ No newline at end of file